Bonjour,
Je me suis lancé dans un projet, il y a peu, d'automatiser le lavage d'une salle de traite.
Pour cela, il faut démarrer une pompe en triphasé qui fait le vide dans les tuyeaux, ouvrir l'eau froide, puis la fermer, mettre l'eau chaude, fermer ensuite, faire un circuit avec l'évacuation pour laisser tourner l'eau avec l'eau chaude et la lessive, remettre de l'eau froide et tout évacuer à l'égout, et a la fin pour purger les tuyaux aprés avoir éteint la pompe, ouvrir une vanne de compresseur .
pour cela, j'ai tout mis en place: deux électrovannes pour eau , une Normalement ouverte pour l'évacuation et une autre Normalement fermé pour faire le circuit de lessive à mi-lavage. Ainsi qu'une électrovanne de compresseur pour la fin du lavage, le tout en 12vcc.
pour tout contrôler j'ai pris des relais d'un coté pour contrôler le 12vcc et de l'autre (oui ça fait un peuu usine à gaz mais ça fonctionne) un relais pour contrôler un contacteur magnétique pour triphasé.
Tout à l'air ok, j'ai mis des diodes à la fin de chaques sorties d'électrovanne pour plus de sécurités.
le probleme est que dés que je branche la carte arduino uno, les contacteurs se mettent tous en route en même temps et ne suivent plus du tout ce que j'avais prévus sur le code, ma question est donc y a il une erreur sur mon code ?
const int boutonDem = 8;
int etatBouton = 0;
const byte led []= {12 , 11 , 10 , 9 }; //mise en tablau des leds 1 -- 2 -- 3 -- 4 -- 5 la premiere valeur prend le nom de 0 puis 1 ect
const int relais = 13;//machine a traire
const int EV1 = 1;//eau chaude + lessive
const int EV2 = 2;//eau froide
const int EVevier = 3;//evacuation dans évier
const int EVcaniveau = 4;//évacuation dans le caniveau
const int EVair = 0;//air compresseur
void setup() {
// on définit les sorties et entrées de lignes
for (int i = 0; i < 5; i++){
pinMode(led[i],OUTPUT);}
pinMode(boutonDem,INPUT);
pinMode(relais,OUTPUT);
pinMode(EV1,OUTPUT);
pinMode(EV2,OUTPUT);
pinMode(EVevier,OUTPUT);
pinMode(EVcaniveau, OUTPUT);
pinMode(EVair,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
etatBouton = digitalRead(boutonDem);
delay(1000);
if(etatBouton == HIGH){{
delay (1000);
digitalWrite(led[0],HIGH);//rinçage 1
digitalWrite(EV2,HIGH);//ouverture eau froide
delay(20000);
digitalWrite(relais,HIGH);//allumage machine àtraire
delay(150000);
digitalWrite(EV2,LOW);//fermeture eau froide
delay(150000);
digitalWrite(EVair,HIGH);//vidange du tuyeau
delay(30000);
digitalWrite(EVair,LOW); //fin vidange tuyeau
digitalWrite(led[0],LOW);//fin du rinçage
digitalWrite(led[1],HIGH);//début du segond cycle lavage
digitalWrite(EVcaniveau,HIGH);//fermeture vanne caniveau
digitalWrite(EVevier,HIGH);//ouverture de l'evacuation àl'evier
digitalWrite(EV1,HIGH);//ouverture de l'eau chaude + lessive
delay(130000);
digitalWrite(EV1,LOW);//fermeture de l'eau chaude + lessive
delay(400000);
digitalWrite(EVair,HIGH);//vidange du tuyeau
delay(30000);
digitalWrite(EVair,LOW);//fin vidange tuyeau
digitalWrite(led[1],LOW);//fin du lessivage
digitalWrite(led[2],HIGH);//début du rinçage 2
digitalWrite(EV2,HIGH); //ouverture de la vanne d'eau froide
digitalWrite(EVcaniveau,LOW);//ouverture de l'evacuation d'eau vers caniveau
digitalWrite(EVevier,LOW);//fermeture de l'évacuation d'eau dans l'évier
delay(100000);
digitalWrite(EV2,LOW);//fermeture de la vanne d'eau froide
delay(30000);
digitalWrite(relais,LOW);//extinction de la machine àtraire
digitalWrite(EVair,HIGH);//vidange tuyeau
delay(30000);
digitalWrite(EVair,LOW);//fin vidange tuyeau
digitalWrite(led[2],LOW);
}}
else{
digitalWrite(led[3],HIGH);
delay(1000);
digitalWrite(led[3],LOW);
}
}
merci d'avance pour votre réponse
cordialement


