Condicional if … else

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:

  1. Ao revés!: Fai que un pulsador funcione de xeito que en repouso acende un LED e cando prememos apágao.
  2. Operación OR: Usando a operación OR (||), fai que un LED acenda cando prememos calquera dos pulsadores.
  3. 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.

 


Deixa un comentario