Bonjour à tout le monde,
Je me permets de venir sur ce forum car j'ai un problème avec mon programme arduino de ma porte de poulailler, en effet rien ne se passe comme je veux .
Voila ce que je veux que le programme fasse:
Quand lumière est superieure a un certain seuil la porte s'ouvre jusqu'a ce que le fdc haut passe à LOW. JOUR
Quand lumière est inferieure a un certain seuil la porte s'ouvre jusqu'a ce que le fdc bas passe à LOW. NUIT
J'ai aussi la possibilité de commander la porte manuellement avec 2 BP.
Au secours , qui peut m"aider ?!!!!!!
Code://Ports de commande du moteur A du l298N int IN1 = 8; int IN2 = 9; //Bouton poussoir pour commande manuelle int BPouverture = 2; int BPfermeture = 3; int capteurBas = 4; int capteurHaut = 5; int valeurLDR ; int valeurBPouverture ; int valeurBPfermeture ; int valeurcapteurBas ; int valeurcapteurHaut ; void setup() { // Initialisation du port série Serial.begin(9600); // Configuration des ports en mode "sortie" pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); // pinMode(enablePin, OUTPUT); pinMode(2,INPUT_PULLUP); pinMode(3,INPUT_PULLUP); pinMode(4,INPUT_PULLUP); pinMode(5,INPUT_PULLUP); } void loop() { int valeurLDR = analogRead(A1); int valeurBPouverture = digitalRead(2); int valeurBPfermeture = digitalRead(3); int valeurcapteurBas = digitalRead(4); int valeurcapteurHaut = digitalRead(5); Serial.println(valeurLDR); delay(500); Serial.println(valeurcapteurBas); delay(500); Serial.println(valeurcapteurHaut); delay(500); Serial.println(valeurBPouverture); delay(500); Serial.println(valeurBPfermeture); if(valeurBPouverture==LOW && valeurBPfermeture==HIGH) { // Si BPouverture appuyé et si BPfermeture pas appuyé digitalWrite(IN1, 1); // La trappe s'ouvre digitalWrite(IN2, 0); while(valeurcapteurHaut==HIGH); } if(valeurBPfermeture==LOW && valeurBPouverture==HIGH) { // Si BPfermeture appuyé et si BPouverture pas appuyé digitalWrite(IN1, 0); // La trappe se ferme digitalWrite(IN2, 1); while(valeurcapteurBas==HIGH); } if(valeurLDR > 600 && valeurcapteurBas==LOW) { // Si jour et si capteurBas appuyé digitalWrite(IN1, 1); // La trappe s'ouvre digitalWrite(IN2, 0); while(valeurcapteurHaut==HIGH); } if(valeurLDR < 600 && valeurcapteurHaut==LOW) { // Si jour et si capteurHaut appuyé digitalWrite(IN1, 0); // La trappe se ferme digitalWrite(IN2, 1); while(valeurcapteurBas==HIGH); } }
-----