» Elektronik » Arduino »Binäre Uhr mit Wecker und Timer auf Arduino Uno

Binäre Uhr mit Wecker und Timer auf Arduino Uno


Ein paar Bretter erhalten Arduinound verschiedene Funkkomponenten, um sich mit Mikrocontrollern vertraut zu machen, beschloss der Autor, etwas Interessantes und gleichzeitig Nützliches zu tun. Da eine große Anzahl von LEDs auf Lager war, kam die Idee auf, eine binäre Uhr zu erstellen.

Auf der Elektronikseite ist eine Binäruhr nicht besonders kompliziert, aber der Autor hat die Aufgabe kompliziert und beschlossen, keine Tasten und LEDs zu speichern. Das Projekt bestand zunächst aus 22 LEDs, 6 Tasten und einem Hochtöner. Es gab auch die Idee, eine Uhr auf dem Arduino Mega zu montieren, da eine größere Anzahl von Stiften vorhanden war, aber die Schieberegister 74HC595 erwiesen sich als Rettung.

Material:
- Arduino Uno
- 2 große Steckbretter
- LEDs rot 7 Stk
- Grüne LEDs 7 Stk
- Blaue LEDs 6 Stk
- 2 gelbe und weiße LEDs
- Widerstände 220 Ohm 25 Stk
- Piezo-Summer 1 Stck
- 6 Tasten Taktknöpfe
- Shift-Ausgangsregister 74HC595 in DIP-16-Paket 3-tlg
- Verbindungsdrähte 90 Stk
- Echtzeituhrmodul basierend auf dem DS1307 RTC-Chip

Wie alles funktionieren wird.
Es gibt ungefähr 10 Arten von Binäruhren. Einige zeigen die Zeit im BCD-Format (Binary Decimal) an, andere als Binärzahlen. Da der Autor die BCD-Uhr nicht besonders mag, hat er beschlossen, seine reine Binärdatei zu erstellen. Einige Leute finden es schwieriger zu lesen, aber der Unterschied ist nicht groß, weil die Übersetzung von Zahlen von binär nach dezimal einfach ist. Voraussetzung für den Schöpfer der Uhr war auch die Angabe der Sekunden auf der Uhr.

Zusätzlich verfügt die Uhr über 6 Tasten:
Set - ist verantwortlich für den Uhr- / Alarm-Einstellmodus und das Speichern des Parameters im Einstellmodus.
Modus - verantwortlich für das Umschalten zwischen den Modi Uhr, Alarm und Timer.
Nach oben - erhöht in der Einstellung Uhr / Alarm / Timer den Parameter um eins. Im Wecker und Timer ist er für das Aktivieren und Deaktivieren des ausgewählten Modus verantwortlich. Wenn ein Signal ausgelöst wird, wird das Alarm- / Timersignal ausgeschaltet.
Nach unten - In der Einstellung Uhr / Alarm / Timer wird der Parameter um eins verringert. Der Timer hält an, ohne den Countdown zurückzusetzen. Wenn der Alarm ausgelöst wird, wird das Signal 5 Minuten lang übertragen.
24/12 - Ändern Sie das Zeitformat.
Dim - verantwortlich für das Ein- und Ausschalten der LEDs (wenn die LEDs ausgeschaltet sind, funktionieren die verbleibenden Tasten nicht mehr).
LED-Positionierungsdiagramm:
Binäre Uhr mit Wecker und Timer auf Arduino Uno


Komponentenverbindung
Der Autor verbindet alle LEDs in Reihe und mit einem Widerstand. Der Widerstand ist an einen der Anschlüsse der LEDs gelötet, egal welcher. LEDs werden über Schieberegister verbunden, dieser Chip hat 16 Kontakte.Mit dieser Anzahl von Stiften können Sie eine große Anzahl von Stiften verwenden, wobei Sie nur 3 Stifte für das Arduino benötigen.

Pinbelegung des Schieberegisters 74HC595:
Q0-Q7 sind die Ergebnisse des Registers, an das die LEDs angeschlossen werden.
Vcc - Ein 5-V-Stromversorgungsstift wird an ihn angelegt.
GND - Masse verbunden mit GND auf Arduino.
OE - Der Pin ist für die invertierte Aktivierung der Pins verantwortlich, wird jedoch nicht verwendet, sondern wird einfach gegen Masse kurzgeschlossen.
MR ist eine invertierte Registerlöschung, es muss nicht gesteuert werden, daher wird es an eine 5-V-Stromversorgung angeschlossen.
ST_CP - Pin ist für die Aktualisierung des Status des Registers verantwortlich. Bei der Aufzeichnung des Status muss nach der Aufzeichnung - HIGH LOW angewendet werden, um den Status der Ausgänge zu aktualisieren. Es muss mit einem Pin am Arduino verbunden werden. Sie können diesen Pin in drei Registern parallel anschließen.
SH_CP - Pin, verantwortlich für die Verschiebung des Registers um 1 Bit. Es muss mit einem Pin am Arduino verbunden werden. Sie sind auch parallel auf Mikroschaltungen geschaltet.
DS - Daten werden an diesen Pin gesendet, sie sind mit dem Pin am Arduino verbunden.
Q7 '- Dieser Pin wird für die Kaskadenverbindung mit anderen Registern 74HC595 verwendet.

Schaltplan:


Der Piezo-Summer wird in Reihe mit dem Widerstand mit dem dritten Arduino-Pin verbunden. Bevor der Hochtöner in die Schaltung aufgenommen wurde, hat die Autorin untersucht, welche Pins PWM unterstützen, da dies für sie obligatorisch ist. Auf dem Arduino Uno unterstützt PWM 3, 5, 6, 9, 10 und 11 Pins.


