Inhaltsverzeichnis:
- Schritt 1: Übersicht über die Hardware-Elemente
- Schritt 2: Softwareübersicht
- Schritt 3: Teileliste
- Schritt 9: Code entwerfen und schreiben
- Schritt 10: Installieren Sie das Programm
- Schritt 11: Montieren Sie den Timer
- Schritt 12: Integrationstest
- Schritt 13: Abschließende Gedanken
Video: Multi-Timer mit externer Steuerung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Dieses Projekt Instructable ist ein Aufbau eines Multifunktions-Timers
Dieser Timer kann funktionieren als:
- Ein Allzweckalarm mit wählbaren Zeiten zwischen 1 Sekunde und +90 Stunden. Nach einem Countdown mit akustischem Alarm und/oder Steuerung des externen Geräts bis zum Ende wird die Zeit seit dem Alarm hochgezählt.
- Ein Nickerchen-Timer mit 7 wählbaren Zeiten, Countdown und Alarm bei Beendigung.
- Ein Meditationstimer mit 4 wählbaren Zeiten, mit Countdown und einem kurzen Piepsen bei Beendigung, Countup mit einem weiteren Piepsen 5 Minuten danach.
Dieses Projekt kann wie hier beschrieben aufgebaut oder angepasst werden. Ich habe zuvor einen Timer mit dieser Funktionalität gebaut und ihn in meinem ersten Instructable verwendet, um die UV-Belichtungsbox zu steuern.
Ich dachte, ich könnte einfach das Originalprogramm und die Boarddesigns veröffentlichen. Aus irgendeinem Grund konnte ich den Code jedoch nicht finden. Ich wollte auch die Hardware verbessern, um die Steuerkreise flexibler zu machen und den Batterieverbrauch zu reduzieren. Das daraus resultierende Neudesign der Hauptplatine und das Neuschreiben des Codes bieten eine Gelegenheit, den Programmier- und Hardwaredesign-Ansatz zu diskutieren.
Immer wenn ich eine Platine erstelle, stelle ich oft fest, dass es Fehler im Design oder der Platzierung von Komponenten gibt. Die Platinen, die ich baue, sind auch einer von zwei Fehlern. Außerdem mag ich es einfach, an allen Aspekten eines Projekts von Anfang bis Ende beteiligt zu sein. Dies sind einige der Gründe, warum ich meine eigenen Leiterplatten herstelle, anstatt die Gerber-Dateien zur Herstellung ins Ausland zu schicken. Vielleicht bin ich einfach alt und festgefahren. Dieses Projekt spiegelt diese Voreingenommenheit wider. Da ich meine eigenen Leiterplatten herstelle, meine Designs und meine Gerber-Dateien nicht den Fertigungsstandards entsprechen, habe ich diese Dateien nicht beigefügt. Wer die Platten nicht ätzen und veredeln möchte, kann gerne eigene Designs vorbereiten und die Gerber-Dateien in den Kommentarbereich posten. Bitte lassen Sie Ihre Boards vor der Veröffentlichung fertigen und testen.
Schritt 1: Übersicht über die Hardware-Elemente
Das Gerät wird mit 4 AAA-Batterien betrieben und von einem Arduino Pro Mini 5V gesteuert.
Ein kleiner Summer/Lautsprecher sorgt für einen akustischen Alarm.
Ein Miniatur-5-V-Relais liefert Steuerspannungen an externe Geräte. Die Quelle dieses Steuerspannungsausgangs bietet Flexibilität.
Ein Drehgeber mit Druckknopf ermöglicht die Menüauswahl.
Ein OLED-Display und ein kurzzeitiger Start/Stopp-Schalter vervollständigen die Benutzeroberfläche.
Zusätzliche elektronische Hardware besteht aus einem SPDT-Netzschalter und einer Miniatur-Klinkenbuchse zum Anschluss externer Geräte.
Darüber hinaus werden Dateien bereitgestellt, die Sie bei diesem Projekt unterstützen:
STL-Dateien für einen 3D-gedruckten Projektfall.
Kupfer- und Lötstopplackbilder zum Ätzen und Finishen der Steuerplatine und des Drehgebers.
Schaltplan und Boardbilder als Referenz für diejenigen, die mein Design ändern möchten.
Vielleicht möchten Sie mein Instructable zum Erstellen doppelseitiger Leiterplatten als Beispiel für die Herstellung von Leiterplatten überprüfen.
Schritt 2: Softwareübersicht
Zusammen mit den Arduino-Quelldateien einige zusätzliche Informationen, die hilfreich sein können.
Hardware-Steuerungsbibliotheken werden verwendet, wenn verfügbar (Tasten-Entprellung, OLED-Steuerung, Lesen von Drehgebern).
Das Programm implementiert eine einfache Finite State Machine (FSM), um die Codeausführung als switch-Anweisung in der Schleifenfunktion zu steuern.
Eine Menüklasse ist definiert, um die Auswahl der angezeigten Optionen auf dem OLED und die Auswahl mit dem Drehgeber zu ermöglichen.
Die Eingabe erfolgt durch direktes Polling (ohne Unterbrechungen getrieben), da sie nicht zeitkritisch ist und den Code klarer macht.
Print-Anweisungen an Serial werden verwendet, um die Codeausführung und das Debugging zu verfolgen
Verschiedene Arten von Programmstrukturelementen, einschließlich:
- Mehrere Code-Registerkarten, um einige der Hardware-Steuerfunktionen und -Variablen zu isolieren.
- Wechseln Sie Anweisungen, um den Zustandswert (FSM) und die Steuervariablen zu setzen.
- Strukturdefinition
- Aufzählungen, um die Zuweisung von Zustandswerten als Text zu ermöglichen.
- #define Präprozessordefinitionen für Hardware-Pin und Standardwerte.
Schritt 3: Teileliste
Ich war mir nicht sicher, wo ich diesen Schritt setzen sollte, da er fast jederzeit durchgeführt werden kann. Ich habe eine 3D-gedruckte Gehäusebox verwendet. Möglicherweise haben Sie keinen Zugang zu einem 3D-Drucker oder bevorzugen eine andere Art von Gehäuse wie Aluminiumbox, lasergeschnittener Kunststoff, handgeschnitztes Holz oder eine andere Art, die Sie für Ihre elektronischen Projekte verwenden. Ich habe die STL-Dateien für oben, unten, Drehgeberknopf und OLED-Blende beigefügt. Verwenden Sie diese Dateien und den Slicer Ihrer Wahl, um gcode-Dateien für Ihren Drucker zu erstellen.
Ich drucke alle Teile mit PLA-Filament aus, eine Farbe für die Gehäuseober- und -unterseite, eine andere kontrastierende für den Knopf und die Blende (die oben geklebt ist). Ich werde nicht alle meine Slicer-Einstellungen angeben, sondern ein Tri. verwenden -Sechskant-Füllung mindestens 35%, um das Gewindeschneiden der Eckschrauben zu ermöglichen und eine "no support"-Einstellung zum Lesen der eingeschnittenen Beschriftung. Ich habe die Box mit meiner "normalen" Schichthöhe meines Druckers gedruckt.
Schritt 9: Code entwerfen und schreiben
Dieser Schritt ist optional, wird aber zum besseren Verständnis empfohlen.
Der Großteil des Aufwands in Stunden ist das Schreiben des Codes. Sie können diesen Schritt überspringen, wenn Sie das angehängte Programm unverändert verwenden. Es wird jedoch empfohlen, dass Sie sich die Zeit nehmen, den Code zu überprüfen, um ein besseres Verständnis zu erzielen oder ihn an Ihre Anforderungen anzupassen.
Die folgenden Kommentare können zum Verständnis dieses Prozesses hilfreich sein.
- Kommentare – Kommentieren Sie ausgiebig, während Sie gehen – Ich schreibe oft die Kommentare, bevor ich den Code schreibe.
- Teile & herrsche - verwende Funktionen, Klassen und Module (Tabs.) Verwende häufige Kompilierungen (Verify), um die Syntax zu überprüfen. Debug - Verwenden Sie print-Anweisungen, um Fluss- und Testwerte und Hardwareschnittstellen zu überprüfen. Scheuen Sie sich nicht, die Probleme nach und nach zu lösen, denn niemand schreibt fehlerfreien Code!
- Konstanten - #define Pre-Compiler-Anweisungen weisen Pin-Nummern Namen zu. Const-Variablendefinitionen mit Kommentaren reduzieren oder eliminieren "magische" Zahlen. Die Verwendung von Konstanten, die sich am Anfang eines Programms oder einer Funktion befinden, ermöglichen das Ändern der Parameter, ohne Code neu schreiben zu müssen
- Vordefinierte Bibliotheken - Die Verwendung vordefinierter Bibliotheken reduziert den Programmieraufwand und die Debug-Zeit.
- Designblöcke - Erstellt mit Funktionen, Isolieren von Code in separaten Registerkarten (zugehörige Programme &.hfiles), Aufzählungen, Klassen und Strukturen. Konzentrieren Sie Ihre Aufmerksamkeit auf jeden einzelnen, um zu verstehen, wie er in Bezug auf den Rest des Codes funktioniert.
- State Machine(s) - Dies ist ein Programmiermuster, das hervorragend mit Arduinos oder anderen Programmen funktioniert, die verwendet werden, um Ausgänge zu steuern oder auf Eingänge zu reagieren. Es gibt verschiedene Varianten von Zustandsautomaten. Dieser Code verwendet eine Zustandsmaschine, die auf der switch-Anweisung in der Schleifenfunktion basiert. Dieses Formular ist leicht zu verstehen und zu debuggen.
- Display & Menüs - Die OLED-Ausgabe ist knapp, bietet aber ausreichend Feedback für Gelegenheitsbenutzer und unterstützt die Optionsauswahl. Es lässt sich gut in die Zustandsmaschine integrieren (fast alle Zustände haben einen zugehörigen OLED-Bildschirm). Die Menu-Klasse war hilfreich beim Isolieren von Code zum Anzeigen und Auswählen von Menüoptionen
Bitte lesen Sie das Programm mehrmals. Es hilft, jeweils eine Funktion oder einen Abschnitt zu nehmen. Ich verstehe Code, den ich geschrieben habe, oft nicht, es sei denn, ich habe ihn mindestens zweimal gelesen!
Schritt 10: Installieren Sie das Programm
Kopieren Sie die angehängte Datei auf Ihren Computer und entpacken Sie sie in Ihr Sketches-Verzeichnis
Verbinden Sie den Arduino mit Ihrem Computer und laden Sie den Programmcode wie gewohnt herunter. Öffnen Sie den seriellen Monitor der Arduino IDE, um zu überprüfen, ob das Programm ausgeführt wird, und helfen Sie beim Debuggen.
Schritt 11: Montieren Sie den Timer
Sind Ober- und Unterteil des Gehäuses bedruckt und gereinigt, können die Komponenten mit kleinen selbstschneidenden Kunststoffschrauben befestigt werden. Zuerst wird der Batteriehalter in die Rückseite eingerastet. Die restlichen Teile werden in der folgenden Reihenfolge an der Gehäuseoberseite befestigt:
- OLED und Kabel
- Start/Stop-Schalter & Verkabelung
- Drehgeber und Kabel
- Lautsprecher / Summer & Verkabelung
- Externe Steuerbuchse und Verkabelung
- Ein/Aus-Schiebeschalter und Verkabelung (überprüfen Sie die Ausrichtung, damit das Ein in die gewünschte Richtung ist
Wenn Sie die Kabel direkt an Ihre Platine löten, tun Sie dies, nachdem alle Teile an Ihrem Gehäuse befestigt sind, um Drahtbrüche zu vermeiden. Sie müssen warten, bis die Kabel mit der Hauptplatine verdrahtet sind, bevor Sie diese Platine auf die Rückseite schrauben.
Wenn Sie Stiftleisten und Dupont-Stecker verwenden, befestigen Sie zuerst das Mainboard mit Schrauben auf der Rückseite und stecken Sie dann die Komponenten ein. Achten Sie beim Anschließen des Akkus an das Mainboard auf die richtige Polarität. Sie sollten zu diesem Zeitpunkt auch die Jumper oder die Verdrahtung der Relaissteuerung einrichten.
Die Unterseite des Gehäuses wird mit 4-40 Rundkopf-Maschinenschrauben, eine in jeder Ecke, mit der Oberseite verbunden. Die vier Löcher in der Oberseite sollten entweder mit einem 4/40-Gewindebohrer gebohrt werden oder wenn Sie 4-40-Gewindeeinsätze verwenden, müssen Sie die Löcher bohren, um sie aufzunehmen. Die 4 Löcher für die Hauptplatinenbefestigung an der Unterseite müssen ebenfalls gebohrt werden. Schließen Sie diese Platine an die Einrast-Akkuhalterung an und markieren Sie die Positionen der Löcher. Bohren Sie entsprechend Ihren Befestigungsschrauben.
Schritt 12: Integrationstest
Abschließende (Integrations-)Tests werden durchgeführt, indem alle Menüoptionen ausprobiert und überprüft werden, ob sie wie vorgesehen mit der Hardware funktionieren. Für den von mir bereitgestellten Code sollte das ausreichen. Wenn Sie Ihren eigenen Code geschrieben oder meinen modifiziert haben, müssen Ihre Tests umfangreicher sein. Ich glaube nicht, dass alle Timing-Auswahlen durchgeführt werden müssen, aber Sie müssen alle Standardalarmoptionen ausprobieren und überprüfen, ob die Nickerchen- und Meditationsalarme wie vorgesehen funktionieren.
Schritt 13: Abschließende Gedanken
Herzlichen Glückwunsch zu Ihrem erfolgreichen, ich hoffe, Projekt. Ich bin sicher, dass Sie auf dem Weg auf Probleme gestoßen sind, die Sie lösen mussten. Ich bin mir auch sicher, dass einige meiner Anweisungen vollständiger oder klarer hätten sein können. Bitte teilen Sie mir im Kommentarbereich Ihre Ergebnisse mit und machen Sie Vorschläge, wie diese Anweisungen verbessert werden können.
Vielen Dank für Ihre Zeit, dieses Projekt anzusehen und/oder zu erstellen.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu -- ESP32-Anfängerleitfaden: 5 Schritte
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu || ESP32-Anfängerhandbuch: In diesem Projekt zeige ich Ihnen, wie einfach / schwierig es ist, einen ESP32 mit der Arduino IDE zu verwenden, um jedem Elektronikprojekt eine WiFi-Steuerung hinzuzufügen. Unterwegs zeige ich Ihnen, wie Sie mit dem ESP32 einen einfachen WLAN-Server erstellen und wie Sie
EINFACHER CARBOT -- ARDUINO -- BLUETOOTH-STEUERUNG -- TUTORIAL: 10 Schritte (mit Bildern)
EINFACHER CARBOT || ARDUINO || BLUETOOTH-STEUERUNG || TUTORIAL: IN DIESEM ANLEITUNG ZEIGE ICH, WIE MAN EINEN EINFACHEN BOT HERSTELLT, DER VON IHREM SMARTPHONE ÜBER BLUETOOTHPARTS GEBAUT WIRD:☻ARDUINO☻2X GETRIEBEMOTOREN☻HC-05 BLUETOOTH MODUL☻LAPTOP ODER PC ICH HABE EINE POWER BANK VERWENDET
SERVO-Steuerung lernen (auf einen Blick): 6 Schritte
SERVO-Steuerung lernen (auf einen Blick): In diesem Modul lernen Sie die Steuerung eines mit Arduino kompatiblen Mikro- oder Mini-Servos. Ein Servomotor wird im Allgemeinen in allen Automatisierungsprojekten verwendet, die bewegliche Teile haben. Es spielt eine sehr wichtige Rolle Rolle in der Robotik, die präzise Bewegung