Sensor de posición angular de un motor con un encoder de cuadratura y arduino

Escrito Por: admin Publicado En: Sensores Fecha de Creación: 2018-10-08 visitas: 50

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

  
}

 

El codigo anterior solo muestra via serial el numero de pulsos.

En una segunda parte de este articulo mostrare una estrategia  para mostrar en una LCD los grados centigrados usando un encoder de cuadratura.

 

 

 

Etiqueta: Sensor de posición angular de un motor con un encoder de cuadratura y arduino
comments powered by Disqus