Bonjour à Tous
J'ai réalisé un montage pour gérer le chauffage d'une serre, mais j'ai des soucis avec les boucles. je voudrais que le chauffage se mette en route lorsque la température est <= à 10 °
et s'arrête lorsque la température =< à 12 ° , je joins la photo du montage ainsi que le code.
Merci d'avance
Controle_temperature_Serre.ino (1,2 Ko)
Hello,
mets plutôt ton code dans le message directement (avec le bouton <code>) et il faudrait décrire ce que tu as comme problème...
(et puis édite le titre, même si je comprend que parfois les boucles ça foute les boules)
le code fait
if (t <= 25) {
digitalWrite(VERTE, HIGH);
}
if (t >= 27) {
digitalWrite(VERTE, LOW);
}
donc vous ne traitez pas 10° et 12°
PS: la gestion de l'affichage n'est pas top, vous mettez à jour l'écran en permanence. Vous avez viré le clear parce que vous avez dû vous rendre compte que ça clignote mais ce faisant vous écrivez des valeurs sur les anciens texte et si le nouveau texte est plus court, vous aurez une rémanence de ce qui était là avant...
PS2: lisez les recommandations listées dans "Les bonnes pratiques du Forum Francophone” pour poster correctement du code et donner les informations pertinentes.
Bonjour,
Je suppose que tu veux dire >=12
Pourquoi est ce que tu compares à 25 et 27 et non à 10 et 12 ?
Bonjour
Les températures 25 et 27 sont les températures d'essais à la maison ensuite je les remettrais à 10 et 12 °
il faudrait que le chauffage se mette en route à 10 ° et s'arrête à 12 ° pour éviter le gel l'hivers.
envoyé : 23 août 2024 à 10:22
et donc le code fonctionne avec 25 et 27 ?
oui mais le chauffage se met en route à 25 ° mais ne s'éteint pas à 27 °
je te joins mon code
#include <Arduino.h>
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#defineDHTPIN 4 // what pin the DHT22 Data is connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define VERTE 10//
#define ROUGE 12
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
LiquidCrystal_I2C lcd(0x27, 20, 4);
float t ; // Gets the values of the temperature
float h ; // Gets the values of the humidity
void setup(){
lcd.init(); // initialisation de l’afficheurlcd.
backlight(); // active le rétro-éclairagedht.begin();
lcd.begin(20,4);
} void loop(){
h = dht.readHumidity();
t = dht.readTemperature();
//lcd.clear(); // effacer le contenu de l’Afficheur LCD
lcd.setCursor(0, 1); // se positionner à la première ligne
lcd.print("Temperature = ");
lcd.print(t); // Afficher la température sur l'afficheur
lcd.print(“c”);lcd.setCursor(0,2); // se positionner à la deuxième ligne
lcd.print("Humiditee = ");
lcd.print(h); // Afficher la température sur l'afficheur
lcd.print("%");
if (t <= 25) {digitalWrite(VERTE, HIGH);}
if (t >= 27) {digitalWrite(VERTE, LOW);}
delay(2000);}
Texte préformaté
`
Mets ton code entre balises de code.
Tu es sur que c'est bien ce code qui est exécuté?
on vous a demandé de lire les bonnes pratiques.... Merci de le faire et de poster en conséquence
Ok J'ai tout lu, merci et toutes mes excuses
Je reviens , c'est bien ce code qui est exécuté.
mon problème est dans la condition if, il faudrait que t < à 25 allume la led verte et lorsque t > à 27 l'éteigne.
le mieux serait de cliquer sur le petit crayon sous votre post 8 et de rajouter les balises de code ![]()
je vous garantis que votre code fait ce que vous dites (au = près)
si ça ne le fait pas, le souci est ailleurs. câblage, alimentation, choix des pins, montage des LEDs (l'anode c'est le +, il faut une résistance de limitation de courant), ...
Lorsque t <= 25 la led s'allume, mais si t est à 25,1 elle s'éteint, je voulais qu'elle reste allumée jusqu'à temps que t >= 27, tout mon soucis est là et je pense qu'il y a une solution, mais je débute en programmation et je n'est pas trouvé la solution
pas avec le code que vous avez posté (je suppose que dans le vrai code vous mettez les pins des LEDs en OUTPUT) Il y a autre chose qui l'éteint.
merci de corriger le post 8, ça pique les yeux à chaque fois que je viens sur cette discussion.
Erreur
Aïe Aïe Aïe un post de plus qui pique !
Merci d'éditer votre post 8 en utilisant le
dans la barre d'outil juste sous votre post et rajoutez les balises de de code (c'est difficilement lisible tel quel) :
- sélectionner la partie du texte qui correspond au code
- appuyez sur l'icône
<code/>dans la barre d'outils pour indiquer que c'est du code
(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)
il serait bon de (re)lire les recommandations listées dans "Les bonnes pratiques du Forum Francophone”
détruisez si vous le pouvez le dernier post...
ton code fonctionne tu as un probleme de connexion de la led ,j ai test ton code sur wokwi https://wokwi.com/projects/407135559405163521
Bonjour, oui mon code fonctionne mais pas comme je le souhaiterais.
Je voudrais que la led verte s'allume si t <= 25 et qu'elle s'éteigne si t = 27
avec ce code si la température lue est de 25,10 la led s'éteint, il faudrait qu'elle reste allumée tant que la température n'a pas atteint 27
J'espère que suis claire dans mon explication .
Le test est correct ce n’est pas le problème. Il est ailleurs
Avez vous posté le vrai code ? Je ne vois pas la broche de la LED mise en output par exemple et elle est en input par défaut (et sur uno mettre une telle broche a HIGH active le PULLUP)
