Innholdsfortegnelse:
Video: Arduino Matrix Clock: 6 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Beskrivelse:
Bygg klokken din med en Arduino, en matrisedisplay og en sanntidsklokke (RTC) -modul. Dette er et morsomt og enkelt prosjekt som jeg synes er flott for nybegynnere. Klokken bruker RTC -modulen til å spore tid, så vel som dag, måned og år. I tillegg har modulen en innebygd temperatursensor. Du kan lære mer om DS3231 -modulen her så vel som I2C -kommunikasjonsbussen som ble brukt til den her. Til slutt vil vi bruke en Dot Matrix Display for selvfølgelig å vise tid, ukedag, måned osv. Du kan lese mer om displayet her og MAX7219 IC -driveren i databladet nedenfor.
Du kan også laste ned pdf -versjonen for dette prosjektet her. Det er praktisk talt det samme som dette instruerbare.
[OPPDATERING: 2/22/19] Ikke bruk pdf -guiden. Jeg har oppdatert denne instruksen, men endringene er ennå ikke reflektert på pdf -en.
Trinn 1: Samle komponenter
Komponentene du trenger for dette prosjektet:
- Max7219 Dot Matrix Display [Kjøp her] [Dataark]
- RTC DS3231 [Kjøp her] [Dataark]
- 3V CR3032 batteri (for DS3231)
I tillegg trenger du en hvilken som helst Arduino (helst en Nano for å minimere prosjektets størrelse), et brødbrett, jumperkabler samt Arduino IDE installert på din PC.
Trinn 2: Biblioteker
Last ned følgende biblioteker og installer.zip -filen til Arduino IDE ved å gå til Sketch> Include Library> Add. Zip library
MERK: VERSJONENE SPILLER !
* Kontroller at du har de riktige versjonene før du laster ned. Jeg vil anbefale å laste ned hvert bibliotek i Arduino IDE for å være på den sikre siden.
MD_Parola 3.0.1:
MD_MAX72XX 3.0.2:
DS3231 1.0.2:
Alternativt, I Arduino IDE går du til Skisse> Inkluder bibliotek> Administrer biblioteker og skriver i søkefeltet: "MAX72XX", og du bør se følgende (se bilde):
Installer bare MD_MAX72XX og MD_Parola. MD_MAXPanel er IKKE nødvendig.
Trinn 3: Testing av komponentene
Etter å ha installert bibliotekene, test komponentene individuelt for å sikre at de fungerer som de skal. Følg disse trinnene før du kobler alt sammen
For å teste DS3231 RTC -modul, koble DS3231 til Arduino (se ledninger nedenfor). Gå deretter til Arduino IDE til Filer> Eksempler> DS3231> DS3231_Test og last opp skissen. Åpne Serial Monitor og kontroller at du får riktig dato, klokkeslett, dag. Etc.
For å teste matriseskjermen må du først koble den til Arduino (se ledninger nedenfor). Deretter går du til Arduino IDE til Filer> Eksempler> MD_Parola> Parola_HelloWorld og laster opp skissen. Du bør se HELLO trykt på skjermen, og det kan hende at det skrives ut bakover. Hvis teksten er bakover, må du endre følgende linje:
#define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW
Til
#define HARDWARE_TYPE MD_MAX72XX:: FC16_HW
Last opp skissen igjen, så skal problemet løses.
Nå som vi har testet komponentene våre, er vi klare til å koble alt sammen!
Trinn 4: Kabling
Se diagrammet eller skjemaet eller tabellen
Trinn 5: KODE
Få koden her
Merk: Jeg brukte en kode opprinnelig av Electronic Projects, men endret den for å støtte nåværende (på tidspunktet for ferdigstillelse) biblioteker.
Klokkefunksjoner:
Klokken settes automatisk til å fortelle klokkeslett i 24 -timers format, men den kan enkelt endres til 12 timer. Klokken vil også vise temperaturen (både i Celsius og Fahrenheit). Jeg har også inkludert en funksjon som heter "Dvalemodus" som er satt til "AV" (se hvilemodus nedenfor for detaljer).
12 -timers format: For å stille klokken til å fortelle tid i 12 -timers format, må du kommentere linje 88
time = Clock.gethour (h12, PM); // 24 -timers format
Og kommenter linje 93 til 100
hvis (Clock.getHour (h12, PM)> = 13 || Clock.getHour (h12, PM) == 0)
{h = Clock.getHour (12, PM) - 12; } annet {h = Clock.getHour (h12, PM); }
Sove modus:
Dette er en funksjon som reduserer lysstyrken på klokken, spesielt i timene vi sover. Jeg tror ikke du vil våkne midt på natten og bli blindet av denne klokken. Det er veldig lyst, selv når det er på den laveste innstillingen. Hvis du vil aktivere hvilemodus, fjerner du kommentarene 177 til 184
if (h == 12 || h <8) // Tidsintervaller (i dette tilfellet fra 12.00 til 08.00) {P.setIntensity (0); // Sett skjermens lysstyrke til laveste innstilling} annet {P.setIntensity (6); // Sett displayets lysstyrke til 6 (15 er den lyseste)}
Merk: Jeg har støtt på et problem når jeg bruker hvilemodus mens klokken er satt til 12 -timers modus. Du vil legge merke til at den vil kjøre to ganger om dagen siden 08.00 og 20.00 tolkes begge som 8. Så hvis du setter hvilemodus til å være aktiv fra 21.00 til 07.00, vil den også være aktiv fra 9.00 til 19.00. Dette problemet oppstår imidlertid ikke hvis klokken er satt til 24 -timers modus.
Trinn 6: Konklusjon
Gratulerer!!! Du har en arbeidsklokke. Slik ble min [Clock Gallery]. Jeg håper at du ikke bare lærte litt mer om komponenter og koding, men at du likte reisen dit. Vennligst del med meg tankene dine om denne guiden på [email protected]. Dette er faktisk min første prosjektguide og håpet det tjente deg godt. Jeg håper å lage mange flere guider. I tillegg, hvis du har spørsmål, forslag og/eller forbedringer på prosjektet, kan du gjerne sende meg en melding.