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.