Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Horloge Arduino

Horloge Arduino

De Wikidebrouillard.

(Liste du matériel)
(Pour aller plus loin)
 
(22 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
{{avertissement}}
{{avertissement}}
-
{{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http://mediaspip.ptitdeb.infini.fr/IMG/mp4/montage_petits_debs.mp4|400|300</videoflash>}}
+
{{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 8 : Ligne 8 :
* [[Image:Arduino_Diecimila.jpg|50px]] La carte [[Arduino]] Uno
* [[Image:Arduino_Diecimila.jpg|50px]] La carte [[Arduino]] Uno
* [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Arduino
* [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Arduino
-
* [[Image:Arduino_Uno_logo.png|50px]] Le logiciel Processing
 
* [[Image:Fils1.jpg|50px]] Du [[fil électrique]] (noir, rouge…)
* [[Image:Fils1.jpg|50px]] Du [[fil électrique]] (noir, rouge…)
* [[Image:Plaque2.jpg|50px]] Une plaque labdec ou [[Breadboard]]
* [[Image:Plaque2.jpg|50px]] Une plaque labdec ou [[Breadboard]]
-
* [[Image:Potentiomètre.jpg|50px]] Un [[potentiomètre]]
 
* [[Image:Ordi.jpg|50px]] Un [[ordinateur]] pour programmer
* [[Image:Ordi.jpg|50px]] Un [[ordinateur]] pour programmer
-
* [[Image:Bp.jpg|50px]] Un [[bouton poussoir]]
+
* [[Image:Bp.jpg|50px]] [[Bouton poussoir]] (2)
==réalisation du projet==
==réalisation du projet==
-
===Explication===
+
 
 +
 
 +
 
 +
* Allumer l'ordinateur
 +
 
 +
* Brancher la carte Arduino à l'aide du câble USB.
 +
 
 +
* Télécharger la bibliothèque Time disponible à cette adresse : [http://playground.arduino.cc/uploads/Code/Time.zip Time]
 +
 
 +
* Extraire l'archive dans C:\Program Files\Arduino\libraries
 +
 
 +
* Lancer le logiciel Arduino. Vous devez voir s'afficher la fenêtre suivante:
 +
 
 +
[[Fichier:captSimon1.png|180px]]
 +
 
 +
* Copier/Coller le code fourni ci-dessous
 +
 
 +
* Cliquer sur téléverser (en haut à gauche de la fenêtre)
 +
 
 +
* Ouvrir le moniteur série (en haut à droite de la fenêtre)
 +
 
 +
* Vous pouvez désormais régler la date et l'heure via les boutons poussoirs
 +
 
===Schéma Fritzing===
===Schéma Fritzing===
 +
 +
[[Image:untitled_sketch_2_bb-3.jpg|500px]]
 +
===Code===
===Code===
<pre>
<pre>
-
mettre le code entre ces deux balises
 
-
//attention à bien documenter le cod
 
-
e !
+
 
 +
#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);
 +
}
 +
 
</pre>
</pre>
 +
 +
===Explication===
 +
 +
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.
==Liens avec d'autres projets arduino==
==Liens avec d'autres projets arduino==
Ligne 30 : 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==
-
quelles peuvent être les applications technologique de ce montage, ou est-ce qu'on retrouve des programme qui y ressemble ?
+
Cet article peut vous permettre de comprendre le fonctionnement d'une horloge numérique.
[[Catégorie:Arduino]]
[[Catégorie:Arduino]]

Version actuelle en date du 30 janvier 2014 à 11:49

Article incomplet en cours de rédaction
Modèle:Vidéo

Sommaire

Présentation du projet Arduino

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.

Liste du matériel

réalisation du projet

  • Allumer l'ordinateur
  • Brancher la carte Arduino à l'aide du câble USB.
  • Télécharger la bibliothèque Time disponible à cette adresse : Time
  • Extraire l'archive dans C:\Program Files\Arduino\libraries
  • Lancer le logiciel Arduino. Vous devez voir s'afficher la fenêtre suivante:

  • Copier/Coller le code fourni ci-dessous
  • Cliquer sur téléverser (en haut à gauche de la fenêtre)
  • Ouvrir le moniteur série (en haut à droite de la fenêtre)
  • Vous pouvez désormais régler la date et l'heure via les boutons poussoirs

Schéma Fritzing

Code



#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);
}

Explication

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.

Liens avec d'autres projets arduino

chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino

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

Cet article peut vous permettre de comprendre le fonctionnement d'une horloge numérique.

AR
CO

Horloge Arduino

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique