Fantastiska binära kalender och klocka med månen fas i en ledde matrisen (3 / 5 steg)
Steg 3: programmering
Den första utmaningen med detta projekt var att ta reda på sättet att sätta all information på en enda skärm 8 x 8 och också hantera alla lampor att uppnå resultaten av blinkar, slå eller stänga av på rätt position.
Först av allt, gjorde jag en modell på ett Excel-kalkylblad simulerar denna operation med ett Visual Basic-program.
Efter det flyttade jag till logiken relaterade till Arduino, tänka på de bibliotek som vill hjälpa mig, främst relaterade till timers som stöder personsökning mellan kalenderdisplayen och digital klockdisplay och också relaterade till timer att läsa kodaren.
Min möjlighet att använda kodaren beror på dess riktighet. Jag försökte använda potentiometrar, men resultatet var inte tillfredsställande eftersom den analoga signalen inte är konstant orsakar variation i beräkningen av resultat som ska visas i displayen.
För timern, beslöt jag att tillämpa TimerOne biblioteket för att läsa kodaren varje 1 Referenspunkttider och resultaten var verkligen mycket bra.
Om du vill hantera funktionen personsökning, jag använde funktioner while() och millis() för att kontrollera slingan i kalendern under 30 sekunder och sedan skärmen rengörs för att presentera den digital klockan.
Dessa är de bibliotek som du behöver lägga i din Arduino IDE:
- Time.h - bibliotek med datum- och tidsfunktioner
- LedControl.h - bibliotek för att kontrollera ledde matrisen
- Wire.h - bibliotek för att stödja DS130RTC
- DS130RTC, h - bibliotek av realtidsklocka
- Bounce2.h - bibliotek för att läsa knappen kodare
- TimerOne.h - bibliotek av Timer 1 läsa kodaren.
Relaterade till månens faser beräkning, var mitt alternativ att tillämpa en algoritm som skulle vara bra nog men utan vetenskapliga precisionen för en omfattande beräkningsmetod.