probleme detection sonde
bonsoir voici mon code il et écrit pour 5 sonde le problème et que si il n y pas 5 sonde de connectée il ne fonctionne pas j aimerais palie ce probleme
en quelque sorte si il n y pas 5 sonde c pas grave il tourne quand meme et indique les sonde non connectée
(sans pour autant suprime les sonde je veut qu il s adapte en quelque sorte )
en quelque sorte si il n y pas 5 sonde c pas grave il tourne quand meme et indique les sonde non connectée
(sans pour autant suprime les sonde je veut qu il s adapte en quelque sorte )
code: [select]
#include <onewire.h>
#include <liquidcrystal.h>
// broche utilisée pour le bus 1-wire
onewire ds(13); // création de l'objet onewire ds
liquidcrystal lcd(12, 11, 5, 4, 3, 2);
boolean gettemperature(float *temp){
byte data[9], addr[8]; // data : données lues depuis le scratchpad
// addr : adresse du module 1-wire détecté
if (!ds.search(addr)) { // recherche un module 1-wire
ds.reset_search(); // réinitialise la recherche de module
return false; // retourne une erreur
}
ds.write(0x44, 1); // on lance une prise de mesure de température
delay(100); //tempo rafraichissement // et on attend la fin de la mesure
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 = 0; < 9; i++) // on lit le scratchpad
data[i] = ds.read(); // et on stock les octets reçus
*temp = ((data[1] << 8) | data[0]) * 0.0625; // calcul de la température en degré celsius
return true;
}
void setup() {
lcd.begin(20, 4);
pinmode(7, output); // sortie relais 1
pinmode(8, output); // sortie relais 2
pinmode(9, output); // sortie relais 3
pinmode(10, output); // sortie relais 4
pinmode(6, output); // sortie relais 5
pinmode(13, output); // sortie relais ventillateur
}
void loop() {
float temp1;
float temp2;
float temp3;
float temp4;
float temp5;
if(gettemperature(&temp1)) // lecture des capteurs.
if(gettemperature(&temp2))
if(gettemperature(&temp3))
if(gettemperature(&temp4))
if(gettemperature(&temp5))
{
lcd.setcursor(0, 0); // affichage temp 1
lcd.print("a=");
lcd.print(temp1);
lcd.print((char)223);
lcd.setcursor(12, 0); // affichage temp2
lcd.print("b=");
lcd.print(temp2);
lcd.print((char)223);
lcd.setcursor(0, 1); // affichage temp3
lcd.print("c=");
lcd.print(temp3);
lcd.print((char)223);
lcd.setcursor(12, 1); // affichage temp4
lcd.print("d=");
lcd.print(temp4);
lcd.print((char)223);
lcd.setcursor(0, 2); // affichage temp5
lcd.print("e=");
lcd.print(temp5);
lcd.print((char)223);
lcd.setcursor(0, 3); // affichage temp5
lcd.print("ventillateur=");
//lcd.print();
}
//relais temp1 consigne 29°c
if(temp1 > 30)
{
digitalwrite(7,high); // relais connecté broche 7
lcd.setcursor(0, 0);
lcd.print("a=");
lcd.print(" alarm ");
// delay(100); //enlever slash pour clignotement
//lcd.setcursor(0, 0);
//lcd.print(" ");
}
else
{
digitalwrite(7,low);
}
if(temp2 > 30) //relais temp2 consigne 29°c
{
digitalwrite(8,high); // relais connecté broche 8
lcd.setcursor(12, 0);
lcd.print("b=");
lcd.print(" alarm ");
}
else
{
digitalwrite(8,low);
}
if(temp3 > 30) //relais temp2 consigne 29°c
{
digitalwrite(9,high); // relais connecté broche 8
lcd.setcursor(0, 1);
lcd.print("c=");
lcd.print(" alarm ");
}
else
{
digitalwrite(9,low);
}
if(temp4 > 30) //relais temp2 consigne 29°c
{
digitalwrite(10,high); // relais connecté broche 8
lcd.setcursor(12, 1);
lcd.print("d=");
lcd.print(" alarm ");
}
else
{
digitalwrite(10,low);
}
if(temp5 > 30) //relais temp5 consigne 29°c
{
digitalwrite(6,high); // relais connecté broche 8
lcd.setcursor(12, 1);
lcd.print("e=");
lcd.print(" alarm ");
}
else
{
digitalwrite(6,low);
}
//relais ventilateur consigne 25°c
if(temp1 < 20,temp2 < 20,temp3 < 20,temp4 < 20)
{
digitalwrite(13,high); // relais connecté broche 7
lcd.setcursor(13, 4);
lcd.print(" off ");
}
else
{
lcd.setcursor(13, 4);
lcd.print(" on ");
// delay(100); //enlever slash pour clignotement
//lcd.setcursor(0, 0);
//lcd.print(" ");
//}
digitalwrite(13,low);
}
{
}
return;
}
bonjour,
il ne fonctionne pas, très vague comme piste.
le prog plante, une erreur?
boule cristale cassée depuis 5mn
peut être commenter cette ligne pour voir
il ne fonctionne pas, très vague comme piste.
le prog plante, une erreur?
boule cristale cassée depuis 5mn

peut être commenter cette ligne pour voir
code: [select]
return false; // retourne une erreur
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > probleme detection sonde
arduino
Comments
Post a Comment