Inhaltsverzeichnis:

Arduino 3-in-1-Zeit- und Wetteranzeige - Gunook
Arduino 3-in-1-Zeit- und Wetteranzeige - Gunook

Video: Arduino 3-in-1-Zeit- und Wetteranzeige - Gunook

Video: Arduino 3-in-1-Zeit- und Wetteranzeige - Gunook
Video: #21 4-in-1 Matrix Uhr mit Wetter 2024, November
Anonim

Von Boomer48Folgen Sie mehr vom Autor:

Verwendung des ATtiny85
Verwendung des ATtiny85
Verwendung des ATtiny85
Verwendung des ATtiny85
Pi Powered Pie Partitioning und Polygon Pruning Tool
Pi Powered Pie Partitioning und Polygon Pruning Tool
Pi Powered Pie Partitioning und Polygon Pruning Tool
Pi Powered Pie Partitioning und Polygon Pruning Tool
Digitale Bedienelemente für einen manuellen Audioverstärker
Digitale Bedienelemente für einen manuellen Audioverstärker
Digitale Bedienelemente für einen manuellen Audioverstärker
Digitale Bedienelemente für einen manuellen Audioverstärker

Ich mag PIC-Mikrocontroller und ich programmiere gerne in Assembler. Tatsächlich habe ich in den letzten Jahren etwa 40 Projekte auf meiner Website veröffentlicht, die auf dieser Kombination basieren. Vor kurzem bestellte ich einige Teile bei einem meiner Lieblingsverkäufer in den USA und entdeckte einen Arduino Nano mit einem Programmierkabel für nur 1,20 US-Dollar mehr als einen nackten ATMEGA328-Prozessorchip. Also habe ich ein paar davon gekauft. Dann habe ich die Arduino-IDE heruntergeladen und meine Erinnerung an die C++-Programmierung abgestaubt.

Dieses Projekt ist eine Mischung aus einer Uhr, die GPS für die Zeitmessung verwendet, und einem RF-Empfänger, der Wetternachrichten von einem gemeinsamen AcuRite-Sensor dekodiert. Das Ergebnis ist eine kleinskalige Zeit- und Temperaturanzeige. Die GPS-Uhr- und Wetter-Routinen sind als separate Include-Dateien eingerichtet, so dass es einfach ist, in die Hauptroutine zu gehen und sie so zu konfigurieren, dass sie nur die Uhrfunktion oder nur die Wetterfunktion ausführt. Entkommentieren Sie einfach das entsprechende „#define“oben in der Hauptroutine, wenn Sie nur eine der Funktionen wünschen.

Wenn beide Funktionen verwendet werden, zeigt die obere Zeile des LCD die Ortszeit und die untere Zeile des LCD die Luftfeuchtigkeit und Temperatur in Celsius und Fahrenheit an. Wenn nur die Uhrfunktion verwendet wird, zeigt die obere Zeile die Ortszeit und die untere Zeile UTC an. Wenn nur die Wetterfunktion verwendet wird, zeigt die obere Zeile den ersten empfangenen Sensor und die untere Zeile alle anderen empfangenen Sensoren an. Ich habe diese Fähigkeit hinzugefügt, weil ich zwei Wettersensoren habe.

Schritt 1: Wettersensor

Wettersensor
Wettersensor
Wettersensor
Wettersensor
Wettersensor
Wettersensor

Der hier verwendete AcuRite-Wettersensor sendet alle 16 Sekunden Temperatur- und Feuchtigkeitsinformationen. Auf der Rückseite zeigt es die Modellnummer 000592TXR, wird aber typischerweise als Modell 06002M beworben. Dieser Sensor wird von vielen verschiedenen Wetterstationsmodellen verwendet, daher ist er leicht zu finden und ich konnte sie bei eBay für unter 20 US-Dollar kaufen. AcuRite verkauft ähnlich aussehende Sensoren für einige seiner Wetterstationen, aber sie können sich an das gleiche Kommunikationsprotokoll halten oder nicht. Im Internet gibt es Hinweise darauf, dass der 00606-Nur-Temperatur-Sensor dasselbe Nachrichtenformat verwendet, jedoch mit einem ungültigen Feuchtigkeitsbyte.

Wie in der oben gezeigten ersten Wellenform zu sehen ist, werden die Wetternachrichten in Bursts mit einem Abstand von 2 ms zwischen aufeinanderfolgenden Nachrichten gesendet. Die zweite oben gezeigte Wellenform erweitert einen Teil einer Nachricht, um die Bitdauer und -muster zu sehen. Es gibt vier Sync-Bits, die ungefähr 600 us hoch sind, gefolgt von 600 us niedrig. Die Datenbits werden durch 400us High gefolgt von 200us Low (1) oder 200us High gefolgt von 400us Low (0) dargestellt.

Das Nachrichtenformat besteht aus 7 Byte Daten. Die ersten beiden Bytes sind die Sensor-ID und diese ändern sich nicht (d.h. es wird kein Rolling-Code verwendet). Das letzte Byte ist eine einfache additive Prüfsumme der ersten sechs Bytes. Das dritte Byte ist eine Batteriestandsanzeige und sollte bei guter Batterie immer 44 hex sein. Das vierte Byte ist die Luftfeuchtigkeit und es ist ein unskalierter Wert zwischen 0 und 99. Es ist wichtig zu beachten, dass das höchstwertige Bit der Bytes 4, 5 und 6 ein Paritätsbit ist und nicht Teil der Messung ist Werte. Bytes 5 und 6 sind die skalierte Temperatur (Celsius), wobei die unteren 4 Bits von Byte 5 mit den unteren 7 Bits von Byte 6 verkettet werden, um einen 11-Bit-Wert zu bilden. Die Temperatur wird immer als positive Zahl dargestellt und wird erst mit der Skalierung negativ. Die Skalierung ist (C / 10) - 100. Die Division durch 10 ist erforderlich, da die Temperaturauflösung in Zehntelgraden liegt. Die Subtraktion ist erforderlich, da der Sensor 100 addiert, um den übertragenen Wert positiv zu halten.

Schritt 2: HF-Empfänger

HF-Empfänger
HF-Empfänger
HF-Empfänger
HF-Empfänger

Das HF-Modul, das ich für dieses Projekt verwende, ist das RXB6. Es ist ein Superheterodyn-Empfänger im Gegensatz zu den weniger wünschenswerten superregenerativen Empfängern. Wenn Sie sich die billigen HF-Module ansehen, werden Sie feststellen, dass Sender- und Empfängerplatinen oft gebündelt sind. Die meisten dieser gebündelten Empfänger sind superregenerative Typen, so dass sie tendenziell viel geringere Leistungsmerkmale (einschließlich Reichweite) aufweisen als Super-Heterodyn-Empfänger. Für dieses Projekt benötigen wir nur das Empfängermodul, da wir Signale von einem Wettersensor-Sender erhalten.

Schritt 3: HF-Antennen

HF-Antennen
HF-Antennen

Der RXB6 wird ohne Antenne geliefert. Sie können einige spiralförmige Antennen ziemlich günstig kaufen, aber es ist auch einfach, Ihre eigene Antenne herzustellen. Tatsächlich könnte ein Steckbrett-Überbrückungskabel auf den Antennenstift des Moduls geschoben werden, wenn Sie nicht zu ausgefallen sein möchten. Idealerweise hat eine gerade Drahtantenne eine 1/4-Wellenlänge, was ungefähr 6,8 Zoll entspricht. Ich habe zunächst die Überbrückungskabel-Sache gemacht und hatte kein Problem damit, meinen Außensensor abzuholen, obwohl sich meine Elektronikwerkstatt in meinem Keller befindet.

Eine andere Möglichkeit besteht darin, eine eigene Wendelantenne herzustellen. Es gibt eine Vielzahl von Plänen dafür im Internet, aber der im Bild oben gezeigte ist das, was ich gemacht habe. Ich habe einen festen Kerndraht aus einem Schrottstück Ethernet-Kabel verwendet und ihn um den glatten Schaft eines 5/32-Zoll-Bohrers gewickelt. Lassen Sie die Isolierung mit Ausnahme der Spitze, die an die HF-Platine lötet, an. Sie benötigen 20 Umdrehungen. Sie können auch einen 7/32-Zoll-Bohrer verwenden und stattdessen 17 Umdrehungen wickeln. Alle diese Funktionen funktionieren wahrscheinlich gut für die Reichweiten, die Sie wahrscheinlich für Ihre Sensoren haben. Der wirkliche Schlüssel ist, einen guten RF-Empfänger zu haben. Die AcuRite-Sensoren haben auch ziemlich starke Sender.

Schritt 4: HF-Kommunikationsprotokoll

Es gibt einige verschiedene Modulationstechniken zum Übertragen von Daten, aber diese Sensoren verwenden die einfachste, nämlich OOK (On-Off-Keying) oder ASK (Amplitude-Shift-Keying). Da es sich in diesem Beispiel um 0/1-Datenbits handelt, ist die Amplitude voll ein oder vollständig aus. Für unsere Zwecke sind OOK und ASK also gleich, da OOK bedeutet, dass der HF-Träger entweder vollständig ein- oder ausgeschaltet ist. Das Nachrichtenformat wird im Allgemeinen vom Hersteller des sendenden Geräts definiert und sie können so ziemlich jede Übertragungsrate, jeden Bitformatierungsstil und jede Nachrichtenlänge verwenden. Das 433-MHz-Band ist voller Übertragungen für Dinge wie Smart Meter usw., daher muss die Software so eingestellt werden, dass sie nur das Nachrichtenformat filtert, das wir verwenden möchten.

Schritt 5: Zeitdaten

Zeitdaten
Zeitdaten

Ich verwende ein billiges GPS-Gerät, um genaue Zeitdaten zu erhalten, die nach einem Stromausfall automatisch neu gestartet werden. Ich habe mehrere GPS-Geräte (ohne Displays), die die Standard-NMEA-Sätze ausgeben, aber das kleinste und billigste Gerät, das ich habe, ist das NEO-6M. Das NEO-6M-Modul lässt sich leicht mit dem Arduino verbinden, da es einen seriellen Port auf TTL-Ebene verwendet. Der einzige wirkliche Unterschied besteht darin, dass der NMEA-Standard eine serielle Baudrate von 4800 vorgibt, der NEO-6M jedoch standardmäßig auf 9600 Baud eingestellt ist. Sie können das kostenlose Programm „u-center“ausführen, um die Baudrate zu ändern, aber ich habe es einfach auf Werkseinstellungen belassen. Es gibt auch ein kostenloses Dienstprogramm namens GPSInfo (herausgegeben von Globalsat), das sehr praktisch ist, um GPS-Informationen auf dem PC anzuzeigen. Sie können das GPS-Gerät an ein Standard-USB-zu-TTL-Kabel anschließen, um es zu überprüfen oder mit einem PC einzurichten. Denken Sie daran, dass der GPS-Chip auf dem Modul tatsächlich mit 3,3 Volt (über einen integrierten Spannungsregler) läuft. Wenn Sie also eine Verbindung zu seinem RXD-Port herstellen möchten, sollten Sie den Pegel von 5 Volt herunterschalten. Der TXD-Port kann direkt mit dem Arduino oder dem PC verbunden werden.

Schritt 6: Zeitzonen

Die Anzeige der GPS-Zeit ist einfach, solange Sie nur UTC (koordinierte Weltzeit) anzeigen möchten. Die NMEA-Sätze bestehen aus ASCII-Zeichen, die direkt auf dem LCD ausgegeben werden können. Der Zeitteil hat das Format HHMMSS. FF (Stunden, Minuten, Sekunden und Sekundenbruchteile). Für unsere Uhr ist der Bruchteil nicht sinnvoll, also müssen wir uns nur mit sechs Zeichen befassen. Das Problem ist, dass Sie dann in Ihre Ortszeit und in ein 12-Stunden-AM/PM-Format konvertieren müssen, wenn Sie dies wünschen. Aber manchmal machen Probleme das Leben interessant, darum geht es in diesem Teil der Software wirklich.

Was Zeitzonen angeht, könnte man denken, dass es einfach 24 davon gibt, davon 12 östlich des UTC-Standorts (+ Zonen) und 12 davon westlich des UTC-Standorts (-Zonen). Tatsächlich gibt es ein paar seltsame, die Bruchteile von Stunden sind, und ein paar, die die 12-Stunden-Grenze überschreiten. Sollten Sie in einem dieser Gebiete wohnen, bitte ich um Entschuldigung, da meine Software nur die 24-Stunden-Zonen berücksichtigt. Es gibt auch einige von uns, die die Sommerzeit einen Teil des Jahres verwenden, aber das wird nicht automatisch in der Software berücksichtigt. Dies würde eine Nachschlagetabelle mit zukünftigen Daten, eine zusätzliche Komplexität der Software und die Notwendigkeit, die Software zu aktualisieren, erfordern, wenn sich die Wochen des Jahres für die Umstellung ändern. Stattdessen verwendet die Hardware einen Tastschalter, um eine einfache Einstellung der Zeitzone (UTC-Offset) zu ermöglichen.

Schritt 7: Schaltplan

Schaltplan
Schaltplan

Das Schema ist oben gezeigt und enthält die Anschlüsse für eine 4-Bit 1602-LCD-Schnittstelle. Die seriellen Daten vom HF-Empfänger sind auf digitalen Logikpegeln, so dass sie direkt mit einem der Arduino-Dateneingangspins verbunden sind. Der Pin ist in der Software so konfiguriert, dass er eine Interrupt-on-Change-Funktion ausführt, damit wir die Pulsbreiten messen können. Der GPS-TXD-Ausgang ist direkt mit dem Arduino RX-Eingang verbunden.

Es werden zwei Schalter verwendet. Wie bereits erwähnt, ermöglicht ein Tastschalter die Einstellung des UTC-Offsets. Der Schalter kann jederzeit gedrückt werden, um in den Set-Modus zu gelangen. Anfänglich zeigt das Display einen ungültigen UTC-Offset von „+77“. Anweisungen zur Einstellung des UTC-Offsets finden Sie im Abschnitt „Uhrensoftware“.

Der zweite Schalter ist ein einfacher Ein-/Ausschalter. In der Position „off“wird die Uhrzeit im 12-Stunden-Format (AM/PM) und in der Position „on“im 24-Stunden-Format angezeigt. Dieser Schalter kann jederzeit geändert werden, um zwischen den Formaten umzuschalten.

Wird nur die Uhrfunktion gewünscht, muss das RF-Empfangsmodul nicht angeschlossen werden. Wenn nur die Wetterfunktion gewünscht wird, müssen das GPS und die beiden Schalter nicht verbunden werden.

Schritt 8: LCD-Software

Ich neige dazu, eine von zwei Arten von LCD-Schnittstellen zu verwenden. Eine ist die Standard-4-Bit-Schnittstelle und die andere ist eine 3-Draht-Schnittstelle, die ein Schieberegister verwendet. Ich habe diese Schnittstelle entworfen, als ich mit kleinen PIC-Mikrocontrollern arbeitete, die eine begrenzte Anzahl von I/O-Pins hatten. Ich habe die 4-Bit-Schnittstelle für dieses Projekt verwendet, habe aber meine eigene LCD-Include-Datei, anstatt die generische Arduino-LCD-Bibliothek zu verwenden. Das reduziert den Speicherverbrauch und die Codekomplexität und ermöglicht es mir auch, den Code für bestimmte Projekte wie dieses zu optimieren.

Schritt 9: Uhr-Software

Das GPS-Gerät gibt standardmäßige NMEA-0183-Sätze aus, die ASCII-Zeichenfolgen sind, die eine Vielzahl von Informationen enthalten. Für diese Anwendung habe ich den GGA-Satz gewählt, um die Zeitinformationen zu erhalten, da dies der Satz ist, den ich für ein früheres GPS-Projekt verwendet habe. Informationsfelder in NMEA-Sätzen werden durch Kommas getrennt, so dass die Software nach dem Erkennen des GGA-Satz-Headers normalerweise Kommas zählt und die entsprechende Routine für jedes gewünschte Feld der GPS-Informationen aufruft. Hier werden nur die Zeitangaben benötigt und diese stehen im Feld nach dem ersten Komma, so dass keine Zählung erforderlich ist.

Die sechs Zeitziffern (HHMMSS) werden gepuffert und dann verarbeitet, nachdem sie alle empfangen wurden. Das GPS gibt möglicherweise frühzeitig einige unvollständige Nachrichten aus, sodass die Pufferungsroutine überprüft, ob jedes Zeichen ein numerischer ASCII-Wert ist. Wenn ein fehlerhaftes Zeichen empfangen wird, wird die Nachricht verworfen. Dies kann auch in seltenen Fällen während des normalen Betriebs passieren, insbesondere wenn die Kommunikation über die serielle Schnittstelle etwas abfällt. Ich habe das nur einmal gesehen und alles, was passiert ist, ist, dass die Zeit für eine Sekunde pausiert und dann zwei Sekunden anstatt einer Sekunde sprang.

Wenn die Software nur für die Zeitanzeige konfiguriert ist, wird in der ersten Zeile des LCD die Ortszeit und in der zweiten Zeile UTC angezeigt. Für UTC sendet die Software einfach die ASCII-Zeichen direkt an die Anzeigeroutine, wobei die Doppelpunkte (:) entsprechend eingefügt werden.

Um die UTC in die Ortszeit umzurechnen, muss der UTC-Offset (Zeitzone) angewendet werden. Da die UTC-Zeit vom GPS im ASCII-Format vorliegt, wandelt die Software die ASCII-Stundenzeichen in Dezimalzahlen um und fügt dann den UTC-Offset hinzu. Der UTC-Offset wird als positiver BCD-Wert mit einem Vorzeichenbit gespeichert, so dass er zuerst in einen ganzzahligen Wert umgewandelt und dann negiert wird, wenn das Vorzeichenbit gesetzt ist. Sobald der Stundenwert der Ortszeit berechnet ist, wird eine Nachschlagetabelle verwendet, um ihn in BCD zu konvertieren, und dann wird das BCD zur Anzeige zurück in ASCII konvertiert. Die Lookup-Tabelle muss das 24-Stunden-UTC-Format sowie +/- 12 Zeitzonen verarbeiten. Dazu belegen die UTC-Zeiten von 0000 bis 2300 die mittleren 24 Einträge der Tabelle mit 12 Einträgen davor und 12 Einträgen danach, um die Zeitzonen zu berücksichtigen. Eine Tabelle ist im 12-Stunden-Format, daher habe ich auch eine Nachschlagetabelle für den AM/PM-Teil der Anzeige hinzugefügt. Die andere Tabelle ist im 24-Stunden-Format. Wie bereits erwähnt, ermöglicht ein Ein-/Ausschalter die Auswahl des 12-Stunden- oder 24-Stunden-Formats.

Die Zeitzone wird bei der Initialisierung aus dem EEPROM abgerufen und kurz angezeigt. Wenn es nicht mindestens einmal gesetzt wurde, wird die Setzroutine aufgerufen. Die Einstellroutine kann auch jederzeit durch Drücken des Tasters aufgerufen werden. Die Einstellroutine initialisiert die Anzeige auf „UTC OFFSET +77“. Ein kurzer Druck auf den Schalter ändert den Wert auf „-00“. Wenn eine positive Zeitzone erforderlich ist, ändert sich der Wert durch ein weiteres kurzes Drücken auf „+00“. Durch langes Drücken (> 1 Sekunde) wechselt der Einstellmodus zum nächsten Schritt. An diesem Punkt erhöht jedes kurze Drücken den Zeitwert bis zu einem Maximum von 12. Nachdem Sie die gewünschte Zeitzone erreicht haben, halten Sie den Schalter länger als 1 Sekunde gedrückt und lassen Sie ihn dann los. Die Software speichert dann den UTC-Wert im EEPROM und zeigt kurz „OFFSET SAVED“an. Wenn Sie bei der Eingabe einen Fehler machen, verlassen Sie einfach den Vorgang und drücken Sie den Schalter erneut, um ihn zurückzusetzen.

Der NEO-6M benötigt keine gute Positionsbestimmung, um die Zeit auszugeben, daher sollte er Nachrichten ausgeben, sobald er einen Satelliten empfängt. Bis dahin zeigt das Display „KEINE DATEN“an.

Schritt 10: Wettersoftware

Der PIC-Mikrocontroller hat die Fähigkeit, einen Timer mit einem externen Impuls ein- und auszuschalten. Derselbe Eingangsimpuls kann auch als externer Interrupt verwendet werden, um ein Lesen der Dauer des Impulses zu signalisieren. Der Arduino hat nicht genau diese Fähigkeit, also habe ich die Interrupt-on-Change-Funktion verwendet. An einer Flanke des RF-Nachrichtenimpulses wird die aktuelle Mikrosekundenzeit vom Interrupt-Handler gespeichert. An der gegenüberliegenden Flanke wird die verstrichene Zeit berechnet, um die Pulsbreite zu bestimmen.

Die Software hat eine „DEBUG“-Definition, die die Anzeige des Rohdatenformats der empfangenen Nachrichten ermöglicht. Es gibt auch eine Definition, um den Arduino-Eingangspin für den seriellen Stream vom RF-Empfänger anzugeben. Die Software ist so eingerichtet, dass sie basierend auf dieser Definition die geeigneten Registereinstellungen für die Unterbrechung bei Änderung berechnet. Die Berechnung funktioniert nur für die digitalen Arduino-Pins. Stattdessen könnte ein analoger Pin verwendet werden, aber das würde eine harte Codierung der Registerwerte erfordern.

Der Interrupt-Handler bestimmt, ob die erfasste Zählung lang genug ist, um ein Startimpuls zu sein. Wie bereits erwähnt, beträgt die Lücke zwischen mehreren Nachrichten 2 ms, also sucht die Software danach. Wegen des ganzen 433-MHz-Verkehrs stellt das anfängliche Screening in der Software sicher, dass die gemessene Zeit mindestens 1,8 ms beträgt, jedoch nicht mehr als 2,4 ms beträgt. Nachdem der Start erkannt wurde, sucht die Software nach den Sync-Bits (600us) und zählt, um sicherzustellen, dass vier davon empfangen werden. Sobald diese Tests bestanden sind, sucht die Software nach den richtigen Bitzeiten von 200us und 400us.

Empfangene Bits werden zu Bytes geformt und jedes Byte wird gespeichert. Nachdem sieben Byte empfangen wurden, wird die Prüfsumme der Nachricht überprüft, bevor eine weitere Verarbeitung zugelassen wird. Sollen Rohbytes ausgegeben werden (Debug-Modus), werden die Bytes in ASCII-Zeichen umgewandelt und an das LCD gesendet. Wenn Feuchte- und Temperaturausgaben gewünscht werden, werden die entsprechenden Umrechnungen durchgeführt.

Die zwei Bytes der Celsius-Daten in der RF-Nachricht werden zusammengemischt, um einen 11-Bit-Wert zu bilden. Der untere Teil wird um ein Bit nach links verschoben, um das Paritätsbit zu eliminieren und es mit den Bits im oberen Teil auszurichten. Die beiden Bytes werden zu einer 16-Bit-Wortvariablen geformt und dann wird das Ganze um ein Bit nach rechts verschoben, um die endgültige Bitausrichtung zu erhalten. Die Wortvariable wird dann für die mathematischen Berechnungen in eine Gleitkommavariable umgewandelt.

Ein großer Vorteil der Verwendung von C++ auf dem Arduino gegenüber der Assemblersprache auf dem PIC besteht darin, dass die mathematischen Berechnungen vereinfacht werden. Wie bereits erwähnt, beträgt die Celsius-Umrechnung (C / 10) -100. Das Ergebnis wird in einen String umgewandelt und zur Anzeige an das LCD gesendet. Die Berechnung in Fahrenheit ist (C * 1,8) + 32. Das Ergebnis wird wieder in einen String umgewandelt und zur Anzeige an das LCD gesendet. In beiden Fällen enthält die String-Konvertierung das negative Vorzeichen (sofern zutreffend) und den Dezimalpunkt. Beim Dezimalpunkt wird geprüft, ob nur ein Zeichen nach dem Komma an die Anzeige gesendet wird. Diese Prüfung ist erforderlich, da die Zeichenfolge zwischen 3 und 5 Zeichen lang sein kann.

Ich habe zwei AcuRite-Sensoren, also habe ich eine Überprüfung in der Software hinzugefügt, um sicherzustellen, dass die Daten des einen die Daten des anderen nicht überschreiben, wenn die Software nur die Wetterfunktion übernimmt. Der erste nach dem Einschalten empfangene Sensor wird in Zeile 1 und der andere in Zeile 2 angezeigt. Durch Verwendung des Debug-Modus kann ich die ID für jeden Sensor sehen, sodass ich den Code einfach überprüfen kann, wenn ich nur wollte Daten von einem von ihnen verarbeiten.

Die Software überwacht den Batteriestatus (Byte3) und zeigt eine Meldung an, wenn sie eine schwache Batterie anzeigt. Diese Nachricht überschreibt alle anderen Daten für diesen Sensor.

Schritt 11: Anzeigen

Anzeigen
Anzeigen
Anzeigen
Anzeigen
Anzeigen
Anzeigen

Hier sind einige Beispielanzeigen für die verschiedenen Funktionen. Ich habe ein paar andere Instructables, aber die meisten meiner PIC-Mikrocontroller-Projekte finden Sie auf meiner Website unter: www.boomerrules.wordpress.com

Empfohlen: