Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //www.elegoo.com
- //2016.12.9
- /*
- LiquidCrystal Library - Hello World
- Demonstrates the use a 16x2 LCD display. The LiquidCrystal
- library works with all LCD displays that are compatible with the
- Hitachi HD44780 driver. There are many of them out there, and you
- can usually tell them by the 16-pin interface.
- This sketch prints "Hello World!" to the LCD
- and shows the time.
- The circuit:
- * LCD RS pin to digital pin 7
- * LCD Enable pin to digital pin 8
- * LCD D4 pin to digital pin 9
- * LCD D5 pin to digital pin 10
- * LCD D6 pin to digital pin 11
- * LCD D7 pin to digital pin 12
- * LCD R/W pin to ground
- * LCD VSS pin to ground
- * LCD VCC pin to 5V
- * 10K resistor:
- * ends to +5V and ground
- * wiper to LCD VO pin (pin 3)
- Library originally added 18 Apr 2008
- by David A. Mellis
- library modified 5 Jul 2009
- by Limor Fried (http://www.ladyada.net)
- example added 9 Jul 2009
- by Tom Igoe
- modified 22 Nov 2010
- by Tom Igoe
- This example code is in the public domain.
- http://www.arduino.cc/en/Tutorial/LiquidCrystal
- */
- // include the library code:
- #include <LiquidCrystal.h>
- #include <DHT.h>
- //definisco il DHT11
- #define DHTPIN 2
- #define DHTTYPE DHT11
- DHT dht(DHTPIN, DHTTYPE);
- // initialize the library with the numbers of the interface pins
- LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
- //definisco i pin del led RGB
- #define BLUE 3
- #define GREEN 5
- #define RED 6
- // definisco il pin del buzzer
- int buzzer = 4;
- //definisco le variabili di temperature e umidità
- int t = dht.readTemperature();
- int h = dht.readHumidity();
- //definisco le variabili che uso per memorizzare i valori precedenti
- int to = t;
- int ho = h;
- void setup() {
- // preimposto il contenuto del LCD
- lcd.begin(16, 2);
- lcd.print("Temperatura");
- lcd.setCursor(0,1);
- lcd.print("Umidita'");
- //imposto il buzzer su output
- pinMode(buzzer,OUTPUT);
- //imposto il led rbg su output
- pinMode(RED,OUTPUT);
- pinMode(GREEN,OUTPUT);
- pinMode(BLUE,OUTPUT);
- //imposto il led rgb su spento
- digitalWrite(RED,LOW);
- digitalWrite(GREEN,LOW);
- digitalWrite(BLUE,LOW);
- }
- void loop() {
- //leggo temperatura e umidità
- t = dht.readTemperature();
- h = dht.readHumidity();
- // scrivo temperatura e umidità sul display
- lcd.setCursor(13, 0);
- lcd.print(t);
- lcd.setCursor(15, 0);
- lcd.print("C");
- lcd.setCursor(13, 1);
- lcd.print(h);
- lcd.setCursor(15, 1);
- lcd.print("%");
- if (to != t) { //se cambia la temperatura buz di 1000
- tone(buzzer,1000,200);
- if (to <= t){ //se la temperatura è aumentata o è rimasta invariata accendo il led rgb verde
- digitalWrite(RED,LOW);
- digitalWrite(GREEN,HIGH);
- digitalWrite(BLUE,LOW);
- }else{ //se la temperatura è scesa accendo il led rgb rosso
- digitalWrite(RED,HIGH);
- digitalWrite(GREEN,LOW);
- digitalWrite(BLUE,LOW);
- }
- }else{
- if (ho > h+4 || ho < h-4){ //se non è variata la temperatura ma è variata l'umidità di almeno 5 punti percentuali suono 2000 e accendo il led blu
- tone(buzzer,2000,200);
- digitalWrite(RED,HIGH);
- digitalWrite(GREEN,HIGH);
- digitalWrite(BLUE,LOW);
- }
- }
- //salvo i valori precedenti
- to = t;
- ho = h;
- //attendo 5 secondi
- delay(5000);
- }
Add Comment
Please, Sign In to add comment