Kostenloser Versand ab €74,95 NL

Vor 16:00 bestelt = Heute versendet

Schnelle Lieferung mit DHL

XNUMX Tage Rückgaberecht *


Land

In diesem Projekt lernen Sie, wie Sie mit einem Arduino ein Thermometer herstellen. Die gemessenen Temperaturen werden Ihnen auf einem Sieben-Segment-Bildschirm angezeigt. Als Sensor verwenden wir einen DS18B20 Temperatursensor. Für die 2-Segment-Anzeige verwenden wir eine 7-stellige XNUMX-Segment-LED rot.

  • Stufe - Mittel 45% 45%
  • Dauer - 30/45 min 45% 45%
  • Kosten - 41,84 € abgeschlossen 35% 35%

Schritt 1: Anforderungen

Temperatursensor DS18B20

Der DS18B20 ist ein digitaler Temperatursensor. Das kommuniziert problemlos mit einem Arduino über einen Datenpin. Der linke Pin des Sensors muss mit GND (-) verbunden werden. Der mittlere Pin ist mit einem analogen Datenpin verbunden und der rechte ist mit dem VCC (5V) verbunden. Der DS18B20 ist in einer wasserdichten und einer ungeschützten Version erhältlich. Die wasserdichte Version wird häufig in Flüssigkeiten oder Feuchträumen eingesetzt. Der „nackte“ Fühler wird häufig zur Messung der Außentemperatur verwendet.
Der DS18B20 kann Temperaturen zwischen -55 und 125 Grad Celsius messen. Mit einer Genauigkeit von 0,5 zwischen -10 und 85. Es wird nicht empfohlen, den Sensor Temperaturen über 100 Grad Celsius auszusetzen. Zur Nutzung dieses Sensors werden im Prinzip nur GND und der Datenpin benötigt. Nur die Werte sind so niedrig, dass sie nicht gelesen werden können. Um die Werte höher zu machen, muss ein „Step-up“-Widerstand verwendet werden. Bei diesem Sensor handelt es sich um einen 4,7K Ohm Widerstand, der zwischen VCC und Datenanschluss gelegt wird.

2-stellige 7-Segment-LED rot

Eine 7-Segment-Anzeige gibt es in vielen verschiedenen Formen und Größen. Für dieses Projekt verwenden wir eines mit 2 Zahlen und 18 Pins. Die Anordnung der Pins ist im Bild unten dargestellt. In diesem Projekt verwenden wir die DP-Verbindungen nicht. Wie Sie im Bild unten sehen können, hat jeder „Strich“ seinen eigenen Buchstaben. In diesem Projekt ist beim Anschließen des Displays kein Platz für persönliche Eingaben. Wenn die Reihenfolge nicht gleich ist, funktioniert die Codierung nicht richtig.

Das Display kann nach längerer Nutzung recht warm werden. Unter 80 Grad Celsius kann das nicht schaden.

Schritt 2: Bauen und Verkabeln

Jetzt, da Sie alle Teile haben, können Sie mit dem Verbinden der Teile beginnen. Unten sehen Sie eine Zeichnung, wie die Teile mit dem Brot verbunden werdenboard und der Arduino. Stellen Sie sicher, dass Sie den DS18B20 richtig anschließen, wenn Sie ihn falsch herum anschließen, kann der Sensor beschädigt werden. Der Sensor hat eine flache und eine konvexe Seite. Die flache Seite ist die Vorderseite. Der Erdungsstift befindet sich dann auf der linken Seite.

 

DS18B20 Arduino-Thermometer fritzing

Schritt 3: Programmierung

 

Die meisten Codierzeilen sind der 7-Segment-Anzeige gewidmet. Dies erfordert viel Codierung, da es keine einfache Bibliothek dafür gibt. Außerdem besteht die Codierung aus einigen Normzeilen und dem Auslesen des Sensors.

Am Anfang sorgen wir dafür, dass alles richtig eingerichtet ist. Sie müssen die Bibliotheken für den Sensor hinzufügen. Geben Sie dann an, an welchem ​​Pin die Daten eingehen. Dann geben Sie diese Daten in die Bibliotheken ein. Kommen wir nun zum Teil der 7-Segment-Anzeige. Wir erstellen ein Array. In diesem Array müssen wir angeben, wie viele Ziffern wir in diesem Fall hinzufügen werden 10 (0-90. Wir müssen auch angeben, wie viele Werte es pro Ziffer gibt. Dann geben Sie die Daten pro Ziffer an. Sie tun dies mit HIGH oder LOW.7 Werte, die Sie geben, stellen die 7 Segmente im Display dar (a, b, c, d, e, f, g) Wenn ein Segment auf HIGH eingestellt ist, wird dieses Segment segment aufleuchten.

Wenn Sie all dies getan haben, müssen wir noch sicherstellen, dass wir die Nummern separat bedienen können. Wir werden dies tun, indem wir eine 3. und 4. Leere erstellen. Wir müssen diese Leerstellen am Anfang nennen. Nachdem alle Vorbereitungen abgeschlossen sind, gehen wir zum Setup. Hier starten wir den Sensor und die serielle Kommunikation. Dann geben wir an, welche Pins eingegeben und welche ausgegeben werden, wobei Pin 14 und 15 analoge Pins A0 und A1 sind.

Dann können wir mit der Hauptcodierung beginnen. Zuerst fragen wir den Sensor nach den Werten, die er misst. Dann fügen wir diese Werte zu einer Variablen hinzu. Dieser Wert ist eine Zahl mit zwei Dezimalstellen. Dies ist ein Problem, da wir nur 2 Zahlen anzeigen können. Für die erste Ziffer (D1) müssen wir den Wert durch 10 teilen und dann die erste Ziffer vor dem Komma nehmen. Für die zweite Ziffer (D2) verwenden wir den Normalwert und nehmen die erste Ziffer vor dem Komma. Bei einem Wert von 23,45 auf D1 würden Sie beispielsweise 2 erhalten und auf D2 würden Sie 3 erhalten. Diese Zahlen müssen wir dann übersetzen, damit die richtigen Segmente aufleuchten. Wir tun dies, indem wir uns auf die 3. und 4. Leere beziehen, wo wir diese Übersetzung machen werden. Schließlich schreiben wir innerhalb der Hauptcodierung die Temperatur auf den seriellen Monitor.

Für die 3. und 4. Leerstelle wird die gleiche Codierung verwendet, nur ein anderer Startstift. Damit diese Codierung funktioniert, ist es wichtig, dass die a/mg einer Zahl auch fortlaufend verbunden wird. Von D1 aus ist a auf Pin 2 und g auf Pin 8. Um zum nächsten Segment zu gelangen, können Sie einfach 1 zur Variablen für den Pin hinzufügen.

Jedes Mal beginnen wir die Leere, indem wir angeben, wo das a dieser Zahl verbunden ist. Als nächstes erstellen wir eine for-Schleife, die sich insgesamt 7-mal abspielt. Damit gehen Sie alle Segmente und alle einzugebenden Werte durch. In dieser Schleife beginnen wir damit, ihm zu sagen, was er mit dem ersten Pin tun soll. Durch Verweis auf das Array. Jedes Mal, wenn diese Leere wiederholt wird, wird dem Stift 1 hinzugefügt, damit er zum nächsten Segment wechselt.

Dies funktioniert genauso für die 4. Leere. Nur hat er eine andere Startnadel.

Die Bewertung von www.elektronicavoorjou.nl bei WebwinkelKeur-Bewertungen ist 9.3 / 10 basierend auf 4967 Bewertungen.