Innehållsförteckning:
- Steg 1: Prototypbräda
- Steg 2: Arduino UNO
- Steg 3: Fäst LED -remsa på trä
- Steg 4: Framtida utveckling
- Steg 5: Post-Script: 2 remsor
Video: Linjär klocka med Arduino + DS1307 + Neopixel: Återanvändning av viss hårdvara .: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Från tidigare projekt hade jag en Arduino UNO och en Neopixel LED -remsa kvar och ville göra något annorlunda. Eftersom Neopixel -remsan har 60 LED -lampor, tänkte man använda den som en stor klocka.
För att ange timmar används ett rött 5-LED-segment (60 LED / 12 segment = 5 LED). Minuterna visas med en enda grön lysdiod och sekunderna med en blå lysdiod.
Jag lade till ett DS1307 Real Time Clock -kort för att behålla tiden när Arduino inte är strömförsörjd.
Detta är Neopixel 60 LED -remsan som används: https://www.adafruit.com/product/1138 och detta DS1307 -kortet:
Inledningsvis var LED -listan planerad att hänga på matsalsväggen, men mina döttrar sa till mig att fästa den på en träbit från en pall, så de drog siffrorna och limmade på träet.
Steg 1: Prototypbräda
Här har du kretsen som ska implementeras och BOM.
Om du inte använder DS1307 RTC -kortet fungerar det inte. Timmar och minuter återställs när Arduino inte är strömförsörjd eftersom detta kort inte har en intern RTC.
Prototypkortet hjälper till att hålla RTC DS1307, ett par motstånd och knappar på plats.
Viss lödning och kablage behövs.
"H" -knappen ökar timmen när den trycks in. "M" -knappen ökar minuten. Sekunderna återställs när du trycker på någon knapp.
Efter 6 månaders kontinuerlig drift har det varit en 2 minuters försening (ganska bra, enligt mig).
Steg 2: Arduino UNO
Jag använde en gammal Arduino -klon och några stift för att ansluta prototypkortet.
Du hittar Arduino -koden på:
github.com/Giroair/Linear-Clock-Arduino/bl…
Fäst Arduino på träbiten med en plastslips.
Lödde 3 kablar till Neopixel -remsan (var försiktig: använd lite isoleringstejp eller kontakt).
I detta projekt drivs Arduino av en standard 5V 1A USB -laddare.
Info för utvecklare: Neopixel drivs från 5V -stift på Arduino UNO eftersom endast 7 LED är tända samtidigt. Om du planerar att slå på fler lysdioder (vilket är perfekt för mer attraktiva skärmar) kan du överväga att slå på Neopixel från en extern 5V -källa. Anslut i så fall käll -GND till GND -stiftet på Arduino -kortet.
Att driva Arduino som ansluter extern och pålitlig strömkälla till 5V -stift är också ett alternativ.
Steg 3: Fäst LED -remsa på trä
Användte 3 plastband för att hålla remsan på plats. Var försiktig så att du inte täcker någon LED.
Några ark limmades på träet och målade siffrorna.
Röda siffror anger timmen. Linjer dras var 5: e LED.
Gröna siffror anger minuten. Observera att den första lysdioden indikerar den första minuten, och den sista anger den 60: e minuten.
Steg 4: Framtida utveckling
Några idéer från detta projekt:
1.- Skär numren i träet med en mejsel och måla och lackera det.
2.- Rita timtalen på ena sidan och minutnumren på den andra.
3.- Använd 2 LED-remsor rygg mot rygg: en vänd åt vänster för timmarna och en mot höger för minuter.
4.- Experimentera med olika segment och färger: fantasin är gränsen (du rekommenderas att använda en extern 5V ström till Neopixel-remsan).
5.- Visa timme och minuter alternativt.
6.- Dela LED-remsan i segment och gör en 7x8 LED-matris för att visa digitala nummer och tecken.
7.- Dämpa ljuset: använd en LDR eller fotodiod för att automatiskt dämpa ljuset.
8.- Anslut till molnet för att få tid från en server.
9.- Aktivera ett larm: remsan blinkar när telefonsamtal eller tweets tas emot eller ett tidslarm är inställt.
10.-…. bara låt mig veta!
Steg 5: Post-Script: 2 remsor
Jag lämnade filen "neopixel_invers_2_strips.ino" på
Den är avsedd att styra en remsa för att indikera timmar kopplade till stift #6, och en andra remsa för att indikera minuter/sekunder ansluten till stift #7.
Både 5V DC och jord av remsorna är anslutna till samma källa.
DISCLAIMER: kunde inte testa det så länge det inte har 2 remsor. Om du testar det, var snäll att rapportera buggar eller bekräfta att det fungerar bra.
Tack.