Sensor de posición de un motor con un encoder de cuadratura y arduino
Sensor de posición angular de un motor con un encoder de cuadratura y arduino
Objetivos:
- Medir la posición angular de un motor DC usando un encoder de cuadratura y arduino
Desarrollo:
Un encoder de cuadratura tiene dos canales de salida, el canal A y el canal B, ambos salida con pulsos cuadrados, los pulsos de ambos canales están desfasados 90

Programa uno ( suma pulsos si el motor gira en sentido de la manecillas del reloj y resta pulsos si el motor gira en sentido contrario a las manecillas del reloj)
const int canalB= 3;
const int canalA = 2;
int pulsos=0;
void setup() {
pinMode(canalB, INPUT_PULLUP);
pinMode(canalA, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(canalA), encoder, RISING);
Serial.begin(9600);
}
void loop() {
//esta parte es para emular la salida
}
void encoder() {
if( digitalRead(canalA)==HIGH and digitalRead(canalB)==LOW) {
pulsos++;
}
if (digitalRead(canalA)==HIGH and digitalRead(canalB)==HIGH) {
pulsos--;
}
Serial.println(pulsos);
}
