Buenas...
Tras estar rebuscando los numerosos scripts que hay circulando al respecto he encontrado este que se adapta a mis especiales encoders;)
#include <Bounce.h>
// This code increments or decrements a counter based on
// the status of a rotaty encoder
#define pin1 5
#define pin2 6
#define LED 13
int counter = 0;
// Instantiate a Bounce object with a 5 millisecond debounce time
// Only pin1 needs to be debounced. It is assumed that pin2
// will be stable when reading pin1
Bounce bouncer1 = Bounce( pin1,6 );
void setup() {
pinMode(pin1,INPUT);
pinMode(pin2,INPUT);
pinMode(LED,OUTPUT);
Serial.begin(9600);
}
void loop() {
// Update the debouncer
bouncer1.update ( );
// Turn on or off the LED and
// increment or decrement the counter
if ( bouncer1.risingEdge()) {
if (digitalRead(pin2)){
digitalWrite(LED, HIGH );
counter++;
Serial.println(counter*10);
}else{
counter--;
Serial.println(counter*10);
}
} else {
digitalWrite(LED, LOW );
}
}
A modo de prueba he modificado la asignacion de pines y el bounce lo he pasado a 6 milisegundos... y para hacer incrementos de 10 he multiplcado counter por ese digito...
El resultado...
http://www.youtube.com/watch?v=ZRu4MQbG_Dk&feature=youtu.beBueno, ahora a por el script principal a ver si consigo hacerlo sin meter mucho la pata.
Un saludo.
inigohe