ENCENDER Y APAGAR CON UN PULSADOR

Esta práctica consiste en utilizar un mismo pulsador para encender y apagar un led.

  1. ¿Qué es un led?
  2. ¿Qué es un pulsador?
  3. Circuito: Cómo conectar un led y un pulsador a Arduino
  4. Programación con Mblock
  5. Programación con Arduino IDE

1.  ¿Qué es un diodo led?

En la práctica anterior os explicamos qué es un diodo led. Puedes leerlo en: Prácticas con Arduino: Luz intermitente

2.  ¿Qué es un pulsador?

Un pulsador es un operador digital que permite el paso de corriente eléctrica cuando está pulsado. Puedes leer más información en: Prácticas con Arduino: Luz con pulsador.

3. Circuito: Cómo conectar un LED a Arduino

Para realizar este circuito necesitas los siguientes materiales:

Para trabajar en una protoboard, es importante conocer las conexiones que existen en ella. Puedes utilizar el siguiente enlace para leer información detallada sobre las conexiones de la protoboard.

Circuito: Conectar pulsador a arduino
Conectar un pulsador a Arduino

Cuando pongas el pulsador en la board, dos patillas deben quedar en una mitad de la board y las otras dos patillas en la otra mitad, de tal forma que no estén conectadas entre sí.

El cátodo del led lo conectamos al pin 6 de Arduino y el ánodo a GND. El pulsador se conecta al pin digital 2.

¡Ya sólo nos queda programar!

Para programar la placa Arduino puedes utilizar diferentes lenguajes. Nosotros nos vamos a centrar en dos opciones

  • MBlock – programación basada en bloques
  • Arduino IDE – programación basada en líneas de código

4. Programación con mBlock

El objetivo de este programa es muy sencillo: conseguir que el LED que hemos conectado al pin 6 se encienda y se apague cuando se presione el pulsador. Al presionar el pulsador el led se enciende, y se mantiene encendido hasta que se vuelva a presionar el pulsador.

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Mblock: primeros pasos«

Una vez configurada la tarjeta comenzamos con la programación. El primer bloque que necesitamos es un evento (pulsa en el círculo naranja para ver los eventos disponibles) , en este caso utilizaremos el evento «cuando clic en bandera verde«.

Utilizamos un bucle infinito con el bloque «para siempre» que localizarás en la sección naranja control. Así nuestro programa se ejecutará continuamente, para que podamos encender y apagar la luz tantas veces como queramos

Bucle infinito
Bucle infinito

A continuación utilizamos el bloque «esperar hasta que…» que localizarás entre los bloques naranjas de la sección control. La finalidad de este bloque es generar una pausa en el programa que se mantenga hasta que se cumpla la condición indicada en este bloque. En el caso de nuestro programa, la condición será que se presione el pulsador. Introducimos en la condición la lectura del pin digital 2. Dentro de la sección azul pin, localizamos el bloque «pin digital 2».

Una vez que se ha pulsado el pulsador del pin 2 procedemos a encender el Led:

A continuación el programa ser quedará esperando que se vuelva a presionar el pulsador para proceder a apagar el led:

Conviene poner dos bloques de pausa para que la placa no detecte varias pulsaciones si tardamos un poco en levantar el dedo del pulsador:

Pulsa la bandera verde, y verás que funciona: cuando presiones el pulsador se enciende el led y cuando lo vuelves a presionar se apaga. ¡Objetivo conseguido!

5. Programación con Arduino IDE

El objetivo de este programa es muy sencillo: al presionar el pulsador el led se enciende y al pulsar de nuevo el pulsador, el led se apaga … pero esta vez utilizando un lenguaje basado en líneas de código.

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Arduino IDE: primeros pasos«.

Una vez configurada la tarjeta comenzamos con la programación. Recuerda que al trabajar con código debemos respetar la sintaxis: Cuidado con las letras mayúsculas y minúsculas y con los signos de puntuación. ¡Son importantes!.

Los programas en Arduino IDE constan de dos secciones: setup y loop.

En setup vamos a configurar los pines de la placa que vamos a utilizar.

pinMode(6, OUTPUT); En el pin 6 conectamos un dispositivo de salida: el LED
pinMode(2, INPUT); En el pin 12 conectamos un dispositivo de entrada: el pulsador
Configuración de pines

Para realizar este programa vamos a utilizar una variable «estado» donde guardaremos el estado del led:

1 – Si el led está encendido

0 – Si el led está apagado

Esta variable la definimos antes del bloque setup.

En loop vamos a introducir el código que se va a ejecutar continuamente. En este caso tendremos dos condicionales «if»:

  • Si pulsas el pulsador y el led estaba apagado (led = 0), encendemos el led y cambiamos la variable de estado por 1
  • Si pulsas el pulsador y el led esta encendido (led = 1), apagamos el led y cambiamos la variable de estado por 0

 

int estado=0;

void setup() { 
    pinMode(6, OUTPUT);               // Led - pin de salida 
    pinMode(2, INPUT);                // pulsador - pin de entrada 
} 
  
void loop() { // bucle infinito 

  if(digitalRead(2) && estado==0){  // si pulsador presionado y led apagado
    digitalWrite(6, HIGH);          // se enciende el led 
    delay(100); 
    estado=1;                       // guardamos el estado encendido   
  } 
  if(digitalRead(2) && estado==1){  // si pulsador presionado y led encendido

    digitalWrite(6, LOW);           // se apaga el led 
    delay(100); 
    estado=0;                       // guardamos el estado apagado   
  }
  
}

Pulsa en el icono subir, y si al presionar el pulsador se enciende el led y al volverlo a pulsar se apaga … ¡Objetivo Conseguido!