Stap 3: Code & uitleg
De volledige code is beschikbaar als binarymetricclock.ino. Ik zal nu overgaan tot het leggen van de code:int besluit = 0, enschermen = 0, milli = 0, micro = 0;
Dit zijn de variabelen die het bijhouden van de tijd. 0, 0, 0, 0 betekent middernacht. Deze moeten worden ingesteld op de tijd wanneer u uploaden van de code, of voor het eerst inschakelt.
void setup)
{
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);
pinMode (11, OUTPUT);
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
pinMode (8, OUTPUT);
pinMode (7, OUTPUT);
pinMode (6, OUTPUT);
pinMode (5, OUTPUT);
pinMode (4, OUTPUT);
pinMode (3, OUTPUT);
pinMode (2, OUTPUT);
}
Deze code is vrij duidelijk. Ik kon gebruikt hebben een lus of iets, maar ik koos niet te.
VOID writebin (int waarde int pin1, int PIN2-, int pin3, int pin4)
{
Dit is een functie die een waarde, int waarde neemt, en schrijft het binair naar pin1 - pin4.
Als (waarde == 0)
{
digitalWrite (pin1, laag);
digitalWrite (pin2, laag);
digitalWrite (pin3, laag);
digitalWrite (pin4, laag);
}
Als (waarde == 1)
{
digitalWrite (pin1, hoge);
digitalWrite (pin2, laag);
digitalWrite (pin3, laag);
digitalWrite (pin4, laag);
}
Dit zijn slechts twee van de tien als verklaringen met betrekking tot hoe te schrijven van elk getal in binaire. Ik zal niet delen van de rest, maar ze worden opgenomen in de volledige broncode.
void loop)
{
writebin (besluit, 5, 4, 3, 2);
writebin (enschermen, 9, 8, 7, 6);
writebin (milli, 13, 10, 12, 11);
Dit schrijven de verschillende variabele naar hun PIN selecteren.
delay(86.4);
Dit is de lengte (in milliseconden) van een micro-dag.
micro ++;
Indecates dat een micro-dag is gegaan door.
Als (micro == 1000)
{
milli ++;
Micro = 0;
}
Dit als-instructie voegt u een milli als micro 1000 bereikt, waaruit blijkt dat er zijn 1000 micro-dagen in een milli-dag.
Als (milli == 10)
{
enschermen ++;
milli = 0;
}
Deze instructie-eenvoudig als verhoogd enschermen met één als milli tien bereikt. Wordt vervolgens ingesteld milli terug op 0.
Als (enschermen == 10)
{
besluit ++;
enschermen = 0;
}
Werkt op een vergelijkbare manier.
Als (besluit == 10)
{
besluit = 0;
}
Opnieuw werkt op een vergelijkbare manier.
}
U bent klaar met de code! Vrij simpel, toch?