buonasera a tutti, avrei bisogno del vostro aiuto.
ho realizzato un progetto con arduino 1, ho inserito due lm35 e due sensori di umidità dht11. il programma funziona come un termostato, lo allego nei tag. quando vado a visualizzare le temperature sullo schermo mi da dei valori "impossibili" considerando che mi trovo nella mia stanza e la temperatura si trova intorno ai 20°C. allego foto dello schermo con le temperature rilevate. non so se è possibile inserire qualche resistenza o non so cosa al fine di avere un valore accettabile di temperatura.L'umidità va bene.
grazie a tutti per l'aiuto
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <dht11.h>
dht11 DHT1;
dht11 DHT2;
#define DHT1_PIN 10
#define DHT2_PIN 8
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
float temp1;
int temp1Pin = 0;
float temp2;
int temp2Pin = 1;
const int ledPin = 6;
const int ledPin1 = 5;
void setup(){
lcd.begin(20,4);
lcd.backlight();
lcd.clear();
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
}
void loop(){
int ctrl;
ctrl = DHT1.read(DHT1_PIN);
ctrl = DHT2.read(DHT2_PIN);
lcd.setCursor(0,2);
lcd.print("Umid.SONDAin ");
lcd.print(DHT1.humidity,1);
lcd.print("%");
lcd.setCursor(0,3);
lcd.print("Umid.SONDAes ");
lcd.print(DHT2.humidity,1);
lcd.print("%");
temp1 = analogRead(temp1Pin);
temp1 = (5.0 * temp1 * 100.0)/1024;
lcd.setCursor(0,0);
lcd.print("Temp.SONDAin ");
lcd.print(temp1);
lcd.setCursor(19,0);
lcd.print("C");
temp2 = analogRead(temp2Pin);
temp2 = (5.0 * temp2 * 100.0)/1024;
lcd.setCursor(0,1);
lcd.print("Temp.SONDAes ");
lcd.print(temp2);
lcd.setCursor(19,1);
lcd.print("C");
if (temp1 > 27)
digitalWrite(ledPin,HIGH);
if (temp1 < 25)
digitalWrite(ledPin,LOW);
if (temp1 > 27)
digitalWrite(ledPin1,HIGH);
if (temp1 < 25)
digitalWrite(ledPin1,LOW);
delay(1000);
}