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.