Seri­el­ler Plotter

Lese­zeit: 3 Minu­ten

Der Ardui­no bie­tet nicht nur die Text­aus­ga­be mit ➨Serial.print(), er kann auch Ereig­nis­se oder Mess­wer­te mit einem Plot­ter aufzeichnen.

Den Seri­el­len Plot­ter fin­dest du als Sym­bol oder unter Werk­zeu­ge → Seri­el­ler Plotter.

Am ana­lo­gen Ein­gang A0 ist ein Schie­be­reg­ler oder ein Dreh­reg­ler ange­schlos­sen.
Der Seri­el­le Plot­ter zeigt die Ver­än­de­run­gen des Ein­gangs­si­gnal an.

int REGLER = A0;
int ReglerWert = 0;

void setup() 
{
  Serial.begin(9600);

  // auf serielle Verbindung warten
  while (!Serial) {;}
}

void loop() 
{
  ReglerWert = analogRead(REGLER);
  Serial.println(ReglerWert);
  delay(200);
}

Der Seri­el­le Plot­ter kann auch meh­re­re Wer­te als far­bi­ge Lini­en dar­stel­len. Im Bei­spiel wer­den vier Rei­hen ver­schie­de­ner Zufalls­zah­len dargestellt. 

void setup()
{
  Serial.begin(9600);
  // auf serielle Verbindung warten
  while (!Serial) { ; }
}

void loop()
{
  // Zufallszahlen ermitteln
  int ZufallsZahlen1 = random(1, 10);
  int ZufallsZahlen2 = random(10, 20);
  int ZufallsZahlen3 = random(20, 30);
  int ZufallsZahlen4 = random(30, 40);

  // Werte schreiben
  /*
    Titel im Plotter, darf keine Leerzeichen enthalten
    mit : abschließen
  */
  Serial.print("1-10:");
  Serial.print(ZufallsZahlen1);

  // mit , abschließen
  Serial.print(",");

  Serial.print("10-20:");
  Serial.print(ZufallsZahlen2);
  Serial.print(",");

  Serial.print("20-30:");
  Serial.print(ZufallsZahlen3);
  Serial.print(",");
  
  Serial.print("30-40:");
  Serial.print(ZufallsZahlen4);

  // letzter Wert: mit Serial.println und , abschließen
  Serial.println(",");
  delay(500);
}

Ver­gleich der Tem­pe­ra­tur­sen­so­ren: TMP36, DHT11 und und TO92 (DS18B20).

# include "DHT.h"

// DHTTYPE: DHT11 oder DHT22
# define DHTTYPE DHT11
# define DHTPIN 8
DHT dht(DHTPIN, DHTTYPE);

// TO92 (DS18B20)
# include "OneWire.h"

# include "DallasTemperature.h"

// Pin des Sensors an OneWire übergeben
# define ONE_WIRE_BUS 9

// oneWire-Instanz erstellen
OneWire oneWire(ONE_WIRE_BUS);

// oneWire-Instanz an den Sensor übergeben
DallasTemperature GY21(&oneWire);

// Pin für TMP36
int TEMPERATURSENSOR = A0;

void setup() 
{
  Serial.begin(9600);
  Serial.println("Temperatur messen:");

  // dht11 starten
  dht.begin();

  // Temperatursensor starten
  GY21.begin();
}

void loop() 
{
  GY21.requestTemperatures(); 
  
  // Wert des Sensors TMP36 lesen
  float SensorWert = analogRead(TEMPERATURSENSOR);

  // richtiges Verhältnis zwischen 5 V = 5000 mV und 1023 mV herstellen
  // -> gemessenen Wert mit 5 malnehmen und dann durch 1023 teilen
  float MesswertVolt = SensorWert * 5.0;
  MesswertVolt = MesswertVolt / 1023.0;

  /*
    1 Grad = 10mV = 0,01 V = 1/100 V
    Versatz von 500mV = 0,5 V abziehen
    und durch 0.01 = 1 Grad teilen
  */
  float TMP36Temperatur = (MesswertVolt - 0.5) / 0.01;

  /* für den Plotter:
     Messwert mit Serial.print(",") abschließen
     nach dem letzen Messwert Serial.println(",")
  */
  Serial.print("TMP36:");
  Serial.print(TMP36Temperatur);
  Serial.print(",");
  Serial.print("DHT11:");
  Serial.print(dht.readTemperature());
  Serial.print(",");

  Serial.print("GY21:");
  Serial.print(GY21.getTempCByIndex(0));
  Serial.println(",");
  
  // Wartezeit bis zur nächsten Messung
  delay(500);
}

 Serieller Monitor Seri­el­ler Monitor 

Letzte Aktualisierung: 20. Okt 2023 @ 9:45