domingo, 6 de marzo de 2022

Pulsadores (IDE Arduino)

El shield multifunción dispone de tres pulsadores: S1, S2 y S3, conectados a los pines A1, A2 y A3. Para usarlos tenemos que detectar si están presionados o liberados, eso lo podemos hacer con la instrucción digitalRead, que nos devuelve el nivel de voltaje (LOW o HIGH) existente en el pin. Cuando un pulsador está presionado dicho voltaje es LOW y cuando está liberado HIGH. En el programa adjunto, al presionar el pulsador S1 se enciende el LED D1 y al liberarlo se apaga.
/* 
 * pulsadorS1LedD1.ino
 * Al presionar el pulsador S1 (en el pin A1) se
 * enciende el LED D1 (pin 13) y se apaga al liberarlo.
 * Cuando se presiona un pulsador estamos poniendo un
 * voltaje bajo, LOW, en el pin al que está conectado,
 * al liberarlo se queda un voltaje alto, HIGH.
 */
 
void setup() {
  pinMode(13, OUTPUT);      //pin 13 como salida
  pinMode(A1, INPUT);       //pin A1 como entrada
  digitalWrite(13, HIGH);   //apagamos el Led D1
}

void loop() { 
  digitalWrite(13, digitalRead(A1));   //digitalRead(A1) será LOW si
                                       //el pulsador está presionado
                                       //o HIGH si está liberado
}

En este caso, vamos a encender D1 y D2 al presionar el pulsador S1 y los vamos a apagar cuando presionemos el pulsador S2. Para realizar el programa es necesario usar la instrucción if (si), que nos va a servir para comparar dos valores y ejecutar unas determinadas instrucciones sólo en el caso de que sean iguales.

/*
 * pulsadorS1enciendeS2apaga.ino
 * Al presionar el pulsador S1 (pin A1)se encienden D1 (pin 13) y
 * D2 (pin 12), al presionar el pulsador S2 (pin A2) se apagan.
 */
 
void setup() {
  pinMode(13, OUTPUT);        //pin 13 como salida
  pinMode(12, OUTPUT);        //pin 12 como salida
  pinMode(A1, INPUT);         //pin A1 como entrada
  pinMode(A2, INPUT);         //pin A2 como entrada
  digitalWrite(13, HIGH);     //apagamos el Led D1
  digitalWrite(12, HIGH);     //apagamos el Led D2
}

void loop() { 
  if(digitalRead(A1)==LOW) {   //si pulsador S1 presionado
    digitalWrite(13, LOW);     //Led D1 encendido
    digitalWrite(12, LOW);     //Led D2 encendido
  }
  if(digitalRead(A2)==LOW) {   //si pulsador S2 presionado
    digitalWrite(13, HIGH);    //Led D1 apagado
    digitalWrite(12, HIGH);    //Led D2 apagado
  }
}




Ejercicios propuestos:

1.- Escribir un programa para que al presionar el pulsador 1 se encienda el LED 4, al presionar el pulsador 2 suene el  zumbador y al presionar el pulsador 3 se apague el LED y finalice el sonido.

2.- Ahora haremos que los diodos 1 y 2 se enciendan al mantener presionado el pulsador 1 y se apaguen al liberarlo. Además, los diodos 3 y 4 se encenderán al presionar el pulsador 2 y se apagarán al presionar el pulsador 3.




No hay comentarios:

Publicar un comentario