Mit Hand-Wanduhr spielen - Gunook
Mit Hand-Wanduhr spielen - Gunook
Anonim
Image
Image
Arbeitsprinzip
Arbeitsprinzip

Elektronische Hand-Wanduhren (Handelsmarke Quarz) sind heutzutage nichts Besonderes. Es kann in vielen Geschäften gekauft werden. In einigen von ihnen sind sie extrem billig; Preis ca. 2 € (50 CZK). Dieser niedrige Preis kann Motivation sein, sie genauer unter die Lupe zu nehmen. Dann habe ich erkannt, dass sie ein interessantes Spielzeug für Neulinge in der Elektronik sein können, die nicht so viele Ressourcen haben und sich hauptsächlich für das Programmieren interessieren. Möchte aber die eigene Entwicklung anderen präsentieren. Da billige Wanduhren sehr tolerant gegenüber Experimenten und Anfängerversuchen sind, habe ich mich entschlossen diesen Artikel zu schreiben, in dem ich Grundideen vorstellen möchte.

Schritt 1: Funktionsprinzip

Arbeitsprinzip
Arbeitsprinzip
Arbeitsprinzip
Arbeitsprinzip

Es ist leicht zu erkennen, dass die Uhr eine Art Schrittmotor für die Bewegung verwendet. Derjenige, der schon einige Uhren auseinanderbricht, hat erkannt, dass es sich nur um eine Spule handelt statt zwei bei üblichen Schrittmotoren. In diesem Fall sprechen wir von "einphasigen" oder "einpoligen" Schrittmotoren. (Dieser Name wird nicht so oft verwendet, es ist meist eine analoge Ableitung für die Markierung, die für andere Full-Stack-Schrittmotoren verwendet wird). Derjenige, der bereits über das Funktionsprinzip nachdenkt, muss sich fragen, wie es möglich ist, dass sich der Motor immer in die richtige Richtung dreht. Für die Beschreibung des Funktionsprinzips ist folgendes Bild nützlich, das ältere Arten von Motoren zeigt.

Auf dem ersten Bild ist eine Spule mit den Klemmen A und B zu sehen, grauer Stator und rot-blauer Rotor. Der Rotor besteht aus Permanentmagneten, deshalb ist er farblich markiert, um sichtbar zu sein, in welche Richtung magnetisiert wird (es ist nicht so entscheidend, welcher Pol ist Nord und was Süd). Auf dem Stator sieht man zwei "Rillen" in der Nähe des Rotors. Sie sind sehr wichtig für das Funktionsprinzip. Motor arbeitet in vier Schritten. Wir werden jeden Schritt anhand von vier Bildern beschreiben.

Während des ersten Schrittes (zweites Bild) wird der Motor erregt, dass Klemme A mit Pluspol und Klemme B mit Minuspol verbunden ist. Es macht magnetischen Fluss, zum Beispiel in Pfeilrichtung. Der Rotor stoppt in der Position, dass seine Position dem magnetischen Fluss entspricht.

Der zweite Schritt folgt nach dem Trennen der Stromversorgung. Dann wird der Magnetfluss im Stator gestoppt und der Magnet hat die Tendenz, sich in die Position zu drehen, seine Polarisation ist in Richtung des maximalen Volumens des magnetischen Weichmaterials des Stators. Und hier sind diese beiden Rillen entscheidend. Sie weisen auf eine geringe Abweichung der maximalen Lautstärke hin. Dann wird der Rotor ein wenig im Uhrzeigersinn gedreht. Wie auf Bild 3 gezeigt.

Der nächste Schritt (viertes Bild) ist mit verpolter Spannung verbunden (Klemme A zum Minuspol, Klemme B zum Pluspol). Dies bedeutet, dass sich der Magnet im Rotor durch die Spule in Richtung des Magnetfelds dreht. Rotor verwendet die kürzeste Richtung, also wieder im Uhrzeigersinn.

