Mi problema es el siguiente, necesito instalar un botón de on/off que funcione de tal modo que al pulsar 5 veces rápida y consecutivamente un pulsador (push button), este active un circuito en el que puede estar un led, un motor o lo que sea que se necesite encender. Por lo tanto, estas 5 pulsaciones "rápidas y consecutivas" deben depender del tiempo; es decir, que, por ejemplo, para que el circuito se active, se necesitan de 5 pulsaciones consecutivas las cuales deben ser ejecutadas en un tiempo máximo de 7 segundos. He estado usando millis (), pero cada vez que siento tener el código, surge otro problema. Entre estos está el hecho de cómo hacer para inicializar el conteo del tiempo (7 segundos); ya que, este debe ser iniciado con una pulsación la cual depende enteramente del usuario.
P.S. Estoy usando un Arduino LEONARDO.
El siguiente código es el que estoy usando, aunque todavía este lejos de lo que quiero hacer.
¿Alguna manilla por ahí para ayudar a este amateur?
const int buttonPin = 2;
const int ledPin = 11;
// Variables will change:
int buttonPushCounter = 0;
int buttonPushCounter2 = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState)
{
if (buttonState == HIGH) {
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
}
else {
Serial.println("off");
}
delay(50);
}
lastButtonState = buttonState;
if (buttonPushCounter == 19) {
buttonPushCounter = 1;
}
buttonPushCounter2 = buttonPushCounter/6 ;
if (buttonPushCounter2 % 2 == 0) {
digitalWrite(ledPin, LOW);
}
else if (buttonPushCounter2 % 2 != 0) {
digitalWrite(ledPin, HIGH);
}
}