Arduino digitale klok met behulp van RTC-module

Probeer Ons Instrument Voor Het Oplossen Van Problemen





In deze post gaan we een digitale klok bouwen met behulp van RTC of Real Time Clock-module. We zullen begrijpen wat 'RTC' -module is, hoe te communiceren met Arduino en wat het doet.

Door:



RTC-module is een circuit dat de huidige tijd nauwkeurig bijhoudt. Het heeft twee functies: het communiceert met microcontrollers en microprocessors om de huidige tijd te geven en fungeert als back-upcircuit om de tijd te behouden in geval van stroomuitval, aangezien het een ingebouwd batterij-back-upsysteem heeft.

We kunnen RTC vinden in alle elektronische apparaten waar tijd een belangrijke functie van de gadget is.



Onze computer of laptop behoudt bijvoorbeeld zijn tijd, zelfs nadat de stroom is uitgeschakeld of de batterij is verwijderd. Op het moederbord van elke computer kunnen we een CMOS-batterij vinden, die het RTC-circuit voedt.

Een soortgelijk circuit dat we in dit project gaan gebruiken.

RTC-module is een goedkoop apparaat dat te vinden is op alle e-commercesites en uw lokale elektronische projectwinkels.

Illustratie van typische RTC-module DS1307:

Bij de meeste RTC-modules wordt bij aankoop een batterij (CR2032) geleverd. Er zijn verschillende maten en modellen, het bovenstaande is mogelijk niet hetzelfde voor u. Maar zorg ervoor dat het modelnummer DS1307 is. De code die in dit bericht is geschreven, is alleen compatibel met DS1307.

Nu weet je iets over RTC's. Laten we nu verder gaan met het ontwerp van de digitale klok. Voordat u doorgaat met dit project, moet u de bibliotheek downloaden via de volgende links en installeren op uw IDE:

• DS1307RTC.h

Link: github.com/PaulStoffregen/DS1307RTC

• TimeLib.h

Link: github.com/PaulStoffregen/Time

Andere twee bibliotheken zouden vooraf op Arduino IDE zijn geïnstalleerd, als u de nieuwste versie gebruikt.

• LiquidCrystal.h

• Wire.h

Het circuit:

De circuitverbinding tussen arduino en LCD-scherm is standaard, die we vergelijkbare verbinding kunnen vinden op andere LCD-gebaseerde projecten. Het enige aanvullende onderdeel is de RTC.

Om draadcongestie tijdens het prototype te verminderen, kan de RTC rechtstreeks op de analoge pinnen van de arduino worden gestoken. Soldeer de SCl, SDA, Vcc en GND met mannelijke header-pinnen en steek deze A2 tot A5-pinnen zoals weergegeven in het prototype.

Prototype van de auteur:

Hoe RTC correct op Arduino te plaatsen:

Als uw RTC verschillende pinlocaties heeft en niet kan repliceren zoals hierboven weergegeven, kunt u altijd draden gebruiken voor aansluiting. Nu uw hardware-installatie is voltooid, gaan we naar het softwaregedeelte van het project.

Tijd instellen:

Zodra de RTC-module is geprogrammeerd, houdt deze de tijd bij, zelfs als deze uit de Arduino wordt verwijderd. De batterij moet minimaal een paar jaar meegaan.

Er is geen knop om de tijd aan te passen, het volgende programma zal de tijd in RTC instellen. De tijd wordt automatisch gesynchroniseerd met de tijd van uw computer, terwijl u de code compileert, dus zorg ervoor dat uw computer is ingesteld op de juiste tijd voordat u de programma's uploadt.
Upload deze 'SetTime' -code om de tijd in te stellen met RTC aangesloten:

Zodra deze code is geüpload, opent u de seriële monitor en verschijnt er een succesbericht dat de tijd is ingesteld.

Dit betekent dat uw verbinding tussen de RTC en de Arduino correct is en dat de tijd is ingesteld.

Upload nu de volgende code om de tijd op het LCD-scherm weer te geven.

Zodra dit is gebeurd, zou u de tijd en datum op het LCD-scherm moeten zien en actief moeten zijn.

Opmerking: De 'SetTime' -code is gewijzigd van de voorbeeldcode van DS1307RTC om de draadverbindingen voor de RTC-module te optimaliseren, door het uploaden van de originele code zal de tijd niet worden ingesteld.

Digitale wekker met Arduino

In dit bovenstaande hebben we geleerd hoe we de basis Arduino-klok kunnen bouwen met behulp van een RTC-module, in de volgende paragraaf onderzoeken we hoe deze kan worden opgewaardeerd naar een digitaal wekkercircuit met Arduino.

