Arduino: Utilizzo libreria LiquidCrystal-I2C

Salve a tutti!

In questo articolo vi mostrerò come realizzare un progetto che stamperà su un display 16×02 delle informazioni riguardanti la stato di alcuni componenti.

WP_20150609_008

In particolare il display ci mostrerà se un LED o un Relay sono attivi e alcune informazioni.

 

Il materiale di cui abbiamo bisogno è:

– Arduino Uno

– Breadboard (basetta)

– 3 pulsanti

– 3 resistori da 1KOhm

– Un LED

– Un display LCD 16*02

– Un Relay

– Fili per i collegamenti

WP_20150609_004

Lo sketch utilizzato è molto semplice e si basa su l’utilizzo della funzione IF e le funzioni della liberia LCD-LiquidCrystal-I2C   —-> DOWNLOAD

Passiamo al codice per intero:

[c]

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int led = 3;
int bottone = 12;
int bottone2 = 11;
int bottone3 = 10;
int relay = 9;
int lettura = 0;
int lettura2 = 0;
int lettura3 = 0;
void setup()
{
lcd.init();
lcd.backlight();
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
pinMode(12, INPUT);
pinMode(11, INPUT);
pinMode(10, INPUT);
lcd.print(" ALESSIO BIGINI");
delay(5000);
lcd.clear();
}

void loop()
{

lettura = digitalRead(12);

if (lettura == 1)
{
digitalWrite(3, HIGH);
lcd.print("LED = ON");
lcd.setCursor(0, 1);
lcd.print("RELAY = OFF");
delay(2500);
}
if (lettura == 0)
{
lcd.print("LED = OFF");
digitalWrite(3, LOW);
}
/***************************************/
lettura2 = digitalRead(11);
if (lettura2 == 1)
{
digitalWrite(9, HIGH);
lcd.setCursor(0, 1);
lcd.print("RELAY = ON");
delay(2500);
}
if (lettura2 == 0)
{
lcd.setCursor(0, 1);
lcd.print("RELAY = OFF");
digitalWrite(9, LOW);
}
/***************************************/
lettura3 = digitalRead(10);
if (lettura3 == 1)
{
lcd.clear();
delay(1);
lcd.print(" ALESSIO BIGINI");
lcd.setCursor(0, 1);
lcd.print("alessiobigini.it");
delay(2500);
}
delay(28);
lcd.clear();

}

[/c]

Una volta caricato il codice sulla scheda, a seconda di quale tasto è premuto, il display mostrerà informazioni differenti.

Foto del progetto:

WP_20150609_007  WP_20150609_006 WP_20150609_005 WP_20150609_004