(→Code) |
(→Code) |
||
Ligne 39 : | Ligne 39 : | ||
#include <Time.h> // On inclut la bibliothèque qui permet de faire fonctionner l'horloge </font> | #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 btnForward = 2; // | + | const int btnBack = 3; // Bouton pour reculer le temps |
- | const int btnBack = 3; // | + | unsigned long prevtime; // Variable qui stock le temps |
- | unsigned long prevtime; // | + | |
void setup() { | void setup() { | ||
- | digitalWrite(btnForward, HIGH); // | + | digitalWrite(btnForward, HIGH); // Active les résistances de pull-up internes |
- | digitalWrite(btnBack, HIGH); // | + | digitalWrite(btnBack, HIGH); // Active les résistance de pull-up internes |
- | setTime(12,00,0,10,1,2014); // | + | setTime(12,00,0,10,1,2014); // On fixe le temps de départ à 12h00 le 10 janvier 2014 |
- | Serial.begin(9600); // | + | Serial.begin(9600); // Initialise la connexion usb |
- | Serial.println("Pret"); // | + | Serial.println("Pret"); // On affiche pret dans le "Moniteur série" |
} | } | ||
Ligne 55 : | Ligne 54 : | ||
* Fonction qui permet de rafraichir l'heure | * Fonction qui permet de rafraichir l'heure | ||
*/ | */ | ||
+ | |||
+ | |||
void loop(){ | void loop(){ | ||
prevtime = now(); //note l'heure | prevtime = now(); //note l'heure | ||
while(prevtime == now()){ | while(prevtime == now()){ | ||
- | //tant que le temps stocké est identique au temps présent | + | // tant que le temps stocké est identique au temps présent |
if(checkSetTime()) | if(checkSetTime()) | ||
prevtime = now(); | prevtime = now(); | ||
} | } | ||
- | digitalClockDisplay(); // | + | digitalClockDisplay(); // On affiche l'heure |
} | } | ||
/* | /* | ||
- | * Fonction qui vérifie que le temps est | + | * Fonction qui vérifie que le temps est preset |
*/ | */ | ||
boolean checkSetTime(){ | boolean checkSetTime(){ | ||
- | // | + | // Initialisation des variables |
int step; | int step; | ||
boolean isTimeAdjusted = false; | boolean isTimeAdjusted = false; | ||
step = 1; | step = 1; | ||
- | //Tant que le bouton qui permet d'avancer le temps est appuyé | + | // Tant que le bouton qui permet d'avancer le temps est appuyé |
while(digitalRead(btnForward) == LOW){ | while(digitalRead(btnForward) == LOW){ | ||
Serial.print("Avance le temps \n"); | Serial.print("Avance le temps \n"); | ||
- | // | + | // On avance le temps |
adjustTime(step); | adjustTime(step); | ||
isTimeAdjusted = true; | isTimeAdjusted = true; | ||
- | step = step + 1; // | + | step = step + 1; // On augmente le pas |
- | digitalClockDisplay(); // | + | digitalClockDisplay(); // On affiche l'heure |
delay(100); //on met un délai de 100 ms | delay(100); //on met un délai de 100 ms | ||
} | } | ||
- | step = -1; // | + | step = -1; // On initialise le pas |
- | //Tant que le bouton qui permet de reculer le temps est avancé ... | + | // Tant que le bouton qui permet de reculer le temps est avancé ... |
while(digitalRead(btnBack) == LOW) | while(digitalRead(btnBack) == LOW) | ||
{ | { | ||
Ligne 101 : | Ligne 102 : | ||
**/ | **/ | ||
void digitalClockDisplay(){ | void digitalClockDisplay(){ | ||
- | // | + | // On affiche l'heure |
Serial.print(hour()); | Serial.print(hour()); | ||
- | // | + | // On affiche les minutes |
printDigits(minute()); | printDigits(minute()); | ||
- | // | + | // On affiche les secondes |
printDigits(second()); | printDigits(second()); | ||
Serial.print(" "); | Serial.print(" "); | ||
- | // | + | // On affiche le jour |
Serial.print(day()); | Serial.print(day()); | ||
Serial.print(" "); | Serial.print(" "); | ||
- | // | + | // On affiche le mois |
Serial.print(month()); | Serial.print(month()); | ||
Serial.print(" "); | Serial.print(" "); | ||
- | // | + | // On affiche l'année |
Serial.print(year()); | Serial.print(year()); | ||
- | // | + | // On passe à la ligne |
Serial.println(); | Serial.println(); | ||
} | } | ||
Ligne 125 : | Ligne 126 : | ||
void printDigits(int digits){ | void printDigits(int digits){ | ||
Serial.print(":"); | Serial.print(":"); | ||
- | // | + | // Si le nombre est inférieur à 10, on rajoute un 0 |
if(digits < 10) | if(digits < 10) | ||
Serial.print('0'); | Serial.print('0'); |
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.
Partie 1 : sur l'ordinateur
#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); }
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
quelles peuvent être les applications technologique de ce montage, ou est-ce qu'on retrouve des programme qui y ressemble ?
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique