He creado un circuito simple que consiste en un 4017 ic, un interruptor de tacto y un arduino. El arduino es solo para fines de rebote. Por alguna razón, tengo que presionar dos veces el interruptor para que pase la entrada.
int button = 2;
int CLK = 3;
volatile boolean lastbutton = LOW;
volatile boolean currentbutton = LOW;
volatile boolean CLKlvl = LOW;
void setup() {
pinMode(button, INPUT);
pinMode(CLK, OUTPUT);
}
void loop() {
currentbutton = debounce(lastbutton);
if (lastbutton == LOW && currentbutton == HIGH){
CLKlvl = !CLKlvl;
}
lastbutton = currentbutton;
digitalWrite(CLK, CLKlvl);
}
boolean debounce(boolean last){
boolean current = digitalRead(button);
if (last != current){
delay(5);
current = digitalRead(button);
}
return current ;
}