Arduino Projekt: Liniendiagramm mit Temperaturwerten

In diesem Projekt möchte ich ein Liniendiagramm auf dem 1,3″ OLED Display zeichnen.

Arduino Projekt - Liniendiagramm mit Temperaturwerten
Arduino Projekt – Liniendiagramm mit Temperaturwerten

Die Daten für das Diagramm werden von einem analogen Temperatursensor LM35DZ gelesen.

Temperatursensor LM35DZ
Temperatursensor LM35DZ

Teileliste

Für dieses Projekt wird benötigt:

Aufbau & Schaltung

Zunächst wollen wir die Schaltung aufbauen. Durch die überschaubare Teileliste ist dieser schnell erledigt.

Schaltung - LM35DZ & 1,3" OLED Display am Arduino UNO
Schaltung – LM35DZ & 1,3″ OLED Display am Arduino UNO

 

Bauelement / Pin Arduino UNO
1,3″ OLED Display  
SDA SDA bzw. analoger Pin A4
SCL SCL bzw. analoger Pin A5
VCC 3,3 V
GND GND
LM35D  
GND GND
Vout analoger Pin A0
+Vs 5V

Aufbau des Temperatursensors LM35DZ

Der analoge Temperatursensor LM35DZ verfügt über 3 Pins. Um die korrekte Einbauweise zu ermitteln gibt es zwei Indikatoren. Das Bauelement ist abgeflacht und hat eine runde Auswölbung und auf der Abgeflachten Seite steht die Bezeichnung des Sensors. 

Schritt 1 – Grundgerüst des Sketches erstellen

Im ersten Schritt wollen wir das Grundgerüst erstellen. D.h. wir zeichnen das Liniendiagramm und erstellen die Texte für den aktuellen, maximalen sowie minimalen Wert.

Schritt 2 – aufzeichnen der Temperaturwerte

Um die Temperaturwerte auszulesen müssen wir den Temperatursensor am analogen Pin A0 mit der Funktion analogRead(A0) auslesen.

Der Temperatursensor LM35DZ liefert einen Wert von 0 bis 1,5V am analogen Pin dieses interpretiert der Arduino als Wert von 0 bis 307 (5V == 1023 , somit sind 1,5 == 307). Dieses Wert mappen wir nun mit der Funktion map auf die möglichen Temperaturwerte von 0 bis 150°C.

Die Funktion map hat 5 Parameter:

  • ausgangswert ist der Wert welcher gemappt werden soll,
  • minWert1, untere Grenze des Ausgangswertes,
  • maxWert1, obere Grenze des Ausgangswertes,
  • minWert2, untere Grenze des Zielwertes,
  • maxWert2, obere Grenze des Zielwertes

Somit erhalten wir nun einen ziemlich genauen Temperaturwert in  Grad Celsius. Diese Werte speichern wir uns in ein Array mit maximal 17 Stellen.

Schritt 3 – Zeichen der Temperaturwerte

Im vorherigen Schritt haben wir die Temperaturwerte in einem Array gespeichert, nun wollen wir diese auf dem Display zeichnen. Es wird nun für jeden Wert aus dem Array ein Kreis (gefüllt) auf dem Display gezeichnet.

Der Wert 0,0 in dem Diagramm liegt an der Position x = 5 y = 60. Wobei der Wert 60 unsere untere grenze ist. Der Vorteil des Temperatursensor ist das dieser nur positive Temperaturwerte messen kann somit können wir einfach von dem Maximalen Wert den Temperaturwert abziehen und haben somit eine X,Y Koordinate.

Zusätzlich zeichnen wir eine Linie zwischen die Verbindungspunkte. Dazu müssen wir uns die alte Koordinate zwischenspeichern.

Quellcode

Hier nun der gesamte Quellcode (ohne Kommentare).

Video

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.