Merci beaucoup pour vos réponses j'ai retravaillé le code ce matin,
je suis partie sur l'idée de ne pas faire appels aux fonctions pour piloter les pin(4,5,6,7),ce qui allonge le code , j'ai faits 2 fonction une pour la premiere entrée a0 de temperature 1 et une seconde pour la température 2.
Le logiciel ne me détecte plus d'erreurs cependant je me demande si je ne devrais pas indiqué les tvoltage en tant que paramètre
voici le résultat:
#define tinput0 A0 /*sonde buse*/
#define tinput1 A1 /*sonde préchauffage*/
float tvoltage1;
float tvoltage2;
float temperature1;
float temperature2;
const int consigne1 = 210; /* consigne PLA*/
const int consigne2 = 200;
const int consigne3 = 190; /*consigne abs*/
const int consigne4 = 180;
const int MOTEURBR = 7;
const int MOTEUREX = 6;
const int RESISTANCE2 = 5 ;
const int RESISTANCE1 = 4 ;
void setup() {
Serial.begin(9600); // Demarrer la liaison serie avec le PC b
pinMode(A0, INPUT);
pinMode(A1,INPUT);
pinMode(MOTEURBR,OUTPUT);
pinMode(MOTEUREX,OUTPUT);
pinMode(RESISTANCE1,OUTPUT);
pinMode(RESISTANCE2,OUTPUT);
digitalWrite(MOTEURBR,LOW);
digitalWrite(MOTEUREX,LOW);
digitalWrite(RESISTANCE1,LOW);
digitalWrite(RESISTANCE2,LOW);
pinMode(0,INPUT); /*pin relié à l'arduino méga */
pinMode(1,INPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(8,INPUT);
}
void LectureTemp1()
{
/* lecture temperature */
tvoltage1=analogRead(tinput0);
temperature1=((5/400)*tvoltage1);
return (temperature1);
}
void LectureTemp2()
{
tvoltage2=analogRead(tinput1);
temperature2=((5/400)*tvoltage2);
return (temperature2);
}
void loop() {
float LectureTemp1();
float LectureTemp2();
if (digitalRead(0)==HIGH){
digitalWrite(MOTEURBR,LOW);
digitalWrite(RESISTANCE1,LOW);
digitalWrite(RESISTANCE2,LOW);
digitalWrite(MOTEUREX,LOW);
}
if (digitalRead(1)==HIGH){
if (temperature1 < consigne1)
digitalWrite(RESISTANCE1,HIGH);
else if (temperature1 > consigne1)
digitalWrite(RESISTANCE1,LOW);
if (temperature2 < consigne2)
digitalWrite(RESISTANCE2,HIGH);
else if(temperature2 > consigne2)
digitalWrite(RESISTANCE2,LOW);
}
if (digitalRead(2)==HIGH)
{
if (temperature1 < consigne1)
digitalWrite(RESISTANCE1,HIGH);
else if (temperature1 > consigne1)
digitalWrite(RESISTANCE1,LOW);
if (temperature2 < consigne2)
digitalWrite(RESISTANCE2,HIGH);
else if(temperature2 > consigne2)
digitalWrite(RESISTANCE2,LOW);
}
if (digitalRead(3)==HIGH)
{
if (temperature1 < consigne3)
digitalWrite(RESISTANCE1,HIGH);
else if (temperature1 > consigne3)
digitalWrite(RESISTANCE1,LOW);
if (temperature2 < consigne4)
digitalWrite(RESISTANCE2,HIGH);
else if(temperature2 > consigne4)
digitalWrite(RESISTANCE2,LOW);
}
if (digitalRead(8)==HIGH){
if (temperature1 < consigne3)
digitalWrite(RESISTANCE1,HIGH);
else if (temperature1 > consigne3)
digitalWrite(RESISTANCE1,LOW);
if (temperature2 < consigne4)
digitalWrite(RESISTANCE2,HIGH);
else if(temperature2 > consigne4)
digitalWrite(RESISTANCE2,LOW);
}
delay(500);
}
@J-M-L j'avais en effet poster sur le forum anglais tenant de vos remarques je me suis permis de reposter mon sujet dans la section approprié