// **** Carte 1 // Description : permet gere l'allumage d'une lampe. #include #include const int Soleil=8; // pin 8 digital int Photo=0; // pin 0 analogpin const int Lampe=9; // pin 9 digital Servo Moteur; bool Presence = false; bool EtatVolet = false; int Read; // pour lire la liaison serie int ValPhoto; // pour la valeur du photo /* int uartTX = 1; int uartRX = 0 ; SoftwareSerial uart(uartRX, uartTX); // Arduino // 1 <----> TX // 0 <----> RX */ void setup() { pinMode(Soleil, OUTPUT); // Définit la led sur la pin de la variable Soleil en sortie //(Photo, INPUT); // Définit le phototransistore en tant qu'entre pinMode(Lampe, OUTPUT); // Définit la led sur la pin de la variable Lampe en sortie digitalWrite(Soleil,LOW); // Led à l'etat bas, led allumé digitalWrite(Lampe,HIGH); // Led à l'etat haut, led eteinte Moteur.attach(2, 1000, 2000); // moteur sur pin 2 ! 1ms pour 0 degre 2ms pour 180 degre (depend des caract du moteur) Moteur.write(90); // on met le moteur 90 degre position fermee // initialize serial communication: Serial.begin(9600); } void loop() { // digitalWrite(Lampe,HIGH); // Led à l'etat haut, led eteinte if (Serial.available() > 0) { Read = Serial.read(); // on lit la liaison // * envoie sur la liaison serie l'etat du capteur de lumiere // Serial.println(Read); // * lecture de presence if ( (Read == 48) ) // si on lit 0 { Presence=false; } if ( (Read == 49) ) // si on lit 1 { Presence=true; } // * volet if ( (Read == 79) ) // O { Moteur.write(180); // on met le moteur 180 degre ouvert EtatVolet = true; } if ( (Read == 70) ) // F { Moteur.write(90); // on met le moteur 180 degre EtatVolet = false; } } // envoie sur le port srie l'etat des variable Serial.print("Read : "); Serial.println(Read); Serial.print("Presence : "); Serial.println(Presence); ValPhoto=analogRead(Photo); // Lecture du photo Serial.print("ValPhoto : "); Serial.println(ValPhoto); Serial.print("EtatVolet : "); Serial.println(EtatVolet); // ** si il y a une personne if ( Presence == true ) // { if ( EtatVolet == false) { digitalWrite(Lampe,LOW); // Led à l'etat bas, led allumee } if ( EtatVolet == true) { if ( ValPhoto > 200) { digitalWrite(Lampe,HIGH); // Led à l'etat Haut, led eteinte } if ( ValPhoto <= 200) { digitalWrite(Lampe,LOW); // Led à l'etat bas, led allumee } } } if ( Presence == false ) // { digitalWrite(Lampe,HIGH); // Led à l'etat Haut, led eteinte } delay(1000); }