LED ring klocka med Arduino (2 / 3 steg)
Steg 2: Arduino skiss
Om du anslutit allt enligt delade diagrammet, ladda upp bifogade skissen klockan startar och Visa tid som ställs i din RTC.
Några förklaringar till skiss
byte mem_r [36], mem_g [36], mem_b [36].
Jag skriver inte de beräknade färg och intensitet värdena direkt i lysdioder minnet. Jag lagra beräknade RGB-värden i denna tre matriser. Orsaken till det är nästa: Jag kan inte läsa denna info tillbaka från lamporna så jag inte kan ändra deras intensitet att behålla den ursprungliga färgen.
byte color_r [] = {0, 10, 0, 0, 10, 10, 5};
byte color_g [] = {0, 10, 0, 10, 10, 0, 5};
byte color_b [] = {0, 10, 10, 0, 0, 0, 5};
Jag använder denna tre matriser för att definiera färgerna på min klocka. Om du vill ändra mina färger, behöver du bara ändra den här värden.
void readIntensity() {...
Skissen läser luminosityen av omgivningen genom A0 PIN-koden. Du kan behöva ändra gränserna som åtgärd och motsvarande intensitetsvärden om du använder olika LDR och motstånd i spänningsdelare.
void sw_ver (byte ver) {
Efter omstart kan du läsa programversionen från lysdioder. Det kan vara en användbar funktion om du vill identifiera den kör versionen.
Ställa in tid och datum
Om du vill ställa in datum och tid i din RTC, måste du ta bort kommentaren tecken från denna linje.
setDS3231time(00,58,18,4,31,03,16);
Efter att uppdatera datum och tid, ladda upp skissen till din Arduino och starta om vid rätt tid.
(Sedan kommentera denna linje, och ladda upp den kommenterade versionen för att undvika tid återställa vid varje omstart.)