Er zijn sommige mensen die geen wekker nodig hebben, ze worden op een natuurlijke manier wakker en er zijn sommige mensen die wakker worden nadat de wekker een paar keer is afgegaan en er zijn mensen die een aantal keren op de snooze-knop drukken en laat met hun studie / werk gaan enkele excuses.

Het voorgestelde leuke wekkerproject kan het probleem confronteren met luiheid tijdens de ochtendwake. De meeste wekkers hebben een sluimerknop en een vooraf bepaalde uitschakeltijd voor het geval de gebruiker niet reageerde.

We hebben deze wekker ontworpen zonder een luie knop (snooze-knop) en het alarm gaat pas uit als de gebruiker op een knop drukt.

Deze klok kan de tijd weergeven in 12-uurs formaat en de datum in DD / MM / JJJJ formaat.

De tijd en datum worden weergegeven op een 16 x 2 LCD-scherm. Een RTC- of real-time kloktijdmodule zorgt voor het bijhouden van de tijd en kan de juiste tijd behouden, zelfs na een lange stroomuitval.

Er zijn 5 knoppen voorzien wiens functie binnenkort wordt uitgelegd. Het brein van het project Arduino kan elk model naar keuze, wij raden Arduino pro mini of Arduino nano aan vanwege zijn compacte formaat.

Laten we nu eens kijken naar schema's.

Het bovenstaande is dat het schema voor Arduino is om de verbinding weer te geven, pas het displaycontrast aan door de 10K-potentiometer te draaien.

Het onderstaande is de rest van het circuit:

Het circuit kan worden gevoed met een 9V 500mA muuradapter.

Functies van 5 knoppen:

S1 - Dit wordt gebruikt om het alarm te stoppen (het is ook een resetknop).
S2 - Wordt gebruikt voor het instellen van alarm. Door S2 lang in te drukken komt u in het alarminstelmenu.
S3 - Het wordt gebruikt om uren te verhogen.
S4 - het wordt gebruikt om minuten te verhogen.
S5 - wordt gebruikt om de alarmstatus om te schakelen. Als '*' op het LCD-scherm in de rechter benedenhoek staat, is het alarm AAN, als de '*' niet bestaat, zijn de alarmstatistieken UIT.

Meer informatie over het instellen van een alarm wordt onderaan het artikel uitgelegd.

Download de onderstaande bibliotheekbestanden:

Link1: github.com/PaulStoffregen/DS1307RTC
Link2: github.com/PaulStoffregen/Time

Nu moeten we de tijd instellen op de RTC-module, de tijd wordt gesynchroniseerd van uw pc naar de RTC-module.

Upload de onderstaande code om de tijd in te stellen en de seriële monitor te openen:

Nu heb je met succes de tijd ingesteld op RTC
Vervolgens moet u de volgende hoofdcode uploaden:

Na het uploaden van de bovenstaande code moet u de juiste tijd en datum op het display zien lopen.

Laten we nu eens kijken hoe u het alarm instelt:
• Houd S2 lang ingedrukt totdat u het Alarmmenu ziet.
• Druk op S3 en S4 om respectievelijk de uren en minuten in te stellen.
• Na de gewenste ingestelde tijd drukt u nogmaals op S2. Er staat 'Het alarm is ingesteld voor xx: xx uur'.
• Als het alarm is ingeschakeld, ziet u het symbool '*' op het display. Als het alarm is uitgeschakeld, is er geen symbool '*'.
• U kunt het alarm aan / uit zetten door S5 een halve seconde ingedrukt te houden. Druk niet lang op totdat '*' verdwijnt (het komt weer terug), druk gewoon een halve seconde lang om de alarmstatus te wisselen.

BELANGRIJKE NOTITIE:

De meest voorkomende fout bij het instellen van een alarm op een klok is het onbedoeld schakelen tussen AM / PM, wat resulteert in het niet afgaan van het alarm op het door ons gewenste tijdstip.

Om dit probleem tegen te gaan, is de voorgestelde wekkerinstelling ontworpen op 24-uurs klokformaat.

De tijd die op het LCD-scherm wordt weergegeven, is 12 uur met AM / PM-indeling, maar als u een alarm instelt met dit project, moet u een 24-uursindeling instellen van 0 tot 23 uur.

Bijvoorbeeld: als u om 21:00 uur de wekker wilt zetten, moet u 21 uur en 0 minuten instellen. Voor, 5 uur: 5 uur en 0 minuten enzovoort.

Prototype van de auteur:

Vind je dit project leuk? Heb je vragen over dit project, voel je dan vrij om in de reactie te zeggen, je krijgt misschien snel antwoord.

Videoclip:




Een paar: Bakenniveau-indicatorcircuit voor graantanks van maaidorsers Volgende: 3 hoogvermogen SG3525 zuivere sinusomvormercircuits