Der letzte (vierte) Schritt (fünftes Bild) entspricht dem zweiten. Motor ist wieder spannungslos. Der einzige Unterschied besteht darin, dass die Startposition des Magneten entgegengesetzt ist, aber der Rotor bewegt sich wieder in Richtung des maximalen Materialvolumens. Das ist wieder etwas im Uhrzeigersinn positionieren.

Das ist alles Zyklus, der erste Schritt folgt wieder. Bei der motorischen Bewegung sind die Schritte zwei und vier als stabil zu verstehen. Dann wird es mechanisch auf die mit Getriebe 1:30 Übertragungsrate auf die Position des Sekundenzeigers der Uhr übertragen.

Schritt 2: Arbeitsprinzip Forts

Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts
Arbeitsprinzip Forts

Die Abbildungen zeigen die Spannungswellenform an den Motorklemmen. Zahlen bedeutet alle Sekunden. In Wirklichkeit sind Pulse im Vergleich zu Räumen viel kleiner. Sie sind ungefähr eins von Millisekunden.

Schritt 3: Praktische Demontage 1

Praktische Demontage 1
Praktische Demontage 1

Ich habe eine der billigsten Wanduhren auf dem Markt zum praktischen Zerlegen verwendet. Sie haben wenige Vorteile. Einer ist, dass der Preis so niedrig ist, dass wir nur wenige davon für Experimente kaufen können. Da die Fertigung stark preisorientiert ist, enthalten sie keine komplizierten cleveren Lösungen sowie keine komplizierten Schrauben. In Wirklichkeit enthalten sie keine Schrauben, sondern nur Klickverschlüsse aus Kunststoff. Das brauchen wir nur minimale Werkzeuge. Zum Beispiel brauchen wir einen Schraubendreher nur zum Ausmeißeln dieser Schlösser.

Zur Demontage der Wanduhr benötigen wir einen Schlitzschraubendreher (oder einen anderen Steckstock), eine Wäscheklammer und eine Arbeitsunterlage mit erhöhten Kanten (das ist nicht zwingend erforderlich, erleichtert aber die Suche nach Rädern und anderen Kleinteilen).

Schritt 4: Praktische Demontage 2

Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2
Praktisches Zerlegen 2

Auf der Rückseite der Wanduhr befinden sich drei Riegel. Zwei obere an Position 2 und 10 können entriegelt und Deckglas geöffnet werden Bei geöffnetem Glas ist es möglich, die Uhrzeiger abzuziehen. Es ist nicht notwendig, ihre Position zu markieren. Wir werden sie immer auf die Position 12:00:00 zurückbringen. Wenn die Uhrzeiger ausgeschaltet sind, können wir das Uhrwerk demontieren. Es hat zwei Riegel (an Position 6 und 12). Es wird empfohlen, die Bewegung so gerade wie möglich herauszuziehen, da sonst die Bewegung hängen bleiben kann.

Schritt 5: Praktische Demontage 3

Praktisches Zerlegen 3
Praktisches Zerlegen 3
Praktisches Zerlegen 3
Praktisches Zerlegen 3
Praktisches Zerlegen 3
Praktisches Zerlegen 3

Dann ist es möglich, Bewegung zu öffnen. Es hat drei Riegel. zwei auf den Plätzen 3 und 9 Stunden und dann dritte auf 6 Stunden. Beim Öffnen reicht es, das transparente Zahnrad zwischen Motor und Getriebe und dann das Ritzel, das mit dem Rotor des Motors verbunden ist, zu entfernen.

Schritt 6: Praktische Demontage 4

Praktisches Zerlegen 4
Praktisches Zerlegen 4
Praktisches Zerlegen 4
Praktisches Zerlegen 4

Motorspule und Stator halten nur auf einem Riegel (bei 12 Stunden). Es hält keine Stromschienen, es wird nur durch Drücken auf Stromschienen aufgetragen, dann ist das Entfernen nicht kompliziert. Die Spule wird ohne Halter auf den Stator geschraubt. Es lässt sich leicht abnehmen.

Schritt 7: Praktische Demontage 5

Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5
Praktische Demontage 5

Auf der Unterseite der Spule ist eine kleine Leiterplatte aufgeklebt, die einen CoB (Chip on Board) mit sechs Ausgängen enthält. Zwei sind für die Stromversorgung und sie werden auf größeren quadratischen Pads an Bord zum Anlegen von Stromschienen abgeschlossen. zwei Ausgänge sind mit Quarz verbunden. Der Quarz hat übrigens 32768Hz und kann für den späteren Gebrauch entlötet werden. Die letzten beiden Ausgänge sind mit der Spule verbunden. Ich fand es sicherer, Spuren auf der Platine abzuschneiden und Drähte an vorhandene Pads an Bord zu löten. Wenn ich versuchte, die Spule abzulöten und den Draht direkt mit der Spule zu verbinden, reiße ich immer Spulendraht ab oder beschädigte die Spule. Das Löten neuer Drähte an die Platine ist eine der Möglichkeiten. Sagen wir, das ist primitiver. Eine kreativere Methode besteht darin, die Spule mit den Stromversorgungspads zu verbinden und die Stromschienen für den Anschluss an die Batteriebox beizubehalten. Dann kann die Elektronik in den Batteriekasten eingesetzt werden.

Schritt 8: Praktische Demontage 6

Praktische Demontage 6
Praktische Demontage 6
Praktische Demontage 6
Praktische Demontage 6

Die Lötqualität kann mit einem Ohmmeter überprüft werden. Die Spule hat einen spezifischen Widerstand von etwa 200. Sobald alles in Ordnung ist, bauen wir die Wanduhr wieder zusammen. Normalerweise werfe ich Stromschienen raus, dann habe ich mehr Platz für meine neuen Drähte. Fotos werden gemacht, bevor Stromschienen geworfen werden. Ich vergesse, das nächste Foto zu machen, wenn sie entfernt werden.

Wenn ich mit der Fertigstellung der Bewegung fertig bin, teste ich sie mit dem zweiten Uhrzeiger. Ich lege die Hand an die Achse und schließe etwas Strom an (ich habe eine CR2032-Knopfbatterie verwendet, aber auch AA 1, 5V können verwendet werden). Schließen Sie die Stromversorgung einfach in einer Polarität an die Drähte an und dann wieder mit entgegengesetzter Polarität. Die Uhr muss ticken und der Zeiger soll sich um eine Sekunde bewegen. Wenn Sie Probleme haben, die Bewegung zurück zu vervollständigen, weil die Drähte mehr Platz haben, drehen Sie einfach die Spule und legen Sie sie auf die gegenüberliegende Seite. Wenn keine Stromschienen verwendet werden, hat dies keine Auswirkungen auf die Uhrbewegung. Wie bereits erwähnt, müssen Sie beim Zurücklegen der Hände auf 12:00:00 Uhr zeigen. Es muss der richtige Abstand zwischen Stunden- und Minutenzeiger vorhanden sein.

Schritt 9: Anwendungsbeispiele für die Wanduhr

Mehrheit der einfachen Beispiele, die sich auf die Anzeige der Zeit konzentrieren, jedoch mit verschiedenen Modifikationen. Sehr beliebt ist die Modifikation "Vetinari Clock". Er zeigt auf das Buch von Terry Pratchett, in dem Lord Vetinari eine Wanduhr in seinem Wartezimmer hat, die unregelmäßig tickt. Diese Unregelmäßigkeit verunsichert wartende Menschen. Die zweite beliebte Anwendung ist die "Sinusuhr". Es bedeutet Taktgeber, die anhand der Sinuskurve beschleunigen und verlangsamen, dann haben die Leute das Gefühl, sie segeln auf Wellen. Einer meiner Favoriten ist "Mittagessen". Diese Änderung bedeutet, dass die Uhr zwischen 11 und 12 Stunden (0,8 Sekunden) etwas schneller geht, um früher zu Mittag zu essen; und während der Mittagspause zwischen 12 und 13 Stunden (1, 2 Sek.) etwas langsamer, um etwas mehr Zeit für das Mittagessen zu haben und die verlorene Zeit aufzuholen.

Für die meisten dieser Modifikationen reicht es aus, den einfachsten Prozessor mit einer Arbeitsfrequenz von 32768 Hz zu verwenden. Diese Frequenz ist bei Uhrmachern sehr beliebt, da es einfach ist, Quarz mit dieser Frequenz herzustellen, und sie kann einfach in Sekunden geteilt werden. Es hat zwei Vorteile, diese Frequenz für den Prozessor zu verwenden: Wir können den Quarz einfach vom Taktgeber recyceln; und Prozessoren haben normalerweise einen minimalen Verbrauch auf dieser Frequenz. Der Verbrauch ist etwas, das wir so oft lösen, wenn wir mit der Wanduhr spielen. Vor allem, um die Uhr aus der kleinsten Batterie so lange wie möglich mit Strom versorgen zu können. Wie bereits erwähnt, hat die Spule einen spezifischen Widerstand von 200 Ω und ist für cca 1,5 V (eine AA-Batterie) ausgelegt. Günstigste Prozessoren arbeiten normalerweise mit etwas größerer Spannung, aber mit zwei Batterien (3V), die alle funktionieren. Einer der billigsten Prozessoren auf unserem Markt ist Microchip PIC12F629 oder sehr beliebte Arduino-Module. Dann zeigen wir Ihnen, wie Sie beide Plattformen verwenden.

Schritt 10: Anwendungsbeispiele für die Wanduhr PIC

Anwendungsbeispiele für Wanduhren PIC
Anwendungsbeispiele für Wanduhren PIC
Anwendungsbeispiele für Wanduhren PIC
Anwendungsbeispiele für Wanduhren PIC

Der Prozessor PIC12F629 hat eine Betriebsspannung von 2,0 V - 5,5 V. Die Verwendung von zwei "Mignon-Batterien" = AA-Zellen (ca. 3V) oder zwei AA-Akkus AA (ca. 2, 4V) ist ausreichend. Aber für Taktspulen ist es doppelt so viel wie vorgesehen. Es verursacht eine minimale ungewollte Erhöhung des Verbrauchs. Dann ist es gut, einen minimalen Serienwiderstand hinzuzufügen, der einen geeigneten Spannungsteiler erzeugt. Der Widerstandswert muss ungefähr 120 für Akkuleistung oder 200 Ω für Batterieleistung betragen, berechnet für reine ohmsche Last. In der Praxis kann der Wert um 100 etwas kleiner sein. Theoretisch reicht ein Widerstand in Reihe mit der Spule. Ich habe immer noch die Tendenz, aus irgendeinem Grund den Motor als symmetrisches Gerät zu sehen und dann einen Widerstand mit halbem Widerstand (47Ω oder 51Ω) neben jedem Spulenanschluss zu platzieren. Einige Konstruktionen fügen Schutzdioden hinzu, um eine negative Spannung am Prozessor zu vermeiden, wenn die Spule getrennt ist. Andererseits reicht die Ausgangsleistung der Prozessorausgänge aus, um die Spule ohne Verstärker direkt mit dem Prozessor zu verbinden. Der vollständige Schaltplan für den Prozessor PIC12F629 sieht wie in Abbildung 15 beschrieben aus. Dieser Schaltplan gilt für Uhren ohne zusätzliche Bedienelemente. Wir haben noch einen Ein-/Ausgangspin GP0 und nur einen Eingang GP3 zur Verfügung.

Schritt 11: Anwendungsbeispiele für Wanduhren Arduino