Die Tasten werden über im Arduino eingebaute Widerstände verbunden, wobei eine Seite der Tasten mit Masse und die andere Seite mit den Arduino-Pins verbunden ist.


Das endgültige Design sieht also so aus:


Auf Breadboard bauen
Nachdem der Autor zusätzliche Details erhalten hatte, begann er, das Projekt gemäß den Schemata auf einem Steckbrett zusammenzusetzen. Das Aussehen war zu erwarten, da das Steckbrett die Freiheit bei der Platzierung von Bauteilen einschränkt und die hervorstehenden Drähte kein ästhetisches Vergnügen schaffen. Das Steckbrett ist aber doch für Steckbrettmodelle gedacht, nicht aber für fertige Geräte.


Programmcode.
Der Autor hatte ein Gespür für Programmierung und beschloss, selbst Code zu schreiben, ohne die Entwicklungen anderer zu nutzen. Der erste Schritt bestand darin, ein Unterprogramm zu schreiben, das dafür verantwortlich ist, dass alle Dioden blinken und beim Einschalten das Piezosignal geben. Diese Funktion hilft bei der Überprüfung der Integrität der Schaltung, ähnlich wie bei vielen Geräten.

Die Skizze ist ziemlich groß geworden, dann können Sie die Hauptmerkmale betrachten.

LED arbeiten.
Da auf die LEDs über das Schieberegister zugegriffen wird, mussten zunächst mehr Routinen für die LEDs implementiert werden. Zur einfacheren Bedienung mit Dioden wurden eine Reihe zusätzlicher Funktionen implementiert. Verschiedene Effekte der Animation von Dioden sind implementiert. Wenn die Uhr nicht eingestellt ist, beginnen die für die Stunden und Minuten verantwortlichen Dioden zu blinken (wie eine normale Uhr blinkt, wenn sie nicht eingestellt ist). Die für Sekunden verantwortlichen LEDs haben auch eine eigene Animation, die Diode kann im Alarmmodus oder im Uhreinstellungsmodus nach links und rechts laufen.

Hauptschleife.
Das Programm ist wie folgt konfiguriert: Die Uhr zeigt Informationen abhängig vom aktuellen Status an und ändert ihren Status abhängig von der Verwendung von Schaltflächen und Ereignissen. Es sieht alles nach einer beträchtlichen Anzahl verschachtelter Bedingungen aus. Der Status der Dioden wird jedes Mal aktualisiert, nachdem der Status von Timern und Tasten mit einem Aufruf an ihren Handler überprüft wurde.

Auch der Autor hat großartige Arbeit für die korrekte Bedienung der Eingabetasten und Timer geleistet. Der Quellcode der Skizze kann unter dem Artikel heruntergeladen werden.


Layout starten
Nach dem Einschalten des Projekts funktionierte das Gerät auf den ersten Blick korrekt und stabil. Aber der Autor fand einen Fehler, die Uhr war um eine Sekunde pro Stunde zurück, für eine lange Zeit wäre es ein großer Fehler.


Nachdem dieses Problem untersucht worden war, wurde festgestellt, dass das ursprüngliche Arduino Uno einen Keramikresonator verwendet und es an Genauigkeit für die Zeitmessung über lange Zeiträume mangelt. Die rationalste Lösung bestand darin, eine Echtzeituhr zu kaufen. Aufgrund dieses Moduls verirrt sich die Uhrzeit beim Ausschalten nicht. Der Autor hat das Grove RTC-Modul von Seeed Studio gekauft. Es ist eine fertige Platine mit einem Clock-Chip. Der Autor verband die Pins des SDA- und SCL-Moduls mit dem Arduino an den Pins von A4 und A5, GND mit Masse. Da die 5-V-Stromversorgung von der Clock-Karte belegt wird, konnte das Modul nirgends angeschlossen werden. Der Autor hat beschlossen, das Modul über einen der digitalen Pins mit Strom zu versorgen, der ständig mit Strom versorgt wird.Außerdem musste der Autor den Quellcode ändern und eine Bibliothek mit Echtzeituhren hinzufügen.


Montage der Uhr
Nach einer langen Arbeit am Code ist es an der Zeit, dem Gerät ein vollständiges Aussehen zu verleihen und es vom Steckbrett auf die Leiterplatte zu übertragen. Zunächst musste die Verkabelung für die Platine vorgenommen werden. Hierfür wurde Fritzing verwendet, da der Autor bereits eine Vorstellung vom Aussehen der Uhr hatte und ein Gerätediagramm erstellte. Der Autor hat das Board auch manuell nachgezeichnet, es hat viel Zeit gekostet.
Projekt zur Herstellung von Leiterplatten:


Die Leiterplattenherstellung wurde in China bestellt. Seeed Studio verfügt über einen Fusion PCB Board Service. Durch Fritzing wurde die Datei in das Extended Gerber-Format exportiert, viele Board-Hersteller arbeiten damit. Zwei Wochen später erhielt der Autor die lang erwartete Gebühr per Post.


Es blieb nur noch ein wenig staubige Teile auf die Platine zu löten. Das Endergebnis nach dem Löten sah viel besser aus als das Layout auf dem Steckbrett.


Der Autor des Projekts hat lange hart gearbeitet und das bekommen, was er wollte - eine einzigartige Binäruhr mit Timer und Wecker. Mit dem Batteriefach kann die Uhr überall platziert werden. Arduino hat die Erwartungen erfüllt und die Aufgabe vollständig gemeistert.

binclock-master.zip [23,53 Kb] (Downloads: 175)
10
10
10

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...