Salve a tutti, il mio progetto era di usare un relè per controllare l'attivazione di un tappetino riscaldante in base alla temperatura registrata da un sensore DHT11, con l'aggiunta di un LED che lampeggia in caso di problemi.
Quando però alimento Arduino il LED lampeggia per qualche secondo e il relè viene attivato, poi si spengono entrambi e rimangono in questo stato anche se la bassa temperatura dovrebbe far attivare il relè.
Questo è il codice che ho scritto tagliando e incollando codici trovati su tutorial visto che da solo non avrei saputo fare nulla:
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
void setup(){
pinMode(8, OUTPUT);
pinMode(2, OUTPUT);
}
void loop(){
int chk;
Serial.print("DHT11, \t");
chk = DHT.read(DHT11_PIN); // READ DATA
switch (chk){
case DHTLIB_OK:
if (DHT.temperature<30)
{
pinMode(2, LOW);
}
else if (DHT.temperature>=31)
{
pinMode(2, HIGH);
}
break;
case DHTLIB_ERROR_CHECKSUM:
digitalWrite(8, HIGH);
delay(500);
digitalWrite(8, LOW);
delay(500);
case DHTLIB_ERROR_TIMEOUT:
digitalWrite(8, HIGH);
delay(500);
digitalWrite(8, LOW);
delay(500);
default:
digitalWrite(8, HIGH);
delay(500);
digitalWrite(8, LOW);
delay(500);
break;
}
delay(1000);
}
Al pin 4 ho collegato il cavo dati del DHT11, al pin 8 il LED e al pin 2 quello per l'accensione del relè.