Memoria

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.

Deixa un comentario