(→Pour aller plus loin) |
|||
(2 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
{{avertissement}} | {{avertissement}} | ||
- | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http:/ | + | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http://mediaspip.ptitdeb.infini.fr/IMG/flv/horlogearduino-encoded.flv|400|300</videoflash>}} |
==Présentation du projet Arduino== | ==Présentation du projet Arduino== | ||
Ligne 151 : | Ligne 151 : | ||
==Pour aller plus loin== | ==Pour aller plus loin== | ||
+ | Il est possible d'afficher cette heure sur un écran lcd afin de visualiser directement l'heure actuelle. | ||
==Liens avec le quotidien== | ==Liens avec le quotidien== | ||
- | + | Cet article peut vous permettre de comprendre le fonctionnement d'une horloge numérique. | |
[[Catégorie:Arduino]] | [[Catégorie:Arduino]] |
Sommaire |
On veut utiliser l'heure du jour (heures, minutes et secondes) dans un sketch, et on ne souhaite pas se connecter à un matériel externe.
#include <Time.h> // On inclut la bibliothèque qui permet de faire fonctionner l'horloge </font> const int btnForward = 2; // Bouton pour avancer le temps const int btnBack = 3; // Bouton pour reculer le temps unsigned long prevtime; // Variable qui stock le temps void setup() { digitalWrite(btnForward, HIGH); // Active les résistances de pull-up internes digitalWrite(btnBack, HIGH); // Active les résistance de pull-up internes setTime(12,00,0,10,1,2014); // On fixe le temps de départ à 12h00 le 10 janvier 2014 Serial.begin(9600); // Initialise la connexion usb Serial.println("Pret"); // On affiche pret dans le "Moniteur série" } /* * Fonction qui permet de rafraichir l'heure */ void loop(){ prevtime = now(); //note l'heure while(prevtime == now()){ // tant que le temps stocké est identique au temps présent if(checkSetTime()) prevtime = now(); } digitalClockDisplay(); // On affiche l'heure } /* * Fonction qui vérifie que le temps est preset */ boolean checkSetTime(){ // Initialisation des variables int step; boolean isTimeAdjusted = false; step = 1; // Tant que le bouton qui permet d'avancer le temps est appuyé while(digitalRead(btnForward) == LOW){ Serial.print("Avance le temps \n"); // On avance le temps adjustTime(step); isTimeAdjusted = true; step = step + 1; // On augmente le pas digitalClockDisplay(); // On affiche l'heure delay(100); //on met un délai de 100 ms } step = -1; // On initialise le pas // Tant que le bouton qui permet de reculer le temps est avancé ... while(digitalRead(btnBack) == LOW) { Serial.print("Recule le temps \n"); adjustTime(step); //on recule le temps isTimeAdjusted = true; step = step - 1; //on diminue le pas digitalClockDisplay(); //on affiche l'heure delay(100); //on met un delai de 100 ms } return isTimeAdjusted; } /** * Fonction qui affiche l'heure **/ void digitalClockDisplay(){ // On affiche l'heure Serial.print(hour()); // On affiche les minutes printDigits(minute()); // On affiche les secondes printDigits(second()); Serial.print(" "); // On affiche le jour Serial.print(day()); Serial.print(" "); // On affiche le mois Serial.print(month()); Serial.print(" "); // On affiche l'année Serial.print(year()); // On passe à la ligne Serial.println(); } /** * Fonction qui permet de rajouter un 0 si le nombre est inférieur à 10 **/ void printDigits(int digits){ Serial.print(":"); // Si le nombre est inférieur à 10, on rajoute un 0 if(digits < 10) Serial.print('0'); Serial.print(digits); }
Le code permet d'afficher l'heure. La boucle dans le code permet de rafraichir l'heure toutes les secondes. Le code gère les entrées 2 et 3 de l'arduino. Ces sorties correspondent aux boutons poussoirs.Pour que le code comprenne qu'on veut avancer(ou reculer) l'heure, il faut appuyer sur le bouton correspondant à l'action voulue. Ainsi lorsqu'on appuie sur celui-là, on laisse passer le courant électrique et on envoie alors une information. Cette information est interprétée par le code comme étant l'action d'avancer(ou de reculer) l'heure. Si le bouton poussoir est maintenu enfoncé alors l'information sera envoyée en continu.
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
Il est possible d'afficher cette heure sur un écran lcd afin de visualiser directement l'heure actuelle.
Cet article peut vous permettre de comprendre le fonctionnement d'une horloge numérique.
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique