Inhoudsopgave:

Arduino Matrix-klok - Ajarnpa
Arduino Matrix-klok - Ajarnpa

Video: Arduino Matrix-klok - Ajarnpa

Video: Arduino Matrix-klok - Ajarnpa
Video: DIY Arduino LED Clock using MAX7219 LED Matrix Display and DS3231 RTC module | Arduino LED Clock 2024, November
Anonim
Arduino Matrix Klok
Arduino Matrix Klok

Beschrijving:

Bouw uw klok met behulp van een Arduino, een matrixdisplay en een Real Time Clock (RTC) -module. Dit is een leuk en eenvoudig project waarvan ik denk dat het geweldig is voor beginners. De klok gebruikt de RTC-module om zowel de tijd als de dag, maand en jaar nauwkeurig bij te houden. Daarnaast heeft de module een ingebouwde temperatuursensor. U kunt hier meer leren over de DS3231-module en over de I2C-communicatiebus die ervoor wordt gebruikt. Ten slotte zullen we een Dot Matrix-display gebruiken om natuurlijk de tijd, dag van de week, maand.etc. weer te geven. U kunt hier meer lezen over het display en de MAX7219 IC-driver in de onderstaande datasheet.

U kunt hier ook de pdf-versie van dit project downloaden. Het is vrijwel hetzelfde als dit instructable.

[UPDATE: 22-2-19] Gebruik de pdf-gids niet, ik heb deze instructable bijgewerkt, maar die wijzigingen zijn nog niet weergegeven in de pdf.

Stap 1: Verzamel componenten

De componenten die je nodig hebt voor dit project:

  • Max7219 Dot Matrix-display [Koop hier] [Datasheet]
  • RTC DS3231 [Koop hier] [Gegevensblad]
  • 3V CR3032 batterij (voor DS3231)

Daarnaast heb je een Arduino van welke aard dan ook nodig (bij voorkeur een Nano om de grootte van het project te minimaliseren), een breadboard, jumperdraden en de Arduino IDE die op je pc is geïnstalleerd.

Stap 2: Bibliotheken

Bibliotheken
Bibliotheken

Download de volgende bibliotheken en installeer het.zip-bestand op de Arduino IDE door naar Sketch> Include Library> Add. Zip-bibliotheek te gaan

LET OP: DE VERSIES ZIJN BELANGRIJK!

* Controleer of u de juiste versies hebt voordat u gaat downloaden. Ik raad aan om voor de zekerheid elke bibliotheek binnen de Arduino IDE te downloaden.

MD_Parola 3.0.1:

MD_MAX72XX 3.0.2:

DS3231 1.0.2:

Alternatief, Ga in de Arduino IDE naar Sketch > Include Library > Manage Libraries en typ in de zoekbalk: "MAX72XX" en je zou het volgende moeten zien (zie afbeelding):

Installeer alleen MD_MAX72XX en MD_Parola. MD_MAXPanel is NIET nodig.

Stap 3: Uw componenten testen

Test na het installeren van de bibliotheken uw componenten afzonderlijk om er zeker van te zijn dat ze naar behoren werken. Volg deze stappen voordat u alles samen aansluit

Om de DS3231 RTC-module te testen, sluit u de DS3231 aan op de Arduino (zie bedrading hieronder). Ga vervolgens in de Arduino IDE naar Bestanden > Voorbeelden > DS3231 > DS3231_Test en upload de schets. Open de seriële monitor en controleer of u de juiste datum, tijd, dag.etc krijgt.

Om het matrixdisplay te testen, sluit u het eerst aan op de Arduino (zie Bedrading hieronder). Ga vervolgens in de Arduino IDE naar Bestanden > Voorbeelden > MD_Parola > Parola_HelloWorld en upload de schets. U zou HELLO op het display moeten zien staan en het kan al dan niet achterstevoren worden afgedrukt. Als de tekst achterstevoren is, moet u de volgende regel wijzigen:

#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW

Tot

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

Upload de schets opnieuw en het probleem zou opgelost moeten zijn.

Nu we onze componenten hebben getest, zijn we klaar om alles met elkaar te verbinden!

Stap 4: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

Raadpleeg het diagram of schema of tabel:

Stap 5: CODE

Download hier de code

Opmerking: ik gebruikte een code die oorspronkelijk van Electronic Projects was, maar heb deze aangepast om de huidige (op het moment van voltooiing) bibliotheken te ondersteunen.

Klok Kenmerken:

De klok wordt automatisch ingesteld om de tijd in 24-uurs formaat aan te geven, maar kan eenvoudig worden gewijzigd in 12-uurs. De klok geeft ook de temperatuur weer (zowel in Celsius als Fahrenheit). Ik heb ook een functie toegevoegd met de naam 'Slaapmodus' die is ingesteld op "UIT" (zie Slaapmodus hieronder voor details).

12-uurs formaat: om de klok in te stellen om de tijd in 12-uurs formaat te laten zien, moet je commentaarregel 88. plaatsen

uur =Klok.gethour(u12, PM); //24-uurs formaat

En uncomment regels 93 t/m 100

if (Clock.getHour(u12, PM)>=13 || Clock.getHour(u12, PM)==0)

{ h = Clock.getHour (12, PM) - 12; } else { h = Clock.getHour(h12, PM); }

Slaapstand:

Dit is een functie die helpt om de helderheid van de klok te verminderen, vooral tijdens de uren dat we slapen. Ik denk niet dat je midden in de nacht wakker wilt worden en verblind door deze klok. Zelfs op de laagste stand is hij erg helder. Om de slaapmodus in te schakelen, verwijder je commentaar op regels 177 tot 184

if(h == 12 || h<8) //Tijdsintervallen (in dit geval van 12.00 uur tot 08.00 uur) { P.setIntensity (0); // Stel de helderheid van het scherm in op de laagste instelling } else { P.setIntensity (6); // Stel de helderheid van het scherm in op 6 (15 is de helderste)}

Opmerking: ik ben een probleem tegengekomen bij het gebruik van de slaapmodus terwijl de klok is ingesteld op 12-uursmodus. U zult merken dat het twee keer per dag wordt uitgevoerd, aangezien 8.00 uur en 20.00 uur beide worden geïnterpreteerd als 8. Dus als u de slaapmodus instelt om actief te zijn van 21.00 uur tot 7.00 uur, dan zal het ook actief zijn van 9.00 uur tot 19.00 uur. Dit probleem doet zich ECHTER niet voor als de klok is ingesteld op de 24-uursmodus.

Stap 6: Conclusie

Proficiat!!! Je hebt een werkende klok. Zo is de mijne geworden [Clock Gallery]. Ik hoop dat je niet alleen wat meer hebt geleerd over componenten en codering, maar dat je genoten hebt van de reis ernaartoe. Deel alstublieft uw mening over deze gids op [email protected]. Dit is in feite mijn eerste projectgids en ik hoopte dat het je goed van pas kwam. Ik hoop nog veel meer handleidingen te maken. Als je vragen, suggesties en/of verbeteringen aan het project hebt, stuur me dan gerust een bericht.

Aanbevolen: