Mit dem Uno messen und dem PC auswerten

Eigentlich wäre es ganz nett, die Messwerte auch als grafische Darstellung sehen zu können. Dabei möchte ich mir die ganze Arbeit, die grafische Ausgabe selbst zu programmieren oder von irgendwo einzubinden, ersparen. Den Speicherplatz brauche ich eher für die Messung.

Hardware
Uno oder Mega2560

Möglichkeiten der externen Darstellung
Die USB Schnittstelle gibt mir die Möglichkeit, die Messwerte zum PC zu Übertragen. Das will ich in diesem Fall nutzen. Ist die Messung nicht allzu schnell, so das genug Zeit für die serielle Übertragung bleibt, kann ich den seriellen Plotter der Arduino IDE einsetzen. Oder auch ein serielles Terminalprogramm. Als erstes Übertrage ich dann den Titel, Namen und physikalische Einheit der Messwerte. Die Messwerte mache ich praktischerweise paarweise mit Zeitpunkt und Messwert. Als Trennzeichen nehme ich einfach ein Leerzeichen.

serieller Plotter
Dafür muss ich nur den Messwert zeilenweise ausgeben. In der IDE starte ich dann den seriellen Plotter (Werkzeuge -> serieller Plotter) und schon sehe ich die grafische Ausgabe und kann die Änderungen im Messwert direkt sehen.

serielles Terminalprogramm
Das ist etwas komplizierter. Hierfür brauche ich ein Terminalprogramm. In den Optionen muss ich die Übertragungsrate passend einstellen, die Ausgaben kann man als Logfile oder Capturefile bequem speichern.
Nach der Messung hole ich mir meine Messwerte aus dem Logfile heraus und speichere das als Textfile ab, dafür kann man natürlich auch ein Programm schreiben. Darin stehen dann zeilenweise: Titel, Zeit und Messwert mit physikalischer Einheit, dann jeweils die Messwertpaare.
Schließlich öffne ich ein Tabellenkalkulationsprogramm und importiere aus der Textdatei als csv Werte mit Leerzeichen als Trennzeichen. Treten mehrere Trennzeichen hintereinander auf kann man eventuell auch die Trennzeichen zusammenfassen. Und dann kann ich auch eine grafische Auswertung machen z.B. als XY-Grafik. Diese Auswertung kann ich dann ebenfalls speichern und weiter verwenden.

Bemerkung
Für diese Anwendung verwende ich meinen Frequenzmesser und wandle ihn etwas ab. Für die Auswertung sind zwei defines vorhanden: PLOT für die Ausgabe auf dem seriellen Plotter und TERMINAL für die Auswertung mit einem seriellen Terminal. Den nicht verwendeten einfach auskommentieren.
Ist die Messung so schnell, das die Zeit nicht für eine Übertragung reicht, so muss ich die Messwerte irgendwo zwischenspeichern. Ob im RAM, SD Karte, Flash oder sonst irgendein Medium und dann anschließend übertragen.

Screenshots

Ausgabe mit dem seriellen Plotter
Auswertung mit Tabellenkalkulation

Sketch

Links

Serial Terminal Basics
https://learn.sparkfun.com/tutorials/terminal-basics/all#coolterm-windows-mac-linux

Frequenz messen mit dem Uno
http://blog.softwareentwicklung-als-prozess.de/frequenz-messen-mit-dem-uno

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.