Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Schließen Sie die Schaltung an
- Schritt 2: Vorbereiten des Summerteils
- Schritt 3: Vorbereiten des LED-Panels
- Schritt 4: Vorbereiten des Schalters (Druckknopf eigentlich)
- Schritt 5: LED-Streifen vorbereiten
- Schritt 6: Vorbereiten des Kapazitätssensors
- Schritt 7: Vorbereiten der Stromversorgung
- Schritt 8: Anschließen an Arduino
- Schritt 9: Gehäuse
- Schritt 10: Programmierzeit
- Schritt 11: Korrekturmechanismus
- Schritt 12: So verwenden Sie alle Funktionen
- Schritt 13: Fazit
- Schritt 14: Update: Nach einer Woche Nutzung
Video: DIY Arduino Binärwecker - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Es ist wieder die klassische Binäruhr! Diesmal aber mit noch mehr Zusatzfunktion! In diesem anweisbaren zeige ich Ihnen, wie Sie einen binären Wecker mit Arduino bauen, der Ihnen nicht nur Zeit, sondern auch Datum, Monat, sogar mit Timer- und Alarmfunktionen, die auch als Nachttischlampe verwendet werden können, zeigen kann! Lassen Sie uns ohne weiteres loslegen!
Hinweis: Dieses Projekt verwendet kein RTC-Modul, daher hängt die Genauigkeit von der verwendeten Platine ab. Ich habe einen Korrekturmechanismus eingefügt, der die Zeitdrift über einen bestimmten Zeitraum korrigiert, aber Sie müssen herumexperimentieren, um den richtigen Wert für den Zeitraum zu finden (mehr dazu weiter unten), und selbst mit Korrekturmechanismus wird es immer noch driften über lange Zeit (im Vergleich zu ohne). Bei Interesse können Sie die Verwendung des RTC-Moduls in diesem Projekt implementieren
Lieferungen
5mm LED (beliebige Farbe, ich habe 13 weiße LEDs mit einer RGB-LED als Indikator verwendet) --- 14 Stück
Arduino Nano (andere funktionieren möglicherweise) --- 1 Stück
Mikroschalter --- 1 Stück
Kleines Stück Alufolie
Montageplatte (für Gehäuse, aber Sie können Ihre eigenen entwerfen)
Stück weißes Papier (oder eine andere Farbe)
Etwas Plastikfolie (die als Buchcover verwendet wird)
Bündel Drähte
Summer --- 1 Stück
NPN-Transistor --- 1pc
Widerstände 6k8 --- 14 Stück, 500R --- 1 Stück, 20R (10Rx2) --- 1 Stück, 4k7 --- 1 Stück
Stromversorgung für das Projekt (ich habe einen Li-On-Akku verwendet)
5050 LED-Streifen und ein Schiebeschalter (optional)
Schritt 1: Schließen Sie die Schaltung an
Ich unterteile diesen Schritt in:
1) Der Summerteil
2) Das LED-Panel
3) Der Schalter (Druckknopf)
4) LED-Streifen
5) Der Kapazitätssensor
6) Stromversorgung
7) Verbinden Sie alle mit Arduino
Meistens ist dies nur ein Schritt "Folgen Sie dem Schema". Schauen Sie sich den Schaltplan oben an oder laden Sie ihn herunter und drucken Sie ihn aus!
Schritt 2: Vorbereiten des Summerteils
Wenn Sie bereits Summer mit Arduino verwendet haben, wissen Sie, dass es nicht laut genug ist, wenn wir es direkt mit Arduino verbinden. Also brauchen wir einen Verstärker. Um den Verstärker zu konstruieren, benötigen wir einen NPN-Transistor (im Grunde funktioniert jeder NPN, ich habe S9013 verwendet, weil ich ihn aus einem alten Projekt habe) und einen Widerstand zur Strombegrenzung. Identifizieren Sie zunächst Kollektor, Emitter und Basis des Transistors. Ein wenig googeln des Datenblattes wird dafür funktionieren. Löten Sie dann den Kollektor des Transistors an den Minuspol des Summers. Am Pluspol des Summers löten wir einfach ein Stück Draht an, damit wir es später an unseren Arduino löten können. Löten Sie danach den 500R-Widerstand (oder einen ähnlichen Widerstandswert) an die Basis des Transistors und löten Sie vom Widerstand ein weiteres Stück Draht für die zukünftige Verwendung. Schließlich löten Sie die beiden 10R-Widerstände in Reihe an den Emitter des Transistors und schließen Sie einen weiteren Draht von den Widerständen an.
Wirklich, siehe Schaltplan.
p/s: Ich weiß immer noch nicht wirklich, wie man einen Widerstand für den Transistor auswählt, als ich dies schreibe. Der verwendete Wert I wird empirisch gewählt.
Schritt 3: Vorbereiten des LED-Panels
Stecken Sie die LEDs und den Widerstand entsprechend in die Prototyping-Platine und löten Sie sie. Das ist es. Folgen Sie dem Schema. Falls Sie sich für den von mir verwendeten Abstand interessieren, 3 Löcher für jede Spalte und zwei Löcher für jede Reihe (siehe Bild). Und die Anzeige-LED? Ich habe es zufällig angeschlossen.
Nachdem Sie die LEDs und den Widerstand an die Platine gelötet haben, verbinden Sie alle positiven Anschlüsse der LEDs miteinander. Dann löten Sie Drähte nacheinander an jeden der Widerstände an den negativen Anschlüssen der LEDs, damit wir sie später an Arduino löten können.
HINWEIS: Dieser Schritt könnte Sie verwirren. Denken Sie daran, anstatt die gesamte Masse miteinander zu verbinden, verbinden wir alle positiven Anschlüsse und den negativen Anschluss mit dem einzelnen Pin auf Arduino. Daher verwenden wir den Arduino GPIO-Pin als Masse, nicht Vcc. Falls Sie es versehentlich rückwärts anschließen, machen Sie sich keine Sorgen. Sie können alle HIGH zu LOW und LOW zu HIGH in der LEDcontrol-Funktion ändern.
Schritt 4: Vorbereiten des Schalters (Druckknopf eigentlich)
Für den Schalter (ich nenne ihn Schalter, weil ich einen Mikroschalter verwendet habe, aber Sie wissen, dass es ein Druckknopf ist) benötigen wir einen 4k7-Pulldown-Widerstand und natürlich den Schalter selbst. Ah, vergiss nicht, ein paar Drähte vorzubereiten. Beginnen Sie, indem Sie den Widerstand und ein Stück Draht an die gemeinsame Masse (COM) des Mikroschalters anlöten. Löten Sie dann ein weiteres Stück Draht an den normalerweise geöffneten (NO) des Mikroschalters. Schließlich befestigen Sie einen weiteren Draht an den Widerstand. Sichern Sie es mit etwas Heißkleber.
Wissensecke: Warum brauchen wir einen Pull-Down-Widerstand?
"Wenn Sie den digitalen I/O-Pin von allem trennen, kann die LED unregelmäßig blinken. Dies liegt daran, dass der Eingang "schwebt" - das heißt, er gibt zufällig entweder HIGH oder LOW zurück. Deshalb benötigen Sie einen Pull-up oder Pulldown-Widerstand im Stromkreis." -- Quelle: Arduino-Website
Schritt 5: LED-Streifen vorbereiten
LED-Streifen ist für die Nachttischlampe, die optional ist. Einfach LED-Streifen und Schiebeschalter in Reihe schalten, nichts Besonderes.
Schritt 6: Vorbereiten des Kapazitätssensors
Ok siehe Bild. Grundsätzlich werden wir den Draht nur an einem kleinen Stück Aluminiumfolie befestigen (da Aluminiumfolie nicht gelötet werden kann) und dann auf ein kleines Stück Montageplatte kleben. Zur Erinnerung, stellen Sie sicher, dass Sie die Aluminiumfolie nicht vollständig abkleben. Lassen Sie etwas davon für direkten Kontakt frei.
Schritt 7: Vorbereiten der Stromversorgung
Da ich einen Li-On-Akku als Stromversorgung verwendet habe, benötige ich ein TP4056-Modul zum Laden und Schutz und einen Aufwärtswandler, um die Spannung auf 9V umzuwandeln. Wenn Sie sich für die Verwendung eines 9-V-Wandadapters entschieden haben, benötigen Sie möglicherweise eine DC-Buchse oder schließen Sie sie einfach direkt an. Beachten Sie, dass der Widerstandswert für den Verstärker für 9 V ausgelegt ist und wenn Sie eine andere Spannung verwenden möchten, müssen Sie möglicherweise den Widerstand ändern.
Schritt 8: Anschließen an Arduino
Folgen Sie dem Schema! Folgen Sie dem Schema! Folgen Sie dem Schema!
Schließen Sie nicht den falschen Pin an, sonst wird es seltsam.
Schritt 9: Gehäuse
Die Abmessung meines Designs beträgt 6,5 cm * 6,5 cm * 8 cm, daher ist es etwas sperrig. Es besteht aus einem Frontfenster für die LED-Anzeige und einem oberen Fenster für die Nachttischlampe. Für mein Design siehe Bilder.
Schritt 10: Programmierzeit
Laden Sie meine Skizze unten herunter und laden Sie sie auf Ihr Arduino hoch. Wenn Sie nicht wissen, wie das geht, machen Sie dieses Projekt nicht! Nee, nur ein Scherz, hier ist ein gutes Tutorial dazu: Sketch to arduino hochladen
Öffnen Sie dann den seriellen Monitor, und Sie sollten sehen, dass er die aktuelle Uhrzeit ausgibt. Um die Zeit einzustellen, gehen Sie wie folgt vor.
Stunde einstellen: h, XX -- wobei xx die aktuelle Stunde ist
Minute einstellen: min, XX -- xx ist die aktuelle Minute
Sekunde einstellen: s, XX
Datum einstellen: d, XX
Monat einstellen: Mo, XX
Wenn der obige Kommentar ausgeführt wird, sollte er Ihnen den gerade eingestellten Wert zurückgeben. (Wenn Sie beispielsweise die Stunde mit h, 15 einstellen, sollte im seriellen Monitor Hour: 15 zurückgegeben werden.
Für den Kapazitätssensor müssen Sie ihn möglicherweise kalibrieren, bevor er funktioniert. Drücken Sie dazu zweimal den Mikroschalter und schauen Sie auf den seriellen Monitor. Es sollte eine Reihe von Zahlen ausgeben. Legen Sie nun Ihren Finger auf den Kapazitätssensor und beachten Sie den Bereich der Nummer. Ändern Sie als nächstes die Variable "captrigger". Nehmen wir an, Sie erhalten 20-30, wenn Sie gedrückt werden, und setzen Sie dann captrigger auf 20.
Die Skizze verwendet die ADCTouch-Bibliothek, stellen Sie sicher, dass Sie sie installiert haben.
Schritt 11: Korrekturmechanismus
Der Zeitraum für den Korrekturmechanismus in meinem Code ist auf den für mich genauen Zeitraum eingestellt. Wenn die Zeit immer noch nicht genau ist, müssen Sie den Wert der Variablen "corrdur" ändern
Der Kordur ist jetzt im neuesten Update standardmäßig auf 0 eingestellt.
Der Wert von corrdur gibt an, wie viele Millisekunden es dauert, um eine Sekunde zu verlangsamen
Um den Wert von corrdur herauszufinden, verwenden Sie die Formel:
2000/(y-x)/x)
wobei x=tatsächliche Zeitdauer und y=Zeitdauer der Uhr, beide in Sekunden
Um den Wert von x und y zu finden, müssen Sie ein kleines Experiment durchführen.
Stellen Sie die Uhrzeit der Uhr auf die aktuelle Uhrzeit ein und zeichnen Sie die Anfangszeit auf (die tatsächliche Anfangszeit und die Anfangszeit der Uhr sollten gleich sein). Notieren Sie nach einer Weile (einigen Stunden) die endgültige tatsächliche Uhrzeit und die letzte Uhrzeit der Uhr.
x=aktuelle Endzeit-Anfangszeit und y=Uhr Endzeit-Anfangszeit
Ändern Sie dann den Wert von corrdur im Code und laden Sie ihn erneut auf das Arduino hoch.
Wiederholen Sie dann den Test und dieses Mal änderte sich die Formel zu:
2000/((2/z)+(y-x/x))
Wobei x und y dasselbe sind wie zuvor, während z der aktuelle Korrdurwert ist.
Laden Sie es erneut hoch und führen Sie den Test immer wieder durch, bis er für Sie präzise genug ist.
Falls Ihre Uhr immer noch schneller wird, obwohl corrdur auf 0 gesetzt ist (bedeutet, dass kein Korrekturmechanismus vorhanden ist), müssen Sie die Sekunde ++ in die Sekunde ändern - im Korrekturmechanismus-Teil des Codes (ich habe es kommentiert), setzen Sie corrdur auf 0, dann finde die nr. von Millisekunden dauert es, um eine Sekunde zu beschleunigen.
Schritt 12: So verwenden Sie alle Funktionen
Sie können den Modus durch Drücken des Mikroschalters ändern.
Im ersten Modus wird einfach die Zeit angezeigt. Wenn die Kontrollleuchte 1 Mal pro Sekunde blinkt, ist der Alarm ausgeschaltet. Wenn 2 Mal pro Sekunde, ist der Alarm aktiviert. Sie können den Alarm im ersten Modus 10 Minuten lang snoozen, indem Sie den Kapazitätssensor drücken.
Im zweiten Modus wird das Datum angezeigt. Drücken des Kapazitätssensors tut nichts.
Im dritten Modus können Sie den Timer einstellen. Durch Drücken des Kapazitätssensors wird der Timer eingeschaltet und Sie sollten sehen, dass die Kontrollleuchte zu blinken beginnt. Der Kapazitätssensor wird auch verwendet, um die Timerzeit einzustellen. Der Timerbereich reicht von 1 Minute bis 59 Minuten.
Im vierten Modus können Sie die Alarmstunde mit dem Kapazitätssensor einstellen
Im fünften Modus können Sie die Alarmminute mit dem Kapazitätssensor einstellen.
Im sechsten Modus wird durch Drücken des Kapazitätssensors die Minute auf 30 und die Sekunde auf 0 zurückgesetzt, ohne die Stunde zu ändern. Das heißt, solange Ihre Uhr nicht über 30 Minuten abweicht, können Sie sie in diesem Modus neu kalibrieren.
Der siebte Modus ist der Nichtstun-Modus für den Fall, dass der Kapazitätssensor beim Laden ausfällt.
Oh, um den Alarm auszuschalten, drücken Sie einfach den Mikroschalter. (AKTUELLES UPDATE ZUM EINSCHLIEßEN VON ALARM SNOOZE)
Nun, wie wäre es mit dem Lesen der Uhr? Es ist einfach! Binäre Uhr lesen -- Wikihow Vielleicht fühlen Sie sich zuerst komisch, aber Sie werden sich daran gewöhnen!
Schritt 13: Fazit
Warum ich dieses Projekt gestartet habe. Am Anfang liegt es daran, dass ich eine alte Digitaluhr herumliegen habe und sie in einen Wecker verwandeln möchte. Leider stellt sich heraus, dass die alte Uhr kaputt ist. Also dachte ich mir, warum nicht einen mit Arduino bauen? Mit ein wenig Google-Suche fand ich dieses binäre Uhrenprojekt ohne RTC auf von Cello62 anweisbar. Es hat jedoch nicht die gewünschte Weckerfunktion, also nehme ich den Code und ändere ihn selbst. Und das Projekt ist geboren. Darüber hinaus sah ich den Uhrenwettbewerb, der kürzlich auf instructable lief, was mir noch mehr Motivation gab, dies zu tun. Wie auch immer, dies ist immer noch mein erstes Projekt mit Arduino, also eine Reihe möglicher Verbesserungen.
Zukünftige Verbesserung:
1) Verwenden Sie RTC
2) Stellen Sie drahtlos Alarm oder Zeit oder Timer ein!
3) An welche Funktion ich auch immer denke
Schritt 14: Update: Nach einer Woche Nutzung
Abgesehen von dem offensichtlichen Problem - Zeitdrift - ist das nächste, was ich sagen würde, der Stromverbrauch. Zuerst steigere ich die Spannung auf 9V, die dann vom Linearregler in Arduino heruntergesetzt wird. Der Linearregler ist sehr ineffizient. Die Uhr dauert nur EINEN TAG. Das heißt, ich muss es jeden Tag aufladen. Das ist nicht die größte Sache, bis Sie feststellen, dass das gesamte System nur etwa 50 % effizient ist. Da mein Akku 2000 mAh hat, könnte ich jeden Tag berechnen, wie viel Energie verschwendet wird.
Stromverschwendung=(7,4Wh*10%)+(7,4Wh*90%*50%)=4,07Wh pro Tag
Das sind 1,486 kWh pro Jahr! Das kann zum Kochen von, äh, 283 g Wasser (von 25 C bis 100 C) verwendet werden? Aber wie auch immer, ich werde die Effizienz der Uhr verbessern. Der Weg, dies zu tun, besteht darin, den Linearregler überhaupt nicht zu verwenden. Das bedeutet, dass wir den Aufwärtswandler so einstellen müssen, dass er 5V direkt an den 5V-Pin von Arduino ausgibt. Um die Energieverschwendung noch weiter zu minimieren, muss ich als nächstes die beiden On-Board-LEDs (Pin13 und Power) entfernen, da sie 0,95 Wh pro Tag verschwenden. Leider bin ich beim SMD-Löten total noob, also kann ich nur die Schiene auf der Platine schneiden. Danach muss ich den Emitterwiderstand am Summer und der Nachttischlampe entfernen (LED-Streifen funktioniert nicht bei 5V). Aber bedeutet das, dass Sie diese erstaunliche Funktion aufgeben müssen? Nein! Sie haben hier zwei Möglichkeiten: Verwenden Sie die normale 5mm LED-Diode oder verwenden Sie 5V LED-Streifen. Aber für mich war ich schon müde, dieses Projekt die ganze letzte Woche zu machen, also beschloss ich, dieses Feature aufzugeben. Ich habe den Schalter jedoch ursprünglich für die Lichtfunktion zum Ein- oder Ausschalten des Uhrenpanels verwendet, um weiter Energie zu sparen, aber am Ende blinkt die LED, wenn ich es ausschalte. Bug Feature geworden? Ich weiß es nicht (jemand weiß es bitte unten).
Am Ende der Modifikation hält die Uhr nun mehr als 2 Tage!
Als nächstes habe ich ein weniger ernstes Problem mit der Uhr. Während des Ladevorgangs würde der Kapazitätssensor verrückt spielen, also füge ich einen weiteren Modus hinzu, der absolut nichts tut.
Da es sehr unpraktisch ist, jeden Tag an den Computer anzuschließen, um ihn zurückzusetzen, habe ich einen weiteren Modus hinzugefügt, der die Minute auf 30 und die Sekunde auf 0 setzt. Das heißt, Sie können ihn um jede halbe Stunde zurücksetzen!
Empfohlen:
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 9 Schritte
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um die Zeit auf dem LCD anzuzeigen
DIY, wie man eine cool aussehende Uhr macht – StickC – Einfach zu tun: 8 Schritte
DIY Wie man eine cool aussehende Uhr macht - StickC - Einfach zu machen: In diesem Tutorial lernen wir, wie man ESP32 M5Stack StickC mit Arduino IDE und Visuino programmiert, um eine Zeit auf dem LCD anzuzeigen und die Zeit auch mit den StickC-Tasten einzustellen
DIY Bluetooth Boombox Lautsprecher - HOW TO: 13 Schritte (mit Bildern)
DIY Bluetooth Boombox Lautsprecher | WIE MAN: Hallo! Vielen Dank, dass Sie sich dieses Projekt angesehen haben, dieses ist auf meiner Favoritenliste! Ich freue mich sehr, dieses tolle Projekt realisiert zu haben. Während des gesamten Projekts wurden viele neue Techniken verwendet, um die Gesamtqualität und das Finish der Spea
Rocola (DIY): 3 Schritte
Rocola (DIY): Rocola interactive que te allowirá reproducir tu música favorita en cualquier lugar que cuente con un toma corriente! Esta rocola cuenta con 3 canciones establecidas que puedes conservar o cambiar según tu gusto musical.La rocola cuenta con 3 boton
DIY Batterie Arduino und Raspberry Pi 3: 4 Schritte (mit Bildern)
DIY Batterie Arduino und Raspberry Pi 3: Hallo Also in diesem anweisbaren zeige ich Ihnen, wie ich meine Batterie für meinen Roboter mache. Ich brauche Strom für mein Arduino-Board (mich Auriga Makeblock Board basierend auf ATmega2560) und mein Himbeer-Pi (mit PS-Auge; Festplatte 2g …) Also brauche ich:_output 7.4v für die Ar