Gracias victorjam! No pretendo que me hagais los ejercicios, solo necesito saber como hacer una parte para luego aplicarla y seguir yo.
Aquí te mando el codigo
bool pulsacion=1; //creamos una variable booleana (0 o 1) para guardar la pulsacion del boton
int contador=0; //creamos una variable llamada contador y empieza a 0
#define BOTON 2 //creamos una constante llamada boton y le damos el valor 2
#define BOTON2 4
#define LED_ROJO 9
#define LED_VERDE 10
#define LED_BLANCO 11
#define LED_AMBAR 12
void setup() {
pinMode (BOTON,INPUT); //definimos el pin 2 como una entrada
pinMode (BOTON2,INPUT); //definimos el pin 4 como una entrada
pinMode (LED_ROJO,OUTPUT);
Serial.begin (9600); //iniciar monitor serie a 9600 baudios
Serial.println (contador); //imprimir por pantalla el valor de contador
}
void loop() {
pulsacion=digitalRead (BOTON); //lectura digital del pin numero boton (2)
while(pulsacion==1){ //si pulsacion es 1 haz...
delay(300);
pulsacion=digitalRead (BOTON);
if (pulsacion==0){
contador++; //contador al que le sumas mas 1
Serial.println(contador); //imprimir por pantalla el valor de contador
}
}
pulsacion=digitalRead (BOTON2); //lectura digital del pin numero boton (3)
while(pulsacion==1){ //si pulsacion es 0 haz...
delay(300);
pulsacion=digitalRead (BOTON2);
if (pulsacion==0){
contador--; //contador al que le resta 1
Serial.println(contador); //imprimir por pantalla el valor de contador
}
}
if (contador<0) {
contador=0;
}
if (contador>99) {
contador=0;
}
switch (contador){
case 0: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,LOW);
break;
case 1: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,HIGH);
break;
case 2: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,HIGH);
digitalWrite(LED_AMBAR,LOW);
break;
case 3: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,HIGH);
digitalWrite(LED_AMBAR,HIGH);
break;
case 4: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,HIGH);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,LOW);
break;
case 5: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,HIGH);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,HIGH);
break;
case 6: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,HIGH);
digitalWrite(LED_BLANCO,HIGH);
digitalWrite(LED_AMBAR,LOW);
break;
case 7: digitalWrite(LED_ROJO,LOW);
digitalWrite(LED_VERDE,HIGH);
digitalWrite(LED_BLANCO,HIGH);
digitalWrite(LED_AMBAR,HIGH);
break;
case 8: digitalWrite(LED_ROJO,HIGH);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,LOW);
break;
case 9: digitalWrite(LED_ROJO,HIGH);
digitalWrite(LED_VERDE,LOW);
digitalWrite(LED_BLANCO,LOW);
digitalWrite(LED_AMBAR,HIGH);
break;
}
}