Descrición: Acender e apagar
Imos ver como controlar o acendido e apagado dun LED premendo pulsadores, pero establecendo condicións. Por exemplo, na primeira práctica, cando prememos un pulsador o LED acéndese e cando o soltamos apágase.
Despois deberás conectar un segundo pulsador. Utilizando os operadores booleanos imos acender e apagar un LED segundo determinadas condicións.
Programas:
1. Pulsador NA
Imos acender e apagar un LED utilizando un condicional.
- Conectamos un pulsador e un LED, coas súas resistencias de protección
- Creamos unha variable “estado” que le o estado do pulsador
- Utilizamos un condicional if … else … para indicar que cando o pulsador estea premido o LED deberá acenderse, e cando non deberá apagarse.
// Declaración de variables:
int led = 13; // Pin 13 asignado a un LED
int pulsador = 2; // Pin 2 asignado a un pulsador
int estado=0; // Variable coa que leremos o estado do pulsador.
// Configuración:
void setup() {
pinMode(led, OUTPUT); // Configuramos o LED como saída
}
// Programa:
void loop(){
estado = digitalRead(pulsador); // Lemos o estado do pulsador e asignamos o valor a "estado"
if (estado == 1){ // Se o pulsador esta premido (estado = 1)
digitalWrite(led, HIGH); // Acéndese o LED
}
else{ // Se non
digitalWrite(led, LOW); // Apágase o LED
}
}
2. Operación AND
Utilizando un condicional, faremos que un LED acenda só no caso de que premamos dous pulsadores á vez.
Debemos conectar dous pulsadores, un ao pin 2 e outro ao pin 3.
// Declaración de variables:
const int led = 13; // Pin 13 asignado a un LED1
const int pulsador1 = 2; // Pin 2 asignado a un pulsador1
const int pulsador2 = 3; // Pin 3 asignado a un pulsador2
int estado1=0; // Variable coa que leremos o estado do pulsador1.
int estado2=0; // Variable coa que leremos o estado do pulsador2.
// Configuración:
void setup() {
pinMode(led, OUTPUT); // Configuramos o LED como saída
}
// Programa:
void loop() {
estado1 = digitalRead(pulsador1); // Asignamos a "estado1" o valor (0 ou 1) do pulsador1
estado2 = digitalRead(pulsador2); // Asignamos a "estado2" o valor (0 ou 1) do pulsador2
if (estado1 == 1 && estado2 == 1) { // Se ambos pulsadores están premidos (estado = 1)
digitalWrite(led, HIGH); // Acéndese o LED
}
else { // Se non
digitalWrite(led, LOW); // Apágase o LED
}
}
Propostas:
Conecta dous interruptores e dous LEDs, con cadansúas resistencias de protección e, utilizando as funcións condicionais, resolve os seguintes problemas:
- Ao revés!: Fai que un pulsador funcione de xeito que en repouso acende un LED e cando prememos apágao.
- Operación OR: Usando a operación OR (||), fai que un LED acenda cando prememos calquera dos pulsadores.
- Un pulsador para 2 LEDs: Inicialmente temos un LED aceso e outro LED apagado. Cando prememos nun pulsador o primeiro LED acéndese e o segundo apágase. Ao soltar volvemos á situación de partida.