CONTENUTO ►
Come si visualizza un carattere speciale sull’LCD di Arduino 1602? La libreria LiquidCrystal consente di visualizzare facilmente l’alfabeto latino, i numeri e i simboli. Vediamo come creare un simbolo personalizzato per creare, ad esempio, l’icona di un grado per una stazione meteorologica Arduino e, come bonus, un programma per visualizzare un ticker sul display. Va notato subito che la capacità di memoria del display LCD 1602 i2c è limitata a otto caratteri.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- display LCD 1602 i2c
- cavi di collegamento
- libreria LiquidCrystal_I2C.h
Caratteri personalizzati su display LCD 1602 i2c Arduino
LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VCC | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
L’LCD 1602 supporta 8 nuovi caratteri speciali (numerati da 0 a 7) di 5 per 8 pixel. Un carattere personalizzato per l’LCD può essere specificato da un array di otto byte che caratterizzano la stringa corrispondente al carattere. La memoria CGRAM del modulo di visualizzazione può memorizzare caratteri personalizzati, ma la capacità di memoria è limitata e può ospitare solo 8 caratteri speciali. Si consideri, ad esempio, come visualizzare il carattere °.
Programma Arduino per caratteri personalizzati su LCD 1602
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,16,2); // dichiarazione di un array di 8 byte // 1 per il pixel visualizzato - 0 per il pixel spento byte simvol[8] = { 0b01100, 0b10010, 0b10010, 0b01100, 0b00000, 0b00000, 0b00000, 0b00000 }; void setup() { LCD.init(); LCD.backlight(); LCD.createChar(1, simvol); LCD.setCursor(0,0); LCD.print(char(1)); } void loop() { }
Spiegazione del codice per caratteri personalizzati su LCD 1602 i2c:
- utilizzando l’array di byte simvol[8] = { }; abbiamo criptato il segno di grado;
- lcd.createChar(num, data); crea un carattere personalizzato per lo schermo LCD, dove num è il numero del carattere e data è l’array di data tra parentesi.
Come scorrere il testo su display LCD 1602 Arduino
Ricordate che lo schermo ha 16 caratteri per riga (da 0 a 15) e il controllore dello schermo ha una memoria per 40 caratteri per riga. Se si utilizza un display LCD con un modulo I2C, sono necessari solo 4 fili per assemblare il circuito. Dopo aver collegato l’LCD 1602 al microcontrollore Arduino Uno, caricare il codice seguente. Il programma è descritto di seguito, se avete ancora domande potete lasciarle nei commenti del post.
Programma Arduino per scorrimento di testo su LCD 1602
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,16,2); byte human[8] = { 0b01110, 0b10001, 0b01110, 0b00100, 0b11111, 0b00100, 0b01010, 0b10001 }; void setup() { LCD.init(); LCD.backlight(); LCD.createChar(1, human); } void loop() { for (int i = 0; i < 10; i++) { LCD.setCursor(i, 0); LCD.print(char(1)); delay(200); LCD.clear(); } for (int i = 10; i > 0; i--) { LCD.setCursor(i, 0); LCD.print(char(1)); delay(200); LCD.clear(); } }
Spiegazione del codice per scorrimento di testo su LCD 1602 i2c:
- ogni volta che la variabile i viene modificata nel ciclo for, dopo 200 ms la voce viene cancellata e visualizzata in una nuova posizione – testo scorrevole sull’lcd di arduino;
- è possibile utilizzare anche le funzioni scrollDisplayRight e scrollDisplayLeft.
Conclusione. Abbiamo visto un modo semplice per creare i propri caratteri speciali sul display LCD 1602 i2c, che funzionerà per le lettere non incluse nella libreria standard LiquidCrystal_I2C.h. E anche un modo per creare testo scorrevole usando un ciclo for, che può essere usato per creare semplici giochi su Arduino o altri mini progetti.
Lascia un commento