Taula de continguts:
Vídeo: Codificador rotatiu: enteneu-lo i utilitzeu-lo (Arduino / un altre controlador Μ): 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Un codificador rotatiu és un dispositiu electromecànic que converteix el moviment de rotació en informació digital o analògica. Pot girar en sentit horari o antihorari. Hi ha dos tipus de codificadors rotatius: codificadors absoluts i relatius (incrementals).
Tot i que un codificador absolut genera un valor proporcional a l’angle actual de l’eix, un codificador incremental genera el pas de l’eix i la seva direcció (en aquest cas tenim un codificador incremental)
Els codificadors rotatius són cada vegada més populars perquè podeu utilitzar dues funcions en un mòdul elèctric: un senzill commutador per confirmar les operacions i el codificador rotatiu per navegar, per exemple. mitjançant un menú.
Un codificador rotatiu incremental genera dos senyals de sortida mentre el seu eix gira. Segons la direcció, un dels senyals condueix l’altre. (mirar abaix)
Pas 1: comprensió de les dades de sortida
Com podeu veure quan l'eix del codificador comença a girar en sentit horari, la sortida A cau primer a BAIX i la sortida B el segueix. En sentit antihorari, l'operació gira contràriament.
Ara només hem d’implementar-ho al nostre µController (he utilitzat un Arduino Nano).
Pas 2: Construeix el circuit
Com he descrit abans, les sortides creen un flanc ALT i BAIX. Per obtenir un HIGH net al pin de dades A i B del µController hem d'afegir resistències Pull-Up. El pin C comú va directe a terra pel flanc BAIX.
Per obtenir informació sobre l’interruptor intern (polsador) utilitzarem els altres dos pins. Un d’ells va a VCC i l’altre a un pin de dades del µController. També hem d’afegir una resistència desplegable al pin de dades per obtenir un BAIX net.
També és possible utilitzar resistències internes Pull-Up i Pull-Down del vostre µController.
En el meu cas, el pinout té el següent aspecte:
- +3, 3V => +3, 3V (Arduino) (també + 5V possible)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Pin
11
- C => GND
-
SW =>
Pin
12
Pas 3: escriure el codi
int pinA = 10; // commutador intern A int pinB = 11; // commutador intern B int pinSW = 12; // commuta (codificador premut) int encoderPosCount = 0; // comença a zero, canvia si vols
int positionval;
bool switchval; int mrotateLast; int mrotate;
configuració nul·la () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); retard (50); }
bucle buit () {readencoder (); if (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// el botó gira if (digitalRead (pinB)! = mrotate) {// el commutador A ha canviat primer -> girant en el sentit del rellotge codificadorPosCount ++; Serial.println ("girat en sentit horari"); } else {// el commutador B ha canviat primer -> girant en sentit antihorari codificadorPosCount--; Serial.println ("girat en sentit antihorari"); }
Serial.print ("Posició del codificador:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; retorn encoderPosCount; } bool readswitch () {
si (digitalRead (pinSW)! = 0) {// es prem el commutador
while (digitalRead (pinSW)! = 0) {} // el commutador actualment està premut switchval = 1; } else {switchval = 0;} // el commutador és un switchval no retornat; }
Ara podeu girar el codificador i el variable encoderPosCount comptarà si gireu en sentit horari i compte enrere si gireu en sentit antihorari.
Això és! Simplement i útil.
No dubteu a canviar i executar el codi. Podeu implementar-lo al vostre projecte.
També penjaré un projecte de LED on he utilitzat el codificador per configurar la brillantor dels meus LED.
Recomanat:
Un altre commutador rotatiu imprès sobretot en 3D: 7 passos (amb imatges)
Un altre commutador rotatiu imprès en gran part en 3D: fa un temps vaig crear un commutador rotatiu en la seva majoria impresos en 3D específicament per al meu projecte de rèplica Minivac 601. Per al meu nou projecte Think-a-Tron 2020, em necessito un altre interruptor rotatiu. Estic buscant un commutador de muntatge de tauler SP5T. Un additiu
Utilitzeu un motor pas a pas com a codificador rotatiu: 9 passos (amb imatges)
Utilitzeu un motor pas a pas com a codificador rotatiu: els codificadors rotatius són ideals per a ús en projectes de microcontroladors com a dispositiu d’entrada, però el seu rendiment no és molt suau i satisfactori. A més, tenint molts motors pas a pas de recanvi, vaig decidir donar-los un propòsit. Així que si teniu algun pas a pas
Com utilitzar el motor pas a pas com a codificador rotatiu i pantalla OLED per a passos: 6 passos
Com utilitzar el motor pas a pas com a codificador rotatiu i pantalla OLED per als passos: en aquest tutorial aprendrem com fer un seguiment dels passos del motor pas a pas a la pantalla OLED. Mireu un vídeo de demostració. El crèdit per al tutorial original va a l'usuari de youtube " sky4fly "
YABC - Un altre controlador Blynk - Controlador de temperatura i humitat al núvol IoT, ESP8266: 4 passos
YABC - Encara un altre controlador Blynk: controlador de temperatura i humitat del núvol IoT, ESP8266: Hola, fabricants, recentment he començat a cultivar bolets a casa, bolets ostres, però ja tinc 3 vegades aquests controladors a casa per al control de temperatura de fermentació per a la meva cervesa, esposa ara també fa això de Kombucha i com a termòstat de calor
Un altre suport per a portàtils (altre portàtil per a portàtil): 4 passos (amb imatges)
Another Laptop Stand (otro Soporte Para Notebook): Per favor, ve una mejora en https://www.instructables.com/id/Mejoras-al-Soporte-para-laptop-laptop-stand-enhan/ Mi notebook tiene un problemita : la pantalla parpadea a ratos (arreglat a fines de setembre 2010, era un contacte flojo). Pero me h