Bonjour a tous je viens vers vous suite à un problème de ds18b20 . Le montage est fait sur une mega2560 avec tft 3.2 avec deux ds18b20 en série avec résistance 4.7k. sur mon afficheur, la température arrêt pas de sauté comme si on lui coupe le courant .je vous mais des photos pour vous voyez. pouvez vous m'aider à réglé ce problème ?
J'utile la lib onewire voici les lien de la lib .
// OneWire DS18S20, DS18B20, DS1822 Temperature Example
http://www.pjrc.com/teensy/td_libs_OneWire.html
// The DallasTemperature library can do all this work for you!
http://milesburton.com/Dallas_Temperature_Control_Library
Voici un bout de code de comment j'ai déclaré.
//ds18B20 MESURE
float temperature[2];
float startTemperatureMeasure(const byte *addr)
{
ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20
ds.write(0x44, 1); // On lance une prise de mesure de température
}
float readTemperatureMeasure(const byte *addr) {
byte data[9];
ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20
ds.write(0xBE); // On envoie une demande de lecture du scratchpad
for (byte i = 0; i < 9; i++) // On lit le scratchpad
data[i] = ds.read(); // Et on stock les octets reçus
// Calcul de la température en degré Celsius
return (int16_t)((data[1] << 8 ) | data[0]) * 0.0625;
}
//////////////////////////////////////////
```voici la parti pour l'affichage
//AFFICHAGE DES TEMPERATURE DS18B20
startTemperatureMeasure(SENSOR_ADDRESS_1);
startTemperatureMeasure(SENSOR_ADDRESS_2);
temperature[0] = readTemperatureMeasure(SENSOR_ADDRESS_1);
temperature[1] = readTemperatureMeasure(SENSOR_ADDRESS_2);
//AFFICHAGE DE LA TEMPERATURE
myGLCD.setFont(BigFont);
myGLCD.setColor(0,0,0);
myGLCD.setBackColor(255,255,255);
myGLCD.printNumF(temperature[1],1,250,100);
myGLCD.printNumF(temperature[0],1,10,100);