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 : sdr hosted at ImgBB — ImgBB
Perché? Potete aiutarmi?
#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);
}
}