Encodeur Rotatif

12,00 DH

Disponibilité:

344 en stock

UGS : 0159 Catégories : ,

Description

Encodeur Rotatif

Le module encodeur rotatif KY-040 est un dispositif électromécanique conçu pour détecter les mouvements de rotation et encoder des informations de position précises. Il est largement utilisé dans les projets Arduino pour le contrôle de la position des axes, les commandes de moteur, et les interfaces utilisateur.

Caractéristiques en détail

  • Tension d’alimentation : 5V DC
  • Type d’encodeur : Encodeur rotatif incrémental avec signaux de quadrature
  • Résolution : Plusieurs impulsions par révolution
  • Type de switch : Inclut un switch tactile intégré pour détecter les pressions de bouton
  • Dimensions : Forme compacte, idéale pour les panneaux de contrôle et les systèmes robotiques

Fonctionnement

Le module KY-040 fonctionne sur le principe de l’encodage incrémental, fournissant des informations de direction et de magnitude des mouvements de rotation. Il inclut également un switch tactile pour des actions supplémentaires comme la sélection ou la confirmation.

Applications

  • Commandes rotatives pour les interfaces utilisateur
  • Contrôle de la vitesse des moteurs
  • Navigation robotique
  • Interfaces interactives
  • Projets DIY

Brochage

  • GND : Masse
  • VCC : Alimentation (5V)
  • SW : Switch (N.O.)
  • DT : Sortie numérique B
  • CLK : Sortie numérique A

Comment l’utiliser

Pour utiliser le module KY-040 avec un Arduino, connectez les broches GND et VCC à l’alimentation de l’Arduino. Les broches DT et CLK doivent être connectées à des entrées numériques pour détecter les mouvements de rotation, et la broche SW peut être utilisée pour détecter les pressions de bouton.

Comment l’utiliser avec Arduino Uno

Exemple de code Arduino de base

#define CLK 4
#define DT 3
#define SW 2


int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir = "";


void setup() {
  Serial.begin(9600);
  pinMode(CLK, INPUT);
  pinMode(DT, INPUT);
  pinMode(SW, INPUT_PULLUP);
  lastStateCLK = digitalRead(CLK);
}


void loop() {
  currentStateCLK = digitalRead(CLK);
  if (currentStateCLK != lastStateCLK) {
    if (digitalRead(DT) != currentStateCLK) {
      counter--;
      currentDir = "CCW";
    } else {
      counter++;
      currentDir = "CW";
    }
    Serial.print("Direction: ");
    Serial.print(currentDir);
    Serial.print(" | Counter: ");
    Serial.println(counter);
  }
  lastStateCLK = currentStateCLK;


  int buttonState = digitalRead(SW);
  if (buttonState == LOW) {
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }
  delay(50);
}

But du code

Ce code permet de lire les valeurs numériques du module encodeur rotatif KY-040 et d’afficher la direction de rotation et la position actuelle sur le moniteur série.

Composants nécessaires pour le code de base

  • Arduino Uno
  • Module encodeur rotatif KY-040
  • Câbles de connexion

Explication détaillée du code de base

  1. Initialisation : La communication série est établie, et les broches pour le module encodeur sont configurées en entrées.
  2. Lecture et affichage des données : Les valeurs des broches de l’encodeur sont lues et affichées dans le moniteur série pour indiquer la direction et la position de rotation.

Brochage détaillé des connexions du code de base

  • VCC : 5V (Arduino)
  • GND : GND (Arduino)
  • CLK : D4 (Arduino)
  • DT : D3 (Arduino)
  • SW : D2 (Arduino)

Exemple de code Arduino avancé

#define CLK 4
#define DT 3
#define SW 2


int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir = "";


void setup() {
  Serial.begin(9600);
  pinMode(CLK, INPUT);
  pinMode(DT, INPUT);
  pinMode(SW, INPUT_PULLUP);
  lastStateCLK = digitalRead(CLK);
}


void loop() {
  currentStateCLK = digitalRead(CLK);
  if (currentStateCLK!= lastStateCLK) {
    if (digitalRead(DT)!= currentStateCLK) {
      counter--;
      currentDir = "CCW";
    } else {
      counter++;
      currentDir = "CW";
    }
    Serial.print("Direction: ");
    Serial.print(currentDir);
    Serial.print(" | Counter: ");
    Serial.println(counter);
  }
  lastStateCLK = currentStateCLK;


  int buttonState = digitalRead(SW);
  if (buttonState == LOW) {
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }
  delay(50);
}

But du code

Ce code lit les valeurs numériques du module encodeur rotatif KY-040 et les affiche sur un écran LCD I2C, en plus d’afficher la direction et la position sur le moniteur série.

Composants nécessaires pour le code avancé

  • Arduino Uno
  • Module encodeur rotatif KY-040
  • Écran LCD I2C 1602
  • Câbles de connexion

Explication détaillée du code avancé

  1. Inclusion des bibliothèques : #include <Wire.h> et #include <LiquidCrystal_I2C.h> pour l’écran LCD.
  2. Initialisation : Configuration de la communication avec l’écran LCD et initialisation des broches du module encodeur.
  3. Lecture et affichage des données : Les valeurs des broches de l’encodeur sont lues et affichées sur l’écran LCD et le moniteur série pour indiquer la direction et la position de rotation.

Brochage détaillé des connexions du code avancé

  • VCC : 5V (Arduino)
  • GND : GND (Arduino)
  • CLK : D4 (Arduino)
  • DT : D3 (Arduino)
  • SW : D2 (Arduino)
  • VCC (LCD) : 5V (Arduino)
  • GND (LCD) : GND (Arduino)
  • SCL (LCD) : A5 (Arduino)
  • SDA (LCD) : A4 (Arduino)

Installation de Drivers/bibliothèques

Pour utiliser le capteur tactile et l’écran LCD avec Arduino, installez la bibliothèque LiquidCrystal I2C via l’Arduino IDE :

  1. Ouvrez l’IDE Arduino : Assurez-vous d’avoir la version la plus récente.
  2. Allez dans le gestionnaire de bibliothèques : Cliquez sur “Croquis” -> “Inclure une bibliothèque” -> “Gérer les bibliothèques”.
  3. Recherchez “LiquidCrystal I2C” : Utilisez la barre de recherche pour trouver la bibliothèque.
  4. Installez la bibliothèque : Cliquez sur “Installer” pour ajouter la bibliothèque à votre IDE.

 

 

Mots clés: encoder, rotary, potentiometer, Encodeur rotatif, KY-040, Arduino, Détection de rotation, Rotary encoder, Incremental encoder, Arduino tutorial, KY-040 module.