Étape 3: Code & explication
Le code complet est disponible en binarymetricclock.ino. Je procéderai maintenant à expliquer le code :deci int = 0, centi = 0, milli = 0, micro = 0 ;
Ce sont les variables qui garder une trace de l’époque. 0, 0, 0, 0 signifie minuit. Ces devraient être réglées à l’heure quand vous téléchargez le code, ou allumez pour la première fois.
installation Sub ()
{
pinMode (13, sortie) ;
pinMode (sortie 12,) ;
pinMode (sortie 11) ;
pinMode (sortie 10,) ;
pinMode (sortie 9) ;
pinMode (sortie 8) ;
pinMode (7, sortie) ;
pinMode (6, sortie) ;
pinMode (5, sortie) ;
pinMode (sortie 4) ;
pinMode (3, sortie) ;
pinMode (sortie 2) ;
}
Ce code est assez explicite. J’aurais pu utiliser une boucle ou quelque chose, mais j’ai choisi de ne pas.
void writebin (int valeur, int pin1, pin2 int, int pin3, int pin4)
{
Il s’agit d’une fonction qui prend une valeur, une valeur int et écrit en binaire sur la pin1 - pin4.
Si (valeur == 0)
{
digitalWrite (pin1, faible) ;
digitalWrite (pin2, faible) ;
digitalWrite (pin3, faible) ;
digitalWrite (pin4, faible) ;
}
Si (valeur == 1)
{
digitalWrite (pin1, HIGH) ;
digitalWrite (pin2, faible) ;
digitalWrite (pin3, faible) ;
digitalWrite (pin4, faible) ;
}
Ce sont seulement deux sur dix si des déclarations au sujet de comment écrire chaque nombre en binaire. Je ne partage pas le reste, mais elles sont incluses dans la source complète.
void loop ()
{
writebin (deci, 2, 3, 4, 5) ;
writebin (centi, 6, 7, 8, 9) ;
writebin (milli, 10, 11, 12, 13) ;
Ces écrivent la variable différente dans leur NIP respecitve.
Delay(86.4) ;
Il s’agit de la durée (en millisecondes) d’un micro-jour.
micro ++ ;
Indecates qu’un micro-jour s’est écoulé.
Si (micro == 1000)
{
Milli ++ ;
micro = 0 ;
}
Cette instruction if ajoute un à milli si micro atteint 1000, montrant qu’il sont 1000 micro-jours à une milli-journée.
Si (milli == 10)
{
centi ++ ;
Milli = 0 ;
}
Cette instruction-si simple augmente centi d’une si milli atteint dix. Il définit ensuite milli retour à 0.
Si (centi == 10)
{
Deci ++ ;
centi = 0 ;
}
Fonctionne de manière similaire.
Si (deci == 10)
{
Deci = 0 ;
}
Nouveau fonctionne de manière similaire.
}
Vous avez terminé avec le code ! Assez simple, non ?