Stap 3: Code & uitleg
Hier is de code, commentaar voor uw gemak:/*
Metrische klok
Door Alec Robinson, ook wel bekend als alecnotalex.
Gelicentieerd onder een Creative Commons Naamsvermelding-NietCommercieel-GelijkDelen 3.0 Unported licentie.
*/
#include < LiquidCrystal.h > //Used voor het schrijven voor het LCD-scherm
int besluit = 0, enschermen = 0, milli = 0, micro = 0; Bijhouden van elk van de eenheden
int setmode = 0; 0 als de gebruiker is niet vaststellen iets, 1 als gebruiker is het opzetten van decidays, 2 voor centidays, enzovoort.
int setbutton = 3, addone = 2; Pinnen voor knoppen; setbutton verandert setmode, addone verandert de eenheden die is het vaststellen van de gebruiker
LiquidCrystal lcd (7, 8, 9, 10, 11, 12); Hiermee maakt u nieuwe lcd op pennen 7-12
void setup)
{
LCD.begin (16, 2); Begint de 16 x 2 LCD
}
void loop)
{
lcd.setCursor (0, 0);
LCD.Print(DECI); Decidays afdrukken
LCD.Print(":");
LCD.Print(Centi); Centidays afdrukken
LCD.Print(":");
LCD.Print(milli); Millidays afdrukken
LCD.Print(":");
LCD.Print(micro); Microdays afdrukken
lcd.setCursor (0, 1);
Als (digitalRead(setbutton) == HIGH) //If setbutton wordt ingedrukt
{
setmode ++; Hiermee wijzigt u de modus
Als (setmode == 4) //Resets als de gebruiker heeft geschoven door alle instellingen
{
setmode = 0;
LCD.Print(""); Hiermee wist u de onderste rij van scherm
}
}
Als (setmode > 0) //If de gebruiker is het opzetten van iets
{
LCD.Print ("instelling:");
delay(100); Controleer of de gebruiker niet per ongeluk druk op een knop meer dan eens wanneer ze niet betekenen voor
}
anders
{
delay(86.4); Een microday
micro ++;
Als (micro 1000 ==) //One milliday
{
milli ++;
Micro = 0;
lcd.setCursor (7, 0);
LCD.Print("");
lcd.setCursor (0, 1);
}
Als (milli == 10) //One centiday
{
enschermen ++;
milli = 0;
}
Als (enschermen == 10) //One deciday
{
besluit ++;
enschermen = 0;
}
Als (besluit == 10) //One dag
{
besluit = 0;
}
}
Als (setmode == 1) //When de gebruiker is het opzetten van de decidays
{
LCD.Print("DECI");
Als (digitalRead(addone) == HIGH)
{
besluit ++;
Als (besluit == 10) besluit = 0;
}
}
Als (setmode == 2) //The gebruiker is het opzetten van centidays
{
LCD.Print("Centi");
Als (digitalRead(addone) == HIGH)
{
enschermen ++;
Als (enschermen == 10) enschermen = 0;
}
}
Als (setmode == 3) //The gebruiker is het opzetten van millidays
{
LCD.Print("milli");
Als (digitalRead(addone) == HIGH)
{
milli ++;
Als (milli == 10) milli = 0;
}
}
}