Paso 6: Añadir LCD
Benodigdheden:
-Scherm LCD 16 x 2
-soldeerbout
-pernos
-medidor k 10
Lcd de Sluit aan zoals op de foto es aangegeven.
QUE OP!!! ZORG DAT DE LCD GOED ES GESOLDEERD!!!
Código de: LiquidCrystal lcd(12,11,7,6,5,4); zijn de datapins de volgorde van links naar rechts. Zorg dat deze ook goed ingesteld zijn.
Código:
Lluvia
const int sensorMin = 0; sensor mínimo const int sensorMax = 1024; sensor máximo
Temp #include "DHT.h" #define DHTPIN 2 / / Qué pin digital estamos conectados a #define DHTTYPE DHT11 / / 11 de DHT
Luz int ledPin = 13; Apagado de int = 1; int lightSensivity = 0; int lightBarier = 600;
LCD #include LiquidCrystal lcd(12,11,7,6,5,4);
DHT dht (DHTPIN, DHTTYPE); void setup() {/ / Pon tu código de instalación, para ejecutar una vez: dht.begin (); //start dht biblioteca pinMode (ledPin, salida); ledpin //setup salida lcd.begin (16.2); //setup pantalla lcd pantalla 16 x 2 formato lcd.setCursor(0,1); lcd.print("Welkom...");}
void loop() {/ / Pon tu código principal, para ejecutar varias veces: Serial.begin(9600); Rain(); Delay(3000); Light(); Delay(3000); Temp(); Delay(3000); }
void Rain() {/ leer el sensor analógico A0: int sensorReading = analogRead(A0); / / mapa de la gama del sensor (cuatro opciones): / / ex: gama de int 'mapa de largo int (int largo, int largo, int largo, int largo, int largo)' = mapa (sensorReading, sensorMin, sensorMax, 0, 3); / / valor de rango: String status = ""; interruptor (rango) {caso 0: / / Sensor de obtener el estado húmedo = "Inundación"; Serial.println("flood"); rotura; caso 1: / / humedad del Sensor Serial.println ("ADVERTENCIA de la lluvia"); Estado "ADVERTENCIA de lluvia"; rotura; caso 2: / / Sensor dry - a callar esto eliminar la "Serial.println ("no llueve");" a continuación. Serial.println ("no llueve"); Estado = "No llueve"; rotura; } lcd.clear(); lcd.setCursor(0,0); LCD.Print(Status); }
void Temp() {}
Lectura de temperatura o la humedad toma alrededor de 250 milisegundos. Lecturas del sensor también pueden ser de hasta 2 segundos 'old' (es un sensor muy lento) flotador h = dht.readHumidity(); Leer temperatura Celsius (predeterminado) flotador t = dht.readTemperature(); Leer temperatura Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true);
Compruebe si cualquier Lee falló y salir temprano (para intentarlo de nuevo). Si (isnan(h) || isnan(t) || isnan(f)) {Serial.println ("error al leer del sensor DHT!"); vuelta;}
Calcular el índice de calor en grados Fahrenheit (predeterminado) flotador hif = dht.computeHeatIndex (f, h); Calcular el índice de calor en grados Celsius (isFahreheit = false) flotador hic = dht.computeHeatIndex (t, h, false);
Serial.Print ("humedad:"); Serial.Print(h); Serial.Print ("% \t"); Serial.Print ("temperatura:"); Serial.Print(t); Serial.println ("* C");
imprimir en LCD lcd.clear(); lcd.setCursor(0,0); LCD.Print ("humedad:"); lcd.setCursor(10,0); LCD.Print(h); lcd.setCursor(0,1); LCD.Print ("temperatura:"); lcd.setCursor(6,1); LCD.Print(t); }
void Light() {/ / Pon tu código principal, para ejecutar varias veces: lightSensivity = analogRead(lightPin); Serial.println(lightSensivity); if(lightSensivity < lightBarier) {digitalWrite (ledPin, HIGH);} Else {digitalWrite (ledPin, LOW);} //print a LCD lcd.clear(); lcd.setCursor(0,0); LCD.Print ("la luz:"); lcd.setCursor(8,0); LCD.Print(lightSensivity); }