====== Minuterie pour lampe de chevet ====== J'ai créé cette minuterie pour ceux qui lisent au lit et qui s'endorment avec la lumière allumée ou les enfant qui ont peur du noir et réclame qu'on leur laisse un peu de lumière, autre qu'une veilleuse. Cette minuterie obéit au même principe que du "dispositif de l'homme mort". Son fonctionnement est très simple : par un appui sur le bouton, la minuterie est activée et la lampe s'allume. Après la durée pour laquelle elle a été réglée, la lampe s'éteint d'elle-même. Un appui prolongé permet, à tout moment, d'éteindre la lampe, ce qui évite, si l'on s'endort sur le bouton, que la lumière reste allumée toute la nuit.\\ Cette minuterie permet, en plus de ne pas dormir avec la lumière allumée, ce qui de l'avis de certains n'est pas très bon pour la qualité du sommeil, de réaliser des économies d'énergie. D'une conception minimale et ingénieuse, elle s'appuie sur un micro contrôleur **Arduino**. Tout a été mis en œuvre pour en réduire le coût de fabrication : composants peu nombreux et faciles à trouver ou à recycler. Voilà. ====== Schéma ====== A venir ====== Code ====== //Controlling Led By Button //Turns on and off a LED ,when pressings button attach to pin12 //Website:www.abonnel.fr //2016.11.27.17.41 /**********************************/ const int keyPin = 13; //the number of the key pin const int ledPin = 12;//the number of the led pin int etatRelay = LOW; const int tempsAllumage = 6; //secondes int tempsAllumage_cours = 0; //temps en cours /**********************************/ void setup() { pinMode(keyPin,INPUT);//initialize the key pin as input pinMode(ledPin,OUTPUT);//initialize the led pin as output. Serial.begin(9600); // initialize serial communications at 9600 bps } /**********************************/ void loop() { int etatButton = digitalRead(keyPin); if(etatButton == HIGH ) { // Action quand on appuie sur le bouton etatRelay = !etatRelay; //actionner le relais digitalWrite(ledPin,etatRelay); //actionner la LED delay(1000); // attendre 1 sec tempsAllumage_cours = 0; // reintialiser le compteur } if (etatRelay == HIGH) { // Action si le relais est collé if (tempsAllumage - tempsAllumage_cours <= 0) { // Si le temps est écoulé etatRelay = LOW; // Eteindre le relais digitalWrite(ledPin,etatRelay);//Eteindre la LED delay(1000); // Attendre 1 sec } else { // Si le temps n'est pas écoulé tempsAllumage_cours++; delay(1000); // attendre 1 sec } } // Afficher les status sur le port Serie // Serial.print(etatRelay); // Serial.print(" "); // Serial.println(tempsAllumage - tempsAllumage_cours); } /************************************/ ====== Liens ====== Je me suis honteusement inspiré de l'introduction de l'article de [[http://www.berlioux.com/electronique/minuterie-hm/minuterie-hm-fr.html|Berlioux]] pour rédiger mon introduction. Pour ma défense, je dirai que j'ai fait du recyclage et l'optimisation.