Tarea
- Duración:
- 30
- Agrupamiento:
- 1
Se trata de un control de turno, para ello tenemos dos pulsadores SW1 (entrada digital 2) y SW2 (entrada digital 7) y una pantalla LCD 16x2 (16 columnas y 2 filas) para mostrar el turno actual. Si se pulsa el pulsador SW1 el turno avanza en uno, si se pulsa el pulsador SW2 el turno retrocede en uno. El turno no puede ser un número negativo.
Objetivos:
- Inclusión y uso de librerías en programas.
- Repaso de condicionales.
- Repaso de funciones.
- Repaso de entradas digitales.
Código:
#include <Wire.h> //llama a la librería Wire
#include "ABlocks_LiquidCrystal_I2C.h" //llama a la librería LiquidCrystal_I2C
int turno = 0;
int SW1 = 2;
int SW2 = 7;
LiquidCrystal_I2C lcd_1(0x27, 16, 2); //configura una pantalla LCD llamada lcd_1 indidicando su tamaño 16x2
void setup()
{
pinMode (SW1, INPUT);
pinMode (SW2, INPUT);
lcd_1.begin();//inicializa la pantalla
lcd_1.noCursor();//quita la visualización del cursor
lcd_1.backlight();//ilumina el fondo de pantalla
pintaPantalla();
}
void loop()
{
if (digitalRead (SW1) == HIGH) {
turno = turno + 1;
delay (300);
pintaPantalla();
}
if (digitalRead (SW2) == HIGH) {
turno = turno - 1;
delay (300);
pintaPantalla();
}
if (turno < 0) {
turno = 0;
pintaPantalla();
}
}
void pintaPantalla () {
lcd_1.clear();
lcd_1.setCursor(0, 0);//pone el cursor en columna o y fila 0 (arriba a la izquierda)
lcd_1.print("Turno: ");//escribe texto en pantalla
lcd_1.setCursor(6, 0);
lcd_1.print(turno);//escribe en pantalla la variable turno
}