Étape 3: Code & explication
Voici le code, a commenté pour votre confort :/*
Horloge métrique
Par Alec Robinson, autrement connu comme alecnotalex.
Sous une licence Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported.
*/
#include < LiquidCrystal.h > //Used pour avoir écrit pour l’écran LCD
deci int = 0, centi = 0, milli = 0, micro = 0 ; Garder une trace de chacune des unités
setmode int = 0 ; 0 si l’utilisateur ne met pas n’importe quoi, 1 si l’utilisateur met en decidays, 2 pour centidays et ainsi de suite.
int setbutton = 3, addone = 2 ; Broches pour les boutons ; setbutton modifie setmode, addone modifie les unités de que la définition de l’utilisateur
Innovente lcd (7, 8, 9, 10, 11, 12) ; Crée le nouvel écran lcd à pins 7-12
installation Sub ()
{
LCD.Begin (16, 2) ; Commence le 16 x 2 LCD
}
void loop ()
{
lcd.setCursor (0, 0) ;
LCD.Print(Deci) ; Tirages decidays
LCD.Print(":") ;
LCD.Print(centi) ; Tirages centidays
LCD.Print(":") ;
LCD.Print(Milli) ; Tirages millidays
LCD.Print(":") ;
LCD.Print(micro) ; Tirages microdays
lcd.setCursor (0, 1) ;
Si (digitalRead(setbutton) == HIGH) //If setbutton est pressé
{
setMode ++ ; Change le mode
Si (setmode == 4) //Resets si l’utilisateur a fait défiler tous les paramètres
{
setMode = 0 ;
LCD.Print("") ; Efface la ligne du bas de l’écran
}
}
Si (setmode > 0) //If l’utilisateur met quelque chose
{
LCD.Print ("réglage:") ;
Delay(100) ; Pour vous assurer que l’utilisateur n’est pas accidentellement presse un bouton plus d’une fois quand ils ne veux pas
}
d’autre
{
Delay(86.4) ; Un microday
micro ++ ;
Si (micro == 1000) //One milliday
{
Milli ++ ;
micro = 0 ;
lcd.setCursor (7, 0) ;
LCD.Print("") ;
lcd.setCursor (0, 1) ;
}
Si (milli == 10) //One centiday
{
centi ++ ;
Milli = 0 ;
}
Si (centi == 10) //One deciday
{
Deci ++ ;
centi = 0 ;
}
Si (deci == 10) jour //One
{
Deci = 0 ;
}
}
Si (setmode == 1) //When l’utilisateur met le decidays
{
LCD.Print("Deci") ;
Si (digitalRead(addone) == HIGH)
{
Deci ++ ;
Si (deci == 10) deci = 0 ;
}
}
Si (setmode == 2) utilisateur //The met centidays
{
LCD.Print("centi") ;
Si (digitalRead(addone) == HIGH)
{
centi ++ ;
Si (centi == 10) centi = 0 ;
}
}
Si (setmode == 3) //The l’utilisateur est mise en millidays
{
LCD.Print("Milli") ;
Si (digitalRead(addone) == HIGH)
{
Milli ++ ;
Si (milli == 10) milli = 0 ;
}
}
}