Serial Plotter in der IDE

Hab es bisher noch nicht für Voll genommen:

In der IDE ist jetzt auch ein serieller Plotter für grafische Anzeigen der Arduino prinln Werte.

Cool ! :wink:

Hab mal was aus dem Web geladen und etwas gespielt:

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

}

void loop() {
  for(int z=0; z<360; z++)
  {
    //Serial.println(cos(DEG_TO_RAD * z));
    Serial.println(sin(DEG_TO_RAD * z));
    delay(5);
  }

}

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

}

void loop() {
  Serial.println(12.5 + random(55) * 0.7);
  delay(50);

}

Prima um Zustände im Programm testweise zu überwachen. Brauch man keine LED oder kein Display mehr.

Ja, sowas ähnliches hatte ich mir mal mühsam selbst gebaut.

Verdammter Mist. Alles umsonst. :wink:

Ein schönes Video dazu :

Wunderbar um ein PID-Regler einzustellen.
Oder andere werte zu beobachten zb den MPU6050 ( nutze ich gerade dafür )

Skala geht aber nur automatisch.

Wenn ich z.B. den Luftdruck vom BMP280 anzeige skaliert er von 0 bis 3000.

Sind natürlich leichte Änderungen kaum zu erkennen. :confused:

Ein Nachstellen der Skalierung wäre wünschenswert...

Mehrere Werte können mit \t geplottet werden:

Siehe Quelle hier!

#include "math.h";
 
void setup() {
  // Enable Serial Output
  Serial.begin(9600);
}
 
void loop() {
  for (double i = 0; i < 2 * M_PI; i = i + 0.05) {
    Serial.print (sin(i));
    Serial.print ("\t");
    Serial.println (cos(i));
  }
}

stoni99:
Skala geht aber nur automatisch.

Wenn ich z.B. den Luftdruck vom BMP280 anzeige skaliert er von 0 bis 3000.

Sind natürlich leichte Änderungen kaum zu erkennen. :confused:

Ein Nachstellen der Skalierung wäre wünschenswert...

Habe die gemessenen Pascal mit

Serial.println((bme.readPressure())-101000);

verkleinert. Dann wird für die übrigen 50 eine brauchbare Skala von 0 bis 120 angezeigt.

Merkwürdigerweise wird bei jedem Aufruf vom Plotter eine andere Skalierung eingestellt. :o

Zufallsprinzip? :cold_sweat:

kann mir bitte jemand sagen wie ich einen sägezahn erzeuge?

void loop() {
 int val = (millis() >> 10) & 0x1F; // zählt ca. im Sekundentakt hoch 0 .. 31 
 static int alt;
 if (alt != val)  {Serial.println(val); alt=val;}
}

kann mir bitte jemand sagen, wofür du das brauchst?