[RISOLTO]Problema con LCD I2C 20*4 e caratteri personalizzati
ciao ragazzi, sto costruendo una stazione mete bluetooth e ho un problema nella visualizzazione di un carattere personalizzato. il carattere in questione è "°" da mettere prima di c nella visualizzazione della temperatura.
quello che visualizza è questo : https://ibb.co/ckmck6
perché? potete aiutarmi?
quello che visualizza è questo : https://ibb.co/ckmck6
perché? potete aiutarmi?
code: [select]
#include <adafruit_sensor.h>
#include <dht.h>
#include <dht_u.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
#define dhtpin 8
#define dhttype dht11 // dht 11
//#define dhttype dht22 // dht 22 (am2302)
//#define dhttype dht21 // dht 21 (am2301)
dht_unified dht(dhtpin, dhttype);
uint32_t delayms; //delay del sensore
liquidcrystal_i2c lcd(0x3f,20,4); //definizione del lcd e dell'indirizzo
byte dot[8] = { b00111, b00101, b00111, b00000, b00000, b00000, b00000, b00000};
void setup() {
dht.begin(); //inizializzazione del sensore
lcd.createchar(0, dot); //creazione del carattere
lcd.init(); //inizializzazione dello schermo
lcd.backlight(); //attivazione retroilluminazione
sensors_event_t event;
dht.temperature().getevent(&event);
if (isnan(event.temperature)) {
lcd.setcursor(0,0);
lcd.print("errore temperatura!");
}
else {
lcd.setcursor(0,0);
lcd.print("temperatura: ");
lcd.setcursor(18,0);
lcd.write(byte(0)); //scrittura del carattere personalizzato
lcd.print("c");
}
dht.humidity().getevent(&event);
if (isnan(event.relative_humidity)) {
lcd.setcursor(0,1);
lcd.print("errore umidita'!");
}
else {
lcd.setcursor(0,1);
lcd.print("umidita': ");
lcd.setcursor(15,1);
lcd.print("%");
}
}
void loop() {
delay(delayms);
sensors_event_t event;
dht.temperature().getevent(&event);
if (isnan(event.temperature)) {
lcd.setcursor(13,0);
lcd.print("err");
}
else {
lcd.setcursor(13,0);
lcd.print(event.temperature);
}
dht.humidity().getevent(&event);
if (isnan(event.relative_humidity)) {
lcd.setcursor(10,1);
lcd.print("err");
}
else {
lcd.setcursor(10,1);
lcd.print(event.relative_humidity);
}
}
ciao, io in passato anziché sprecare un carattere personalizzato per visualizzare un carattere ascii standard ho preferito la seguente soluzione:
prova vedere se può andare bene anche al tuo lcd e se il carattere visualizzato è di tuo gradimento
code: [select]
lcd.write(223); //223 = °
lcd.print("c");
prova vedere se può andare bene anche al tuo lcd e se il carattere visualizzato è di tuo gradimento
Arduino Forum > International > Italiano > Software (Moderator: leo72) > [RISOLTO]Problema con LCD I2C 20*4 e caratteri personalizzati
arduino
Comments
Post a Comment