Bonjour,
j’ai actuellement un NANO avec un DHT22 sur A1 et DS18B20 sur A6, jusque là rien de bien exceptionnel. je cherche simplement à afficher les valeurs dans le serial monitor, rien de bien transcendant pour l’instant.
Souci, lorsque je lance le programme ci dessous, rien ne se passe. j’ai entre temps mis un affichage d’une LED qui est sensé s’allumer pendant le temps de calcul + 200ms avant de s’éteindre. et rien ne fonctionne. pour avoir un résultat, il faut que je commente les lignes du DS18B20 et là j’obtiens les données du dht22 mais j’arrive pas à avoir les deux.
#include <DHT.h>
#include <DHT_U.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define DHTPIN A1
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
OneWire OneWire(A6);
DallasTemperature ds(&OneWire);
void setup() {
Serial.begin(9600);
dht.begin();
ds.begin();
pinMode (LED_BUILTIN, OUTPUT);
}
void loop() {
delay (3000);
digitalWrite(LED_BUILTIN,HIGH);
//recup des datas du DHT22
float h=dht.readHumidity();
float t=dht.readTemperature();
//recup des datas du DS18B20
ds.requestTemperatures();
float Heater_Temp = ds.getTempCByIndex(0);
//contrôle des valeurs du DHT22
if (isnan(h) || isnan(t)){
Serial.println("Probléme de lecture");
return;
}
//affichage des valeurs du DHT22
Serial.println("Temperature de la pièce");
Serial.print("Humidité: ");
Serial.print(h);
Serial.println("%\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" °C");
//affichage des valeurs du DS18B20
Serial.println("Température de l'élément chauffant");
Serial.print(Heater_Temp);
Serial.println(" °C");
delay (200);
digitalWrite(LED_BUILTIN,LOW);
}
J’ai bien essayé de ne mettre que le DS18B20 (qui a 5k de PULLUP entre VCC et DATA), pas mieux, rien aucune donnée.
est ce que cela veut dire un capteur défectueux ? (déjà mon DHT22 a une des puces qui chauffe anormalement (sous 3.3V) et donc mesure 47°C au lieu des 19 de la pièce) je serai pas étonné d’avoir un autre défaut.
merci d’avance pour votre retour