Go Down

Topic: Programa para contar las pulsaciones de un encoder (Read 106 times) previous topic - next topic

e_z_2000

Jul 05, 2018, 08:12 pm Last Edit: Jul 06, 2018, 11:34 pm by surbyte Reason: Agregado de etiquetas de código y errores.
Hola! Estoy haciendo un programa para contar las pulsaciones de un encoder rotacional tanto al incrementar como al decrementar. La cosa es que a dar el giro completo al encoder en el monitor se refleja 400 (si sigo rotando ese valor va subiendo indefinidamente por lo que no puedo usar la función map). ¿Cómo puedo hacer para que al dar al giro completo, quede en un rango de 0 a 100?. De antemano muchas gracias! Dejo el código que estoy utilizando:
Code: [Select]

#include <Encoder.h>


Encoder myEnc(2, 3);


void setup() {
Serial.begin(9600);
Serial.println("Basic Encoder Test:");
}

long oldPosition  = -999;

void loop() {
long newPosition = myEnc.read();
if (newPosition != oldPosition) {
  oldPosition = newPosition;
  Serial.println(newPosition);
}
}

surbyte

Tienes que hacerlo porque existen librerías de enconders
Ademas si usas un enconder debes ver flancos ya que tienes dos señales A y B defasadas entre si y de su defasajes determinas si esta girando en sentido horario o anti horario.

Busca Arduino encoder y tendras las diferentes opciones.

PeterKantTropus

Depende del tipo de encoder estés utilizando podrás hacerlo simple o no. Los encoder suelen tener tres canales : A,B y Z este último es un pulso que indica un giro completo y con el cual deberás resetear a cero el contador
"Si no entra como tornillo, entra como clavo"

Go Up