Hola:
byte estadoBoton1 = 0; // Guardará el estado del botón HIGH o LOW.
byte estadoBoton2 = 0;
byte estadoBoton3 = 0;
byte estadoBoton4 = 0;
byte estadoBotonAnt1 = 0;
byte estadoBotonAnt2 = 0;
byte estadoBotonAnt3 = 0;
byte estadoBotonAnt4 = 0;
char caracter;
String comando;
char buffer[40];
void setup()
{
pinMode(13,OUTPUT); // Donde está el Led 13.
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(8,INPUT); // Entrada digital 8.
pinMode(7,INPUT);
pinMode(6,INPUT);
pinMode(5,INPUT);
Serial.begin(115200);
sprintf(buffer,"%6s %6s %6s %6s",
estadoBoton1?"HIGH 1":"LOW 1",
estadoBoton2?"HIGH 2":"LOW 1",
estadoBoton3?"HIGH 3":"LOW 3",
estadoBoton4?"HIGH 4":"LOW 4");
Serial.println(buffer);
}
void loop() {
estadoBoton1 = digitalRead(8);
// Si el pulsador está pulsado, se enciende el Led 13 y
// envía comando HIGH por el puerto serie.
if (estadoBoton1 == HIGH && estadoBotonAnt1 == LOW)
{
digitalWrite(13,HIGH);
Serial.println("HIGH 1");
delay(50);
}
// De lo contrario, Led 13 epagado y envía LOW al puerto serie.
if (estadoBoton1 == LOW && estadoBotonAnt1 == HIGH) {
digitalWrite(13,LOW);
Serial.println("HIGH 1");
delay(50);
}
estadoBotonAnt1 = estadoBoton1;
estadoBoton2 = digitalRead(7);
// Si el pulsador está pulsado, se enciende el Led 13 y
// envía comando HIGH por el puerto serie.
if (estadoBoton2 == HIGH && estadoBotonAnt2 == LOW)
{
digitalWrite(12,HIGH);
Serial.println("HIGH 2");
delay(50);
}
// De lo contrario, Led 13 epagado y envía LOW al puerto serie.
if (estadoBoton2 == LOW && estadoBotonAnt2 == HIGH) {
digitalWrite(12,LOW);
Serial.println("LOW 2");
delay(50);
}
estadoBotonAnt2 = estadoBoton2;
estadoBoton3 = digitalRead(6);
// Si el pulsador está pulsado, se enciende el Led 13 y
// envía comando HIGH por el puerto serie.
if (estadoBoton3 == HIGH && estadoBotonAnt3 == LOW)
{
digitalWrite(11,HIGH);
Serial.println("HIGH 3");
delay(50);
}
// De lo contrario, Led 13 epagado y envía LOW al puerto serie.
if (estadoBoton3 == LOW && estadoBotonAnt3 == HIGH) {
digitalWrite(11,LOW);
Serial.println("LOW 3");
delay(50);
}
estadoBotonAnt3 = estadoBoton3;
estadoBoton4 = digitalRead(5);
// Si el pulsador está pulsado, se enciende el Led 13 y
// envía comando HIGH por el puerto serie.
if (estadoBoton4 == HIGH && estadoBotonAnt4 == LOW)
{
digitalWrite(10,HIGH);
Serial.println("HIGH 4");
delay(50);
}
// De lo contrario, Led 13 epagado y envía LOW al puerto serie.
if (estadoBoton4 == LOW && estadoBotonAnt4 == HIGH) {
digitalWrite(10,LOW);
Serial.println("LOW 4");
delay(50);
}
estadoBotonAnt4 = estadoBoton4;
}
Si, tengo los 4 pulsadores en LOW, en el Monitor Serie muestra:
LOW 1 LOW 1 LOW 3 LOW 4
Apago o Reseteo Arduino, antes dejo todo en HIGH. ME sale estod esto.
LOW 1 LOW 1 LOW 3 LOW 4
HIGH 1
HIGH 2
HIGH 3
HIGH 4
Esto no es normal, jajajjajaja. A parte de eso, no me sale la línea de cuando quiero cambiar un estado, sale solo uno.
Saludos.