Selbstgemachte elektronische Uhr, Elementbasis - Teil 1, Zeitmessung
Wahrscheinlich kommt jeder Geek, der hausgemachte Elektronik mag, früher oder später auf die Idee, seine eigene, einzigartige Uhr herzustellen. Die Idee ist ziemlich gut, wir werden herausfinden, wie und worauf es besser ist, sie herzustellen. Als Ausgangspunkt nehmen wir an, dass eine Person weiß, wie man Mikrocontroller programmiert, wie man 2 Bytes über i2c oder serielle Schnittstelle sendet und mehrere Drähte miteinander verlöten kann. Im Prinzip ist das genug.Es ist klar, dass die Schlüsselfunktion einer Uhr darin besteht, die Zeit zu messen (wer hätte das gedacht, ja?). Und es ist wünschenswert, dies so genau wie möglich zu tun. Es gibt verschiedene Optionen und Fallstricke.Welche Methoden zur Zeitmessung in der Hardware können wir also verwenden?Eingebauter RC-Generator
Die einfachste Idee, die Ihnen in den Sinn kommt, besteht darin, einfach einen Software-Timer einzurichten und die Sekunden herunterzuzählen. Diese Idee ist also nicht gut. Die Uhr wird sicherlich funktionieren, aber die Genauigkeit des eingebauten Generators ist in keiner Weise geregelt und kann innerhalb von 10% des Nennwerts „schwimmen“. Es ist unwahrscheinlich, dass jemand Stunden braucht, die 15 Minuten pro Monat vergehen.DS1307 Echtzeitmodul
Eine korrektere Option, die auch in den meisten "Folk" -Produkten verwendet wird, ist eine Echtzeituhr. Der Chip wird über I2C mit dem Mikrocontroller ausgetauscht, er erfordert ein Minimum an Bindung (Quarz und ein Widerstandspaar). Der Ausgabepreis beträgt ca. 100 Rubel pro Mikroschaltung oder ca. 1 USD pro Ebee für eine fertige Platine mit einer Mikroschaltung, einem Speichermodul und einem Batterieanschluss.Schema aus dem Datenblatt:
Ebenso wichtig ist, dass der Chip in einem DIP-Paket erhältlich ist, sodass jeder Anfänger ihn löten kann. Der eingebaute Akku hält die Uhr auch dann am Laufen, wenn die Stromversorgung ausgeschaltet wurde.Es scheint, dass alles in Ordnung ist, wenn nicht für ein Problem - geringe Genauigkeit. Die ungefähre Genauigkeit von Uhrenquarz beträgt 20-30 ppm. Die Bezeichnung ppm - parts per million gibt die Anzahl der parts per million an. Es scheint, dass 20 Millionstel super sind, aber für eine Frequenz von 32768 Hz stellt sich heraus, dass 20 * 32768/1000000 = ± 0,65536 Hz, d. H. schon ein halber Hertz. Durch einfache Berechnungen kann man sehen, dass der Generator mit einer solchen Differenz pro Tag an den zusätzlichen (oder fehlenden) 56.000 Zyklen „festhält“, was 2 Sekunden pro Tag entspricht. Quarz kann unterschiedlich sein, einige Benutzer haben über einen Fehler von 5 Sekunden pro Tag geschrieben. Irgendwie ist es nicht sehr genau - in einem Monat wird eine solche Uhr mindestens eine Minute lang verschwinden. Dies ist bereits ein anständiger Unterschied, der mit bloßem Auge erkennbar ist (wenn die Lieblingsserie der Großmutter um 11.00 Uhr beginnt und die Uhr 11.05 Uhr anzeigt, wird es dem Entwickler einer solchen Uhr vor Verwandten unangenehm sein).Da die Temperatur im Raum jedoch mehr oder weniger stabil ist und sich die Frequenz des Quarzes nicht wesentlich ändert, können Sie eine Softwarekorrektur hinzufügen. Ein weiterer Ratschlag in den Foren ist die Verwendung eines Uhrenquarzes von alten Motherboards. Laut Bewertungen sind sie dort ziemlich genau.DS3231 Echtzeitmodul
Wir sind nicht die Ersten, die die Frage nach der Genauigkeit stellen, und Dallas hat, um unseren Wünschen gerecht zu werden, ein erweitertes Modul veröffentlicht - DS3231. Es heißt "Extrem genaue Echtzeituhr" und verfügt über einen eingebauten Generator mit Temperaturkorrektur. Die Genauigkeit ist 10-mal höher und beträgt 2 ppm. Der Ausgabepreis ist etwas höher, aber das Mikroschaltungsgehäuse ist für die SMD-Montage ausgelegt. Das Löten ist nicht so bequem, aber Sie können eine fertige Platine darauf kaufen.
(Foto von der Website des Verkäufers)Genauigkeit von 6 Sekunden pro Monat, dies ist bereits ein gutes Ergebnis. Aber wir werden noch weiter gehen - im Idealfall muss die Uhr im 21. Jahrhundert überhaupt nicht angepasst werden.Funkmodul DCF-77
Die Methode ist ziemlich exotisch, aber der Vollständigkeit halber kann sie nicht ignoriert werden. Nur wenige Menschen wissen es, aber die genauen Zeitsignale werden seit den 70er Jahren per Funk übertragen. Der DCF-77-Sender befindet sich in Deutschland in der Nähe von Frankfurt und bei einer SDV-Frequenz von 77,5 kHz werden Zeitstempel gesendet (ja, sie hatten bereits vor 20 Jahren eine Wand- und Tischuhr, die nicht angepasst werden musste).Das Verfahren ist insofern gut, als die Schaltung einen geringen Stromverbrauch aufweist, so dass jetzt sogar Armbanduhren mit einer solchen Technologie hergestellt werden. Die fertige DCF-77-Eintrittskarte kann bei ebay gekauft werden, der Preis beträgt 20 US-Dollar.
Viele Uhren und Wetterstationen können DCF-77 empfangen. Das einzige Problem ist, dass das Signal Russland praktisch nicht erreicht. Wikipedia-Abdeckungskarte:
Wie Sie sehen können, befinden sich nur Moskau und St. Petersburg an der Grenze des Empfangsbereichs. Nach Angaben der Eigentümer kann nur gelegentlich ein Signal empfangen werden, das natürlich nicht für den praktischen Gebrauch geeignet ist.GPS-Modul
Wenn die Uhr nicht weit vom Fenster entfernt ist, ist ein GPS-Modul eine sehr reale Methode, um eine genaue Zeit zu erhalten. Diese Module können günstig bei ebay gekauft werden (Ausgabepreis 10-15 USD). Beispielsweise stellt Ublox NEO-6M eine direkte Verbindung zu den seriellen Pins des Prozessors her und gibt NMEA-Strings mit einer Geschwindigkeit von 9600 aus. Die
Daten liegen in ungefähr diesem Format vor: "$ GPRMC, 040302.663, A, 3939.7, N, 10506.6, W, 0.27.358.86.200804 ,, * 1A ", und es ist nicht schwierig, sie selbst für einen schwachen Arduino zu analysieren. Patrioten können übrigens das teurere Ublox NEO-7N-Modul erwerben, das (laut Testberichten) sowohl GPS als auch Glonass unterstützt.Offensichtlich weiß das GPS-Modul nichts über verschiedene Zeitzonen, daher muss der Entwickler selbst überlegen, um sie zu berechnen und die Sommer- / Winterzeit zu ändern. Ein weiterer Nachteil der Verwendung von GPS ist der relativ hohe Stromverbrauch (einige Module können jedoch mit separaten Befehlen in den „Schlafmodus“ versetzt werden).W-lan
Und schließlich ist der letzte (und derzeit offensichtlichste) Weg, die genaue Zeit zu ermitteln, die Verwendung aus dem Internet. Es gibt zwei Ansätze. Die erste und einfachste Möglichkeit besteht darin, so etwas wie einen Raspberry PI mit Linux als Watchboard zu verwenden. Dann müssen Sie nichts tun, alles funktioniert sofort. Wenn Sie "exotisch" wollen, dann ist die interessanteste Option das esp8266-Modul.
Dies ist kostengünstig (der Fragenpreis beträgt ca. 200 Rubel pro eBay). Das WiFi-Modul kann über die serielle Schnittstelle des Prozessors mit dem Server ausgetauscht werden. Auf Wunsch kann es auch neu gestartet werden (es gibt viele Firmware von Drittanbietern), und ein Teil der Logik (z. B. Abfragen des Zeitservers) kann im Modul selbst durchgeführt werden. Die Firmware von Drittanbietern unterstützt eine Reihe von Funktionen, von Lua bis C ++. Die Optionen zum „Dehnen des Gehirns“ sind also ausreichend.Zu diesem Thema können Zeitmessungen wahrscheinlich geschlossen werden. Im nächsten Teil werden wir uns Prozessoren und Methoden zur Ausgabe von Zeit genauer ansehen. Source: https://habr.com/ru/post/de383091/
All Articles