Anwendungsbeispiele für Wanduhren Arduino
Anwendungsbeispiele für Wanduhren Arduino
Anwendungsbeispiele für Wanduhren Arduino
Anwendungsbeispiele für Wanduhren Arduino
Anwendungsbeispiele für Wanduhren Arduino
Anwendungsbeispiele für Wanduhren Arduino

Sobald wir Arduino verwenden möchten, können wir uns das Datenblatt für den Prozessor ATmega328 ansehen. Dieser Prozessor hat eine Arbeitsspannung von 1,8 V - 5,5 V für Frequenzen bis 4 MHz und 2,7 V - 5,5 V für Frequenzen bis 10 MHz. Wir müssen mit einem Mangel von Arduino-Boards vorsichtig sein. Dieser Mangel ist das Vorhandensein eines Spannungsreglers an Bord. Viele Spannungsregler haben Probleme mit Sperrspannung. Dieses Problem ist weit verbreitet und am besten für den Regler 7805 beschrieben. Für unsere Bedürfnisse müssen wir eine mit 3V3 gekennzeichnete Platine verwenden (entwickelt für die Stromversorgung von 3,3 V), insbesondere weil diese Platine einen 8-MHz-Kristall enthält und ab 2, 7 V betrieben werden kann (das bedeutet zwei AA Batterien). Dann wird der verwendete Stabilisator nicht 7805, sondern sein 3,3-V-Äquivalent sein. Wenn wir das Board ohne Stabilisator mit Strom versorgen möchten, haben wir zwei Möglichkeiten. Die erste Möglichkeit besteht darin, die Spannung an die Pins "RAW" (oder "Vin") und +3V3 (oder Vcc) anzuschließen und zu glauben, dass der auf Ihrem Board verwendete Stabilisator keinen Unterspannungsschutz hat. Zweite Option ist einfach den Stabilisator zu entfernen. Dafür ist es gut, Arduino Pro Mini nach dem Referenzschema zu verwenden. Dieser Schaltplan enthält den Jumper SJ1 (in Abbildung 16 im roten Kreis), der zum Trennen des internen Stabilisators dient. Leider enthalten die meisten Klone diesen Jumper nicht.

Ein weiterer Vorteil von Arduino Pro Mini ist, dass es keine zusätzlichen Wandler enthält, die im normalen Betrieb Strom verbrauchen können (also kleine Komplikation bei der Programmierung). Arduino-Boards werden mit immer komfortableren Prozessoren bestückt, die nicht genug Leistung für einen einzelnen Output haben. Dann ist es gut, einen kleinen Ausgangsverstärker mit einem Paar von Transistoren hinzuzufügen. Das Grundschema für die Batterieleistung sieht wie in der Abbildung gezeigt aus.

Da die Arduino-Umgebung (die "Wiring"-Sprache) Attribute moderner Betriebssysteme aufweist (dann Probleme mit dem genauen Timing hat), ist es gut, über die Verwendung einer externen Taktquelle für Timer0 oder Timer1 nachzudenken. Es bedeutet die Eingänge T0 und T1, sie sind als 4 (T0) und 4 (T1) gekennzeichnet. An jeden dieser Eingänge kann ein einfacher Oszillator mit Quarz aus der Wanduhr angeschlossen werden. Es hängt davon ab, wie genau die Uhr Sie produzieren möchten. Abbildung 18 zeigt drei grundlegende Möglichkeiten. Der erste Schaltplan ist sehr sparsam in Bezug auf die verwendeten Komponenten. Es bietet mehr weniger dreieckigen Ausgang, aber im vollen Spannungsbereich, dann ist es gut für die Stromversorgung von CMOS-Eingängen. Der zweite Schaltplan mit Invertern kann CMOS 4096 oder TTL 74HC04 sein. Die Schaltpläne sind einander weniger ähnlich, sie sind in der Grundform. Dritter Schaltplan mit Chip-CMOS 4060, der eine direkte Verbindung des Quarzes ermöglicht (entspricht 74HC4060 mit demselben Schaltplan, aber unterschiedlichen Widerstandswerten). Vorteil dieser Schaltung ist, dass sie einen 14-Bit-Teiler enthält, dann kann entschieden werden, welche Frequenz als Timer-Eingang verwendet wird.

Der Ausgang dieser Schaltung kann für den Eingang T0 (Pin 4 mit Arduino-Markierung) verwendet und dann Timer0 mit externem Eingang verwendet werden. Das ist nicht so praktisch, weil Timer0 für Funktionen wie delay(), milis() oder micros() verwendet wird. Die zweite Möglichkeit besteht darin, es mit dem Eingang T1 (Pin 5 mit Arduino-Markierung) zu verbinden und Timer1 mit zusätzlichem Eingang zu verwenden. Die nächste Option besteht darin, es mit dem Interrupt-Eingang INT0 (Pin 2 in Arduino-Markierung) oder INT1 (Pin 3) zu verbinden und die Funktion attachInterrupt () und die Registerfunktion zu verwenden, die regelmäßig aufgerufen wird. Hier wird ein sinnvoller Teiler von Chips 4060 angeboten, dann muss Call nicht so oft sein.

Schritt 12: Schnelle Uhr für Modelleisenbahner-Hardware

Schnelle Uhr für Modelleisenbahner-Hardware
Schnelle Uhr für Modelleisenbahner-Hardware
Schnelle Uhr für Modelleisenbahner-Hardware
Schnelle Uhr für Modelleisenbahner-Hardware
Schnelle Uhr für Modelleisenbahner-Hardware
Schnelle Uhr für Modelleisenbahner-Hardware

Bei Interesse werde ich einen nützlichen Schaltplan präsentieren. Ich muss mehr Wanduhren an die gemeinsame Steuerung anschließen. Wanduhren sind weit voneinander entfernt und darüber hinaus ist die Umgebungscharakteristik eher industriell mit größerem elektromagnetischen Rauschen. Dann kehrte ich zu alten Bussystemen zurück, die eine größere Spannung für die Kommunikation verwendeten. Natürlich habe ich die Arbeit am Akku nicht gelöst, aber ich habe ein stabilisiertes Netzteil 12V verwendet. Ich habe das Signal vom Prozessor mit dem Treiber TC4427 verstärkt (er hat eine gute Verfügbarkeit und einen guten Preis). Dann trage ich Signal 12V mit möglicher Last bis zu 0,5A. Ich habe den Nebenuhren einfache Widerstandsteiler hinzugefügt (in Abbildung 18 als R101 und R102 gekennzeichnet; Wieder verstehe ich den Motor als symmetrisch, das ist nicht erforderlich). Ich möchte die Rauschunterdrückung erhöhen, indem ich mehr Strom trage, dann habe ich zwei Widerstände 100Ω verwendet. Um die Spannung an der Motorspule zu begrenzen, wird der Brückengleichrichter B101 parallel zur Spule geschaltet. Die Brücke hat eine kurzgeschlossene DC-Seite, dann repräsentiert sie zwei Paare von antiparallelen Dioden. Zwei Dioden bedeuten einen Spannungsabfall von etwa 1,4 V, das ist sehr nahe an der normalen Betriebsspannung für den Motor. Wir brauchen antiparallel, weil die Stromversorgung abwechselnd in einer und in der entgegengesetzten Polarität erfolgt. Der von einer Slave-Wanduhr verbrauchte Gesamtstrom beträgt dann (12V - 1,5V) / (100Ω + 100Ω) = 53mA. Das ist ein akzeptabler Wert, um Rauschen zu vermeiden.

Hier sind zwei Schalter im Schaltplan, sie dienen zur Steuerung zusätzlicher Funktionen der Wanduhr (Geschwindigkeitsmultiplikator bei Modelleisenbahnern). Tochteruhr hat eine weitere interessante Funktion. Der Anschluss erfolgt über zwei 4mm Bananenstecker. Sie halten Wanduhr an der Wand. Es ist besonders nützlich, wenn Sie vor der Inbetriebnahme eine bestimmte Zeit einstellen möchten, Sie können sie einfach ausstecken und wieder einstecken (Holzklotz ist an der Wand befestigt). Wenn Sie "Big Ben" bauen möchten, benötigen Sie eine Holzkiste mit vier Paar Steckdosen. Diese Box kann als Aufbewahrung für Uhren verwendet werden, wenn sie nicht verwendet werden.

Schritt 13: Software

Aus Softwaresicht ist die Situation relativ einfach. Lassen Sie uns die Realisierung auf dem Chip PIC12F629 mit Quarz 32768Hz (recycelt aus der Originaluhr) beschreiben. Der Prozessor hat einen Befehlszyklus von vier Oszillatorzyklen lang. Sobald wir die interne Taktquelle für einen beliebigen Timer verwenden, bedeutet dies Befehlszyklen (genannt fosc/4). Wir haben zum Beispiel Timer0 zur Verfügung. Die Timer-Eingangsfrequenz beträgt 32768 / 4 = 8192 Hz. Der Timer ist acht Bit (256 Schritte) und wir lassen ihn ohne Barrieren überlaufen. Wir konzentrieren uns nur auf das Timer-Überlaufereignis. Das Ereignis wird mit der Frequenz 8192 / 256 = 32 Hz auftreten. Wenn wir dann Impulse für eine Sekunde haben möchten, müssen wir alle 32 Überläufe von Timer0 Impulse erzeugen. Eine Uhr möchten wir beispielsweise viermal schneller laufen lassen, dann brauchen wir 32 / 4 = 8 Überlauf für Puls. Für Fälle, in denen wir daran interessiert sind, eine unregelmäßige, aber genaue Uhr zu entwerfen, müssen wir eine Summe von Überläufen für wenige Impulse haben, die der 32-fachen Anzahl von Impulsen entspricht. Dann können wir in einer unregelmäßigen Taktmatrix wie dieser gefunden werden: [20, 40, 30, 38]. Dann ist die Summe 128, also 32×4. Für Sinusuhr zum Beispiel [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). Für unsere Uhr verwenden wir zwei freie Eingänge als Teilerdefinition für den schnellen Lauf. Tabellendithteiler für Geschwindigkeiten werden im EEPROM-Speicher gespeichert. Der Hauptteil des Programms kann so aussehen:

Hauptschleife:

btfss INTCON, T0IF goto MainLoop; warte auf Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; wenn STOP-Schalter aktiv ist, clrf CLKCNT; Zähler jedes Mal löschen btfsc SW_FAST; wenn die Schnelltaste nicht gedrückt wird, gehe zu NormalTime; nur Normalzeit berechnen movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; wenn FCLK und CLKCNT gleich sind, gehe zu SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; Bit 7, 6, 5 btfsc STATUS, Z; if CLKCNT>=32 gehe zu MainLoop gehe zu SendPulse

Programmieren Sie mit der Funktion SendPulse, diese Funktion erzeugt selbst einen Motorimpuls. Die Funktion zählt ungerade/gerade Impulse und erzeugt basierend darauf Impulse an einem oder zweiten Ausgang. Funktion mit konstanter ENERGISE_TIME. Während dieser konstanten definierten Zeit wird die Motorspule erregt. Somit hat es großen Einfluss auf den Verbrauch. Sobald es so klein ist, kann der Motor den Schritt nicht beenden und manchmal kommt es vor, dass die Sekunde verloren geht (normalerweise wenn der Sekundenzeiger um die Nummer 9 geht, wenn er "nach oben" geht).

Sendepuls:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B;goto SendPulseE SendPulseE: movlw 0x50 movwfl

Vollständige Quellcodes können am Ende der Seite www.fucik.name heruntergeladen werden. Die Situation mit Arduino ist wenig kompliziert, da Arduino eine höhere Programmiersprache verwendet und einen eigenen Quarz 8MHz verwendet, müssen wir vorsichtig sein, welche Funktionen wir verwenden. Die Verwendung des klassischen delay() ist wenig riskant (es berechnet die Zeit vom Funktionsstart). Bessere Ergebnisse werden durch die Verwendung von Bibliotheken wie Timer1 erzielt. Viele Arduino-Projekte setzen auf externe RTC-Geräte wie PCF8563, DS1302 usw.

Schritt 14: Kuriositäten

Dieses System der Verwendung von Wanduhrenmotoren ist als sehr einfach zu verstehen. Es gibt viele Verbesserungen. Zum Beispiel basierend auf der Messung von Gegen-EMK (elektrische Energie, die durch die Bewegung des Rotormagneten erzeugt wird). Dann ist die Elektronik in der Lage zu erkennen, wenn die Hand bewegt wird und wenn nicht, dann schnell den Impuls wiederholen oder den Wert von "ENERGISE_TIME" aktualisieren. nützlichere Neugier ist "Rückwärtsschritt". Laut Beschreibung ist der Motor nur für eine Drehrichtung ausgelegt und kann nicht verändert werden. Aber wie auf den beigefügten Videos gezeigt, ist eine Richtungsänderung möglich. Das Prinzip ist einfach. Kehren wir zum Motorprinzip zurück. Stellen Sie sich vor, dass sich der Motor im zweiten Schritt im stabilen Zustand befindet (Abbildung 3). Sobald wir die Spannung wie im ersten Schritt (Abbildung 2) dargestellt anschließen, beginnt der Motor logischerweise mit der Drehung in umgekehrter Richtung. Sobald der Impuls kurz genug ist und kurz vor dem stabilen Anheben des Motors endet, flackert er logischerweise ein wenig. Sobald dieses Flackern ankommt, wird der nächste Spannungsimpuls wie im dritten Zustand beschrieben (Abbildung 4), dann fährt der Motor mit der Richtung fort, wie er gestartet wurde, dh in umgekehrter Richtung. Ein kleines Problem besteht darin, die Dauer des ersten Pulses zu bestimmen und einmal einen gewissen Abstand zwischen dem ersten und zweiten Puls zu schaffen. Und das Schlimmste ist, dass diese Konstanten für jede Uhrbewegung variieren und manchmal für Fälle variieren, in denen die Zeiger "nach unten" (um die Nummer 3) oder nach oben (um die Nummer 9) und auch in neutrale Positionen (um die Nummern 12 und 6) gehen.. Für den Fall, der auf dem Video präsentiert wird, habe ich Werte und Algorithmen verwendet, wie im folgenden Code dargestellt:

#define OUT_A_SET 0x02; config for out a set out b clear

#define OUT_B_SET 0x04; config for out b set a clear #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT_ movlw; start mit Puls B movwf GPIO RevPulseLoopA:; kurze Wartezeit decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; dann Impuls A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; starte mit Puls A movwf GPIO RevPulseLoopB:; kurze Wartezeit decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; then pulse B movwf GPIO;goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop

Die Verwendung von umgekehrten Schritten erhöht die Möglichkeit, mit der Wanduhr zu spielen. Wir können manchmal Wanduhren finden, die eine reibungslose Bewegung des Sekundenzeigers haben. Wir haben keine Angst vor dieser Uhr, sie verwenden einen einfachen Trick. Der Motor selbst ist der gleiche wie der hier beschriebene Motor, nur das Übersetzungsverhältnis ist größer (normalerweise 8: 1 mehr) und der Motor dreht sich schneller (normalerweise 8x schneller), was eine reibungslose Bewegung bewirkt. Wenn Sie sich entscheiden, diese Wanduhr zu ändern, vergessen Sie nicht, den angeforderten Multiplikator zu berechnen.

Empfohlen: