05-05-2015, 19:34:07
bonjour , mon projet une generatrice 7000 watts avec demarage auto .
je voudrai que ma generatrice demarre toutes seul, quande mon capteur de niveau d eau est en position haute ( installer dans un puisard).
pour cela j ai connecté a mon arduino nano :
-un relai pour le contact
-un relai pour le demareur
-un servo moteur pour actionner le starter
-une led come temoin
-le capteur cablé comme si c est un bouton poussoir(http://www.mon-club-elec.fr/pmwiki_refer...mpleButton)
j ai fais un programme
sauf qu a la fin de la boucle meme quand le capteur descend la boucle bloc sur le demareur reste eteint?
je voudrai que ma generatrice demarre toutes seul, quande mon capteur de niveau d eau est en position haute ( installer dans un puisard).
pour cela j ai connecté a mon arduino nano :
-un relai pour le contact
-un relai pour le demareur
-un servo moteur pour actionner le starter
-une led come temoin
-le capteur cablé comme si c est un bouton poussoir(http://www.mon-club-elec.fr/pmwiki_refer...mpleButton)
j ai fais un programme
Code :
[== Indéfini ==]
#include <RCSwitch.h>
#include <Servo.h>
RCSwitch mySwitch = RCSwitch ();
Servo monServo; // mon servo moteur est appeler monServo controle le starter groupe electrogene
int BP = 7; // capteur niveau d eau
int CONTACT = 10; // relais contact groupe electrogene
int DEMAREUR = 11; // relais demareur groupe electrogene
int ledPin = 12; // led control demarage
// Les variables sont modifiées au cours du programme
int buttonState = 0; // variable pour mémoriser l'état du bouton
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
monServo.attach(4); //mon servo sur le pin 4
monServo.write(180);
mySwitch.enableTransmit(9); //emetteur connecté au pin 9
pinMode(ledPin, OUTPUT); // led en mode sortie connecté au pin 11
pinMode(CONTACT, OUTPUT); //relai en mode sortie connecté au pin 10
pinMode(DEMAREUR, OUTPUT); //relai en mode sortie connecté au pin 12
pinMode(BP, INPUT); // capteur nivea eau en mode entrée connecté au pin 5
Serial.begin(9600);
digitalWrite(CONTACT, HIGH);
digitalWrite(DEMAREUR, HIGH);
digitalWrite(ledPin, LOW);
}
void loop(){
// lit la valeur de l'état du bouton et la mémorise dans la variable
Serial.println("start!");
delay(4000);
buttonState = digitalRead(BP);
Serial.println(buttonState);
// Teste si le bouton est appuyé
// c'est à dire si la variable buttonState est à 1
// NB : ne pas confondre = et == !
if (buttonState == HIGH) {
Serial.println(buttonState);
// allume la LED
digitalWrite(ledPin, HIGH);
digitalWrite(CONTACT, LOW); // Allumer le contact
monServo.write(30); // tourne le starter sur on
delay(3000);
monServo.write(180); // tourne le starter sur off
delay(1000);
Serial.println("contact + led allumée + servo tourne le starter !");
digitalWrite(DEMAREUR, LOW); // Allumer le demareur
Serial.println("j allume le demareur, j attend 4 secondes !");
delay(4000);
digitalWrite(DEMAREUR, HIGH); // eteint le demareur
Serial.println("j eteint le demareur !");
}
else { // sinon
digitalWrite(CONTACT, HIGH); // Allumer le contact
digitalWrite(ledPin, LOW); // éteint la LED
Serial.println(buttonState);
digitalWrite(DEMAREUR, HIGH); // eteint le demareur
}
while (buttonState == HIGH) // tant que le niveau est haut le demareur ne demare pas, le contact reste
{
Serial.println(buttonState);
digitalWrite(CONTACT, LOW); // Allumer le contact
//digitalWrite(DEMAREUR, HIGH); // le demareur reste eteint
Serial.println("le demareur reste eteint!");
}
}
sauf qu a la fin de la boucle meme quand le capteur descend la boucle bloc sur le demareur reste eteint?