Cómo leer la entrada del reloj en un arduino

0

Estoy tratando de leer la entrada de un codificador rotatorio óptico que cambia su estado 360 veces por rotación. Mi código actualmente lee el estado de un pin digital arduino lo más rápido posible y cuenta cuando cambia el estado. Esto funciona mientras el motor gira lentamente, pero falla mucho cuando el motor se acelera.

¿Cómo puedo detectar cambios en el estado con mayor precisión? ¿Puedo obtener un IC que haría esto?

void setup() {
  pinMode(12, INPUT);
  Serial.begin(9600);
}

int count;
int last;
void loop() {
  int b = digitalRead(12);
  if (b != last){
    count++;
    Serial.println(count);
  }
  last = b;
}
    
pregunta stas

1 respuesta

2

¿Por qué no intentas mejorar la eficiencia de tu código? Aumentar su velocidad en baudios para su serie realmente ayudará. Solo cámbiala a Serial.begin(115200); . Luego use Serial.print() menos a menudo. Si todo esto falla, esta página es fantástica: enlace

    
respondido por el Dr Coconut

Lea otras preguntas en las etiquetas