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);

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *