// Programme écrit pas Matthieu MONCEAUX. nov 2014 // Ouvre et ferme automatiquement la porte du poulailler int LDR; // lit la valeur du capteur LDR branché sur pin A01 int PorteHaut; // état capteur porte en haut int PorteBas; // état capteur porte en bas void setup() // Fonction setup qui s'enclenche seulement 1 fois après un reset (ou OFF/ON) de la carte { Serial.begin(9600); // Ouverture connexion USB pour affichage dans moniteur arduino, depuis le logiciel Arduino sur PC // Définition des entrées pinMode(02,INPUT); // Broche D02 = capteur porte en haut pinMode(03,INPUT); // Broche D03 = capteur porte en bas // Définition des sorties pinMode(15,OUTPUT); // A01 sens moteur, active le relais sens du moteur pinMode(16,OUTPUT); // A02 alim moteur, active le relais de marche du moteur digitalWrite(16,LOW); // éteindre le moteur après un reset int LDR = analogRead(A0); // lit la valeur du capteur de lumière "LDR" branché sur pin A00 int PorteHaut = digitalRead(02); int PorteBas = digitalRead(03); } void loop() // Fonction loop = programme principal du Arduino, boucle qui tourne sans arrêt { // AFFICHAGE DANS LE MONITEUR SERIE LDR = analogRead(A0); // lit la valeur du capteur LDR branché sur pin A01 Serial.println(LDR); // affiche la valeur dans le moniteur série delay(1); // stabilisation affichage // Affichage des états dans le moniteur série PorteHaut = digitalRead(02); Serial.print("PorteHautD02="); Serial.print(PorteHaut); Serial.print(" "); delay(1); // stabilisation affichage PorteBas = digitalRead(03); Serial.print("PorteBasD03="); Serial.print(PorteBas); Serial.print(" "); delay (1); // stabilisation affichage while ((LDR>=850) and (PorteBas!=0)) // Si NUIT { digitalWrite(15, LOW); // sens vers le bas digitalWrite(16, HIGH); // alimenter moteur // AFFICHAGE DANS LE MONITEUR SERIE LDR = analogRead(A0); // lit la valeur du capteur LDR branché sur pin A01 Serial.println(LDR); // affiche la valeur dans le moniteur série delay(1); // stabilisation affichage // Affichage des états dans le moniteur série PorteHaut = digitalRead(02); Serial.print("PorteHautD02="); Serial.print(PorteHaut); Serial.print(" "); delay(1); // stabilisation affichage PorteBas = digitalRead(03); Serial.print("PorteBasD03="); Serial.print(PorteBas); Serial.print(" "); delay (1); // stabilisation affichage } while ((LDR<850) and (PorteHaut!=0)) // Si JOUR { digitalWrite(15, HIGH); // sens vers le haut digitalWrite(16, HIGH); // alimenter moteur // AFFICHAGE DANS LE MONITEUR SERIE LDR = analogRead(A0); // lit la valeur du capteur LDR branché sur pin A01 Serial.println(LDR); // affiche la valeur dans le moniteur série delay(1); // stabilisation affichage // Affichage des états dans le moniteur série PorteHaut = digitalRead(02); Serial.print("PorteHautD02="); Serial.print(PorteHaut); Serial.print(" "); delay(1); // stabilisation affichage PorteBas = digitalRead(03); Serial.print("PorteBasD03="); Serial.print(PorteBas); Serial.print(" "); delay (1); // stabilisation affichage } digitalWrite(16, LOW); // BIEN Eteindre le moteur à chaque cycle ! } // fin du programme général