Hola te importaría pobrar este codigo? ya se que es mucho más simple y poco sofisticado que el de los demas pero compilar compila y a mi me a funcionado no se si es lo que quieres pero tienes la base para hacerlo. puedes cambiar los if por swicht como hiciste tu, espero haberte ayudado yo tampoco se mucho más de esto, pero bueno entre todos seguro que lo hacemos.
int boton = 5;
int led1 = 10;
int led2 = 11;
int estado = 0;
int x = 1;
void setup() {
// initialize the LED pin as an output:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(boton, INPUT);
}
void loop(){
// read the state of the pushbutton value:
estado = digitalRead(boton); // miramos como esta el estado del boton
if(estado == HIGH) // si está alto entra en el bucle
{
delay(50); //para que no cuente varias veces un delay
x++; //le suma 1 a x.
if(x > 2) // aqui si x es mayor de 2
{
x = 1; // x igual a 1.
}
}
if (x == 1) // si x es igual a 1 enciende el led1 y el led2 apagado
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
}
if ( x == 2) // si x es igual a 2 enciende el led2 y el led1 apagado
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
}
}
un saludo a todos y gracias por compartir vuestros conocimientos
un saldo Fermg.