Hola, tengo un problema con un IF
la condición es que el pin 3 esté LOW.
El problema es que entra siempre en el IF no importa el estado del pin 3.
(he añadido unas lineas para que me escriba en pantalla el estado del pin 3 antes de entrar al IF y ahí se ve que la condición a veces la cumple y otras no, pero siempre entra en el bucle)
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
byte bomba[8] = {
B00000010,
B00000100,
B00000100,
B00001110,
B00011111,
B00011111,
B00011111,
B00001110,
};
int i;
int time;
const int pin2 = 2;
const int pin3 = 3;
int inicio;
int rapido;
void setup() {
Serial.begin(9600);
lcd.createChar(0, bomba);
lcd.begin(16, 2);
pinMode(pin2, INPUT);
pinMode(pin3, INPUT);
lcd.setCursor(3, 0);
lcd.print("PROTOTIPO");
lcd.setCursor(5, 1);
lcd.print("BOMBA");
}
void loop() {
time = 2000;
inicio = 0;
inicio = digitalRead(pin2);
rapido = 0;
rapido = digitalRead(pin3);
if (inicio == 1)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(byte (0));
lcd.print(" Cuenta atras");
for (i = 9; i >= 0; i--)
{
lcd.setCursor(0, 1);
lcd.print(int (i));
//////////////////////////////////
////////// problema ////////////
/////////////////////////////////
rapido = digitalRead(pin3);
Serial.println(rapido);
if (rapido == 0);
{
Serial.println("xxxxx");
//time = 500;
}
delay(time);
}
lcd.home();
lcd.clear();
lcd.setCursor(0, 1);
lcd.write(byte(0));
lcd.setCursor(4, 1);
lcd.print("BOOOOOOM");
lcd.setCursor(15, 1);
lcd.write(byte(0));
delay(2000);
lcd.clear();
}
}
