Descrición:
Imos crear unha variable para almacenar na memoria o estado dun LED, de xeito que cando prememos nun pulsador o LED acéndese se estaba apagado e apágase se estaba aceso.
Utilizamos o programa que vimos anteriormente para detectar pulsos nun pulsador sen rebotes.
Programa:
- Creamos unha variable “estadoLED” que almacena o estado no que se atopa o LED (aceso 1 ou apagado 0).
- Utilizamos un condicional if … else … para indicar que cando o pulsador estea premido o LED deberá acenderse se o valor da variable estadoLED é 0 e deberá apagarse se o valor de estadoLED é 1.
// Declaración de variables:
const int led = 13; // Pin 13 asignado a un LED
const int pulsador = 2; // Pin 2 asignado a un pulsador
int estadoLED = 0;
// Configuracion
void setup() {
pinMode(led, OUTPUT); // Configuramos o led como saida
}
// Programa
void loop() {
if(digitalRead(pulsador)==1){
while(digitalRead(pulsador)==1); // Agarda mentres está pulsado
delay(20);
if (estadoLED == 0) { // Se o LED está apagado
digitalWrite(led, HIGH); // Acendémolo
estadoLED=1; // Gardamos o estado 1 na memoria
}
else { // Se o LED está aceso
digitalWrite(led, LOW); // Apagámolo
estadoLED=0; // Gardamos o estado 0 na memoria
}
}
}
Proposta:
- Cantas veces?: Engade ao programa anterior o necesario para contar o número de veces que foi acendido o LED e visualizalo na consola.