hola a todos, estoy buscando la forma de tomar dos señales digitales por medio de encoders hasta el momento he sacado 2 codigos pero no se como puedo hacer que en un solo codigo me lea las dos señales digitales a la vez, gracias.
..........................
Encoder 1
..........................
int long encoder0PinA = 3;
int long encoder0PinB = 5;
float encoder0Pos = 0;
float encoder0PinALast = LOW;
int n = LOW;
int vueltas=0;
float grados=0;
void setup() {
pinMode (encoder0PinA,INPUT);
pinMode (encoder0PinB,INPUT);
Serial.begin (500000);
}
void loop() {
n = digitalRead(encoder0PinA);
if ((encoder0PinALast == LOW) && (n == HIGH)) {
if (digitalRead(encoder0PinB) == LOW) {
encoder0Pos--;
grados = ((360*encoder0Pos)/2500);
}
else {
encoder0Pos++;
grados = ((360*encoder0Pos)/2500);
}
Serial.print ("GRADOS = ");
Serial.println (grados);
}
encoder0PinALast = n;
}
...................................
Encoder 2
...................................
int long encoder0PinA2 = 9 ;
int long encoder0PinB2 = 11;
float encoder0Pos2 = 0;
float encoder0PinA2Last = LOW;
int long n = LOW;
int vueltas=0;
float grados=0;
void setup() {
pinMode (encoder0PinA2,INPUT);
pinMode (encoder0PinB2,INPUT);
Serial.begin (9600);
}
void loop() {
n = digitalRead(encoder0PinA2);
if ((encoder0PinA2Last == LOW) && (n == HIGH)) {
if (digitalRead(encoder0PinB2) == LOW) {
encoder0Pos2 ++;
grados = ((5.3*encoder0Pos2)/60);
}
else {
encoder0Pos2 ++;
grados = ((5.3*encoder0Pos2)/60);
}
Serial.print ("Grado = ");
Serial.println (grados);
}
encoder0PinA2Last = n;
}
.........................................