Encodeur Rotatif
19.00 DH
Le module encodeur rotatif KY-040 est un composant électromécanique essentiel pour la détection de mouvements de rotation, offrant une précision accrue dans l’encodage de la position et du déplacement angulaire.
Le module encodeur rotatif KY-040 est un composant électromécanique essentiel pour la détection de mouvements de rotation, offrant une précision accrue dans l’encodage de la position et du déplacement angulaire. Conçu pour des applications variées telles que le contrôle de position des axes, la commande de moteurs et les interfaces utilisateur interactives, cet encodeur est idéal pour les projets Arduino, les systèmes robotiques et les dispositifs de navigation.
Caractéristiques Techniques
- Tension d’alimentation : 5V DC, compatible avec la majorité des microcontrôleurs et plateformes de prototypage.
- Type d’encodeur : Incrémental à signaux de quadrature (sorties A et B), permettant la détection du sens et de l’amplitude de la rotation.
- Résolution : Plusieurs impulsions par révolution, garantissant une précision adaptée aux systèmes de commande fine.
- Interrupteur intégré : Bouton-poussoir incorporé permettant une interaction supplémentaire, utile pour les interfaces utilisateur.
- Dimensions compactes : Conçu pour une intégration facile dans les panneaux de contrôle et les systèmes embarqués.
Principe de Fonctionnement
Le KY-040 repose sur un système d’encodage incrémental à quadrature. En tournant l’arbre de l’encodeur, deux signaux déphasés (CLK et DT) sont générés, permettant de déterminer la direction et le nombre de pas effectués. Le bouton-poussoir intégré peut être utilisé pour ajouter une fonctionnalité de validation ou de sélection.
Applications
- Contrôle rotatif pour interfaces utilisateur : Réglages de paramètres, navigation dans les menus.
- Commande de moteurs et asservissement : Ajustement de vitesse et de position en boucle fermée.
- Navigation et odométrie robotique : Suivi de déplacement pour robots mobiles.
- Projets DIY et domotique : Création de systèmes interactifs et ergonomiques.
Brochage du Module
Broche | Fonction |
GND | Masse |
VCC | Alimentation (5V) |
SW | Sortie du bouton-poussoir (Normally Open) |
DT | Signal de sortie B |
CLK | Signal de sortie A |
Intégration avec Arduino Uno
Schéma de Connexion
- VCC → 5V (Arduino)
- GND → GND (Arduino)
- CLK → D4 (Arduino)
- DT → D3 (Arduino)
- SW → D2 (Arduino)
Exemple de Code Arduino (Lecture de l’Encodeur)
#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;
if (digitalRead(SW) == LOW) {
Serial.println(« Button Pressed »);
}
delay(50);
}
Code Arduino Avancé (Affichage sur LCD I2C)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define CLK 4
#define DT 3
#define SW 2
int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir = « »;
void setup() {
lcd.begin();
lcd.backlight();
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 »;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(« Pos: « );
lcd.print(counter);
lcd.setCursor(0, 1);
lcd.print(« Dir: « );
lcd.print(currentDir);
}
lastStateCLK = currentStateCLK;
if (digitalRead(SW) == LOW) {
Serial.println(« Button Pressed »);
}
delay(50);
}
Installation des Bibliothèques pour le LCD
Pour utiliser l’écran LCD I2C, installez la bibliothèque LiquidCrystal I2C dans l’IDE Arduino :
- Ouvrez l’IDE Arduino.
- Allez dans Croquis > Inclure une bibliothèque > Gérer les bibliothèques.
- Recherchez LiquidCrystal I2C et installez la bibliothèque correspondante.
Reviews
There are no reviews yet.