Sunrise Alarm LED klocka (1 / 12 steg)
Steg 1: teori
För en mer ingående förklaring av hur ledde matriser fungerar, besök denna sida. Som ni kan se i kopplingsschemat ovan, består en LED-matris av ett antal lampor fast tillsammans i ett rutnät-liknande sätt. Deras slutliga arrangemang har naturligtvis inte vara i ett rutnät form, men deras ledningar gör. I huvudsak alla lysdioder i varje rad har deras anoder anslutna till varandra och alla lampor i varje kolumn har deras katoder wired tillsammans. För att vända någon en LED, måste du ansluta den dess anod (via dess gemensamma rad anslutning) till V + och Anslut dess katoden (via dess gemensamma kolumnen anslutning) till GND. På så sätt kan varje LED hanteras individuellt. Detta orsakar ett problem nästan omedelbart, men. Vad händer om du ville slå två lysdioder på den samma, ett i den första kolumn en ned från toppen och en annan en i den tredje kolumnen två ner från toppen? Tja, ansluter du andra och tredje rader V +, och den första och tredje kolumnen till GND. Men nu plötsligt fyra lysdioder på, snarare än de två som du ursprungligen önskat. För att komma runt detta problem, används rad eller kolumn scanning.
Med rad och kolumn skanning, är endast en rad orcolumn någonsin ansluten till V + eller GND i taget (i rad scanning, bara en rad är ansluten till V +, och i kolumnen scanning endast en kolumn är ansluten till GND). På detta sätt, är de enda lysdioder som tänds de i rad/kolumn som anslutits till V +/ GND. För att göra det ser ut som mer än en rad/kolumn är på på en gång, skannade rader/kolumner; så snart en rad/kolumn har aktiverats och dess motsvarande lysdioder har stängts / av, den är avstängd igen och samma sak händer med nästa rad/kolumn. Denna pulserande av lamporna hända så snabbt att ögat inte kan se något stänga av i vad som kallas persistens av vision (POV), och våra hjärnor process som flera rader/kolumner på på en gång.
Jag beslutade att använda raden scanning för detta projekt. Jag tänkte att det skulle vara enklast, eftersom jag använder en matris som består av fem rader och 11 kolumner och fem rader kan passa in i den 8-utdata-högst SKIFT register som används för att styra matrisen. Anledningen till att jag använder SKIFT är att en standard Arduino Uno inte har tillräckligt I/O för både ledde matrisen och tryckknapparna används för att kontrollera klockan. De SKIFT register använder 6 Arduino pins snarare än de 16 som krävs för att direkt köra varje kolumn och rad. Tre skift register används: en för den raden scanningen och ytterligare 2 för kolumnen sjunka. Eftersom den raden scanningen i huvudsak kör självständigt från allt annat, måste den kontrolleras separat från kolumnen kassorna. Kolumnen registren kan faktiskt vara daisy kedjas ihop med seriella produktionen av en av SKIFT register, vilket gör att vi kan minska antalet Arduino stift. Detta projekt används det 74HC595 SKIFT registret.
För en guide om vad SKIFT register är och hur du använder dem med en Arduino, klicka här.
Sunrise larm kretsarna är ganska enkel och består endast av en grundläggande RC-krets som successivt ökar nuvarande på utfärda utegångsförbud för av en IRF510 MOSFET, vilket i sin tur gör att mer och mer aktuella flöda genom en LED array, genom dess avlopp-källsökväg och till GND. Ju mer ström flyter genom arrayen, desto ljusare dess lysdioder är, och ju närmare du får vakna på morgonen.