Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LCD (no I2C) con DHT22
- //Tolentino Codesta - Cerani luglio 2018
- #include <LiquidCrystal.h>
- #include <DHT.h>
- #include <Adafruit_Sensor.h>
- #define DHTTYPE DHT11
- #define DHTPIN 9
- DHT dht(DHTPIN, DHTTYPE);
- float celsius;
- float humidity;
- const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
- LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
- void setup() {
- dht.begin();
- lcd.begin(16, 2);
- void loop() {
- humidity = dht.readHumidity();
- celsius = dht.readTemperature();
- // Il display è da 16 caratteri, quindi usiamo un array da 16 caratteri
- char lcd_buffer[16];
- // Siccome arduino non gradisce i float dobbiamo usare un espediente
- // Per stampare sul display la prima cifra decimale, moltiplichiamo *10 e calcoliamo il modulo 10 (operazione %10)
- // la scrittura (int) prima della variabile, forza il micro a trattarla come integer al posto di float
- // L'ultima variabile da inserire nel buffer, ovvero %c (variabile di tipo char) sono i caratteri speciali "°" e "%"
- lcd.setCursor(0,0); //riposiziono il cursore
- sprintf(lcd_buffer, "Temp.: %03d.%01d %cC", (int)celsius, (int)(celsius * 10.0)%10, (char)223);
- lcd.print(lcd_buffer);
- lcd.setCursor(0,1); //riposiziono il cursore
- sprintf(lcd_buffer, "Umidita' %03d.%01d%c", (int)humidity, (int)(humidity * 10.0)%10, (char)37);
- lcd.print(lcd_buffer);
- delay (3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement