Tabla de contenido:
Video: Codificador rotatorio - Entenderlo y usarlo (Arduino / otro ΜController): 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Un codificador rotatorio es un dispositivo electromecánico que convierte el movimiento rotatorio en información digital o analógica. Puede girar en sentido horario o antihorario. Hay dos tipos de codificadores rotativos: codificadores absolutos y relativos (incrementales).
Mientras que un codificador absoluto genera un valor proporcional al ángulo actual del eje, un codificador incremental genera el paso del eje y su dirección (en este caso tenemos un codificador incremental).
Los codificadores giratorios se están volviendo más populares porque puede utilizar dos funciones en un módulo eléctrico: un interruptor simple para confirmar las operaciones y el codificador giratorio para navegar, p. Ej. a través de un menú.
Un codificador rotatorio incremental genera dos señales de salida mientras su eje está girando. Dependiendo de la dirección, una de las señales adelanta a la otra. (vea abajo)
Paso 1: comprensión de los datos de salida
Como puede ver, cuando el eje del codificador comienza a girar en el sentido de las agujas del reloj, la salida A cae primero a LOW y la salida B le sigue. En sentido contrario a las agujas del reloj, la operación gira en sentido contrario.
Ahora solo tenemos que implementar esto en nuestro µController (usé un Arduino Nano).
Paso 2: construye el circuito
Como describí antes, las salidas crean un flanco ALTO y uno BAJO. Para obtener un ALTO limpio en los pines de datos A y B del µController, tenemos que agregar resistencias Pull-Up. El pin C común va directo a tierra para el flanco BAJO.
Para obtener información sobre el interruptor interno (pulsador) usaremos los otros dos pines. Uno de ellos va a VCC y el otro a un Pin de datos del µController. También tenemos que agregar una resistencia desplegable al pin de datos para obtener un BAJO limpio.
¡También es posible utilizar resistencias Pull-Up y Pull-Down internas de su µController!
En mi caso, el pinout se ve así:
- +3, 3V => +3, 3V (Arduino) (también es posible + 5V)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Alfiler
11
- C => TIERRA
-
SW =>
Alfiler
12
Paso 3: escribir el código
int pinA = 10; // interruptor interno A int pinB = 11; // interruptor interno B int pinSW = 12; // cambiar (codificador pulsado) int encoderPosCount = 0; // comienza en cero, cambia si quieres
int positionval;
bool switchval; int mrotateLast; int mrotate;
configuración vacía () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); retraso (50); }
bucle vacío () {codificador de lectura (); if (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// la perilla está girando if (digitalRead (pinB)! = mrotate) {// el interruptor A cambió primero -> girando en el sentido de las agujas del reloj encoderPosCount ++; Serial.println ("girado en el sentido de las agujas del reloj"); } else {// el interruptor B cambió primero -> girando en sentido antihorario encoderPosCount--; Serial.println ("girado en sentido antihorario"); }
Serial.print ("Posición del codificador:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; return encoderPosCount; } bool readswitch () {
if (digitalRead (pinSW)! = 0) {// se presiona el interruptor
while (digitalRead (pinSW)! = 0) {} // el interruptor está actualmente presionado switchval = 1; } else {switchval = 0;} // switch está sin presionar return switchval; }
Ahora puede girar el codificador y la variable codificador PosCount contará hacia arriba si gira en el sentido de las agujas del reloj y contará hacia atrás si gira en el sentido contrario a las agujas del reloj.
¡Eso es todo! Simple y útil.
Siéntase libre de cambiar y ejecutar el código. Puedes implementarlo en tu proyecto.
También subiré un proyecto de LED donde usé el codificador para configurar el brillo de mis LED.
Recomendado:
Temporizador con Arduino y codificador rotatorio: 5 pasos
Temporizador con Arduino y Codificador Rotatorio: El temporizador es una herramienta de uso frecuente tanto en actividades industriales como domésticas, este montaje es económico y fácil de realizar, además es muy versátil, pudiendo cargar un programa elegido según necesidades. Hay varios programas escritos por mí, para Ardui
Temporizador de energía con Arduino y codificador rotatorio: 7 pasos (con imágenes)
Temporizador de potencia con Arduino y codificador rotatorio: este temporizador de potencia se basa en el temporizador presentado en: https: //www.instructables.com/id/Timer-With-Arduin … Un módulo de fuente de alimentación y un SSR (relé de estado sólido ). Se pueden operar cargas de potencia de hasta 1KW y con cambios mínimos el l
Cómo usar el motor paso a paso como codificador rotatorio y pantalla OLED para pasos: 6 pasos
Cómo usar el motor paso a paso como codificador rotatorio y pantalla OLED para pasos: En este tutorial aprenderemos cómo rastrear los pasos del motor paso a paso en la pantalla OLED. Mire un video de demostración. El crédito para el tutorial original es para el usuario de YouTube " sky4fly "
Codificador rotatorio con Arduino Nano: 4 pasos
Codificador rotatorio usando Arduino Nano: Hola a todos, En este artículo haré un tutorial sobre cómo usar un codificador rotatorio usando Arduino Nano. Para utilizar este codificador rotatorio no necesita una biblioteca externa. Entonces podemos crear programas directamente sin agregar bibliotecas primero. ok, empecemos con
Codificador rotatorio: cómo funciona y cómo usarlo con Arduino: 7 pasos
Codificador rotatorio: cómo funciona y cómo usarlo con Arduino: puede leer este y otros tutoriales increíbles en el sitio web oficial de ElectroPeak. Primero, verá información sobre el codificador rotatorio y luego aprenderá a