[TUTO pour débutants] Un chronomètre de série.

Les cartes Arduino, les platines

[TUTO pour débutants] Un chronomètre de série.

Message non lude theBabyProgrammer » Sam 16 Mar 2013 20:00

Bonjour!

Je vais vous présenter un projet qui certainement intéressera les débutants en arduino:


Si vous avez déjà bidouillé sur la fonction "Delay" sur votre arduino et que vous savez imprimer des données sur le moniteur de série,
ce projet sera en partie très simple :D :


Materiel :

-Arduino
-Son câble


Le code :

Code: Tout sélectionner
int disec = 0;
int sec = 0;
int minute = 0;
int heure = 0;


void setup ()
{
  Serial.begin(9600);
}

void loop ()
{
  Serial.print("timer: ");
  Serial.print(heure);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.print(sec);
  Serial.print(":");
  Serial.println(disec);
  delay(100);
  disec = disec + 1;
  if(disec == 10)
 {
   sec = sec + 1;
   disec = 0;
 }
  if (sec == 60)
  {
    minute = minute + 1;
    sec = 0;
  }
 
  if (minute == 60)
  {
    heure = heure + 1;
    minute = 0;
  }
 
 
}


Je vais vous expliquer le fonctionnement du code :

-ÉTAPE 1-
L'arduino construit ses variables, celles pour les différentes unités de temps.

Code: Tout sélectionner
int disec = 0;
int sec = 0;
int minute = 0;
int heure = 0;


-ÉTAPE 2-
L'arduino règle sa sortie de données à 9600 baud.

Code: Tout sélectionner
void setup ()
{
  Serial.begin(9600);
}


-ÉTAPE 3-
L'arduino imprime sur le moniteur de série la valeur des variables crées de cette façon :
0:0:0:0
L'arduino doit afficher ces numéros à la première fois qu'il utilise la boucle principale

Code: Tout sélectionner
  Serial.print("timer: ");
  Serial.print(heure);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.print(sec);
  Serial.print(":");
  Serial.println(disec);


-ÉTAPE 4-
Tous les 100 millisecondes, l'arduino augmente la valeur de "disec" de 1

Code: Tout sélectionner
  delay(100);
  disec = disec + 1;


-ÉTAPE 5-
Finalement, l'arduino vérifie quand une seconde/minute/heure ont passé avec des "if"

Code: Tout sélectionner
  if(disec == 10)
 {
   sec = sec + 1;
   disec = 0;
 }
  if (sec == 60)
  {
    minute = minute + 1;
    sec = 0;
  }
 
  if (minute == 60)
  {
    heure = heure + 1;
    minute = 0;
  }


Et après l'arduino relis la boucle principale.



-theBabyProgrammer
theBabyProgrammer
 
Messages: 2
Inscription: Sam 16 Mar 2013 19:00

Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 47 invités

cron