Arduino binär klocka med LED-matris (4 / 6 steg)
Steg 4: Anteckningar om algoritmen
Varje kolumn i matrisen LED indikerar en siffra. Genom att separera. timmar, minuter och sekunder in två enstaka siffror är trivialt...
- Isolera den första siffran dividerar heltal-timmarna av 10 (ingen resten).
- Få andra med modul division (resten bara) av 10.
Vi belyser en kolumn LED(s) att motsvara den lämpliga siffran binär representation. Till gör så, använder vi ledcontrol.h bibliotekets setRow() funktion som kräver tre argument--
- Matrix nummer (biblioteket hanterar upp till 8 per instans). Rösträkningen inleds vid 0, och det är numret i denna skiss, som vi har bara en matris.
- Kolumnnummer (räknat från vänster, numrerade 0-7). Som används, motsvarar kolumner 0 och 1 den timmen första och andra siffror, respektive.
- Byte som beskriver, topp till botten, lysdioderna aktivera (1 = på).
Timme/minut/sekund ensiffriga returneras som decimalt heltalsvärden (dvs. 0-9). De måste konverteras till ("kasta" som, i programmering språkbruk) krävs (binära) bytevärden med funktionen byte().
SetRow(), på min matrix, fyller lysdioder i linje med indata/utdata stiften, men den minst signifikanta biten ("botten") är närmare till produktionen stift--jag skulle kalla det monteras upp och ner. (Prova det med din egen matrix LED). Observera att du måste kasta om ordningsföljden av bitvis matematik för att montera din LED matrix höger sida upp och använda funktionen SetColumn om du vill montera den i sidled.