Bonjour à tous, je suis nouveau dans ce forum, je demande votre aide pour finir un code Arduino, et d'avance MERCI pour votre aide.
Je voudrais actionner un relais pour fermeture de porte lorsque la T° et de 26° - ou - 5°.J'ai fait des essai lorsque T° >26 c'est bon la porte s'ouvre mais dés que j'ai une T° à 25,9 elle se referme bref çà fait yoyo. J'aurais voulu avoir une marge, c'est à dire de 5° par exemple. Voici le code, c'est la fin ou je berdouille.
Je signale que je n'y connais rien en codage mais en collant des bout de code et en essayant de comprendre,je suis arrivé à faire celui-ci.
Encore MERCI à tous
Code:[HTML// include LCD library code #include <Wire.h> #include <LiquidCrystal_I2C.h> // include DHT library code #include "DHT.h" #define DHTPIN A1 const int relayPin = 3; // DHT22 data pin is connected to Arduino pin 8 LiquidCrystal_I2C lcd(0x27, 20, 4); #define DHTTYPE DHT22 // DHT22 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library char temperature[] = "Temp = 00.0 C"; char humidity[] = "RH = 00.0 %"; void setup() { lcd.init(); lcd.backlight(); // set up the LCD's number of columns and rows lcd.begin(20, 4); dht.begin(); } void loop() { delay(1000); // wait 1s between readings // Read humidity int RH = dht.readHumidity() * 10; //Read temperature in degree Celsius int Temp = dht.readTemperature() * 10; // Check if any reads failed and exit early (to try again) if (isnan(RH) || isnan(Temp)) { lcd.clear(); lcd.setCursor(5, 0); lcd.print("Error"); return; } if (Temp < 0) { temperature[6] = '-'; Temp = abs(Temp); } else temperature[6] = ' '; temperature[7] = (Temp / 100) % 10 + 48; temperature[8] = (Temp / 10) % 10 + 48; temperature[10] = Temp % 10 + 48; temperature[11] = 223; // Degree symbol ( °) if (RH >= 1000) humidity[6] = '1'; else humidity[6] = ' '; humidity[7] = (RH / 100) % 10 + 48; humidity[8] = (RH / 10) % 10 + 48; humidity[10] = RH % 10 + 48; lcd.setCursor(0, 0); lcd.print(temperature); lcd.setCursor(0, 1); lcd.print(humidity); lcd.setCursor(0, 2); lcd.print("Ouvert si Tp > 25"); lcd.setCursor(0, 3); lcd.print("Serre ouverte"); { pinMode(3 , OUTPUT); } float h = dht.readHumidity(); float t = dht.readTemperature(); if (t > 26 ) { digitalWrite(3 , HIGH); } if (t < 24 ) { digitalWrite(3 , HIGH); } }][/HTML]
-----