Franzis Adventskalender für Arduino – Tag 20

In diesem Beitrag möchte ich mit dir das zwanzigste Türchen des Franzis Adventskalender für Arduino öffnen.

Franzis Adventskalender für Arduino – Tag 20
Franzis Adventskalender für Arduino – Tag 20

Wenn wir nun das Türchen öffnen, finden wir ein Stück Knete.

Laut Handbuch sollen wir diese Knete nutzen, um vereinfacht einen kapazitiven Touchsensor zu erstellen. Da ich die Schaltungen aus dem Handbuch nicht nachbauen bzw. vorstellen werde, denn dort sind ja freilich Schweiß, Blut und Zeit reingeflossen, werde ich dir andere Informationen rund um den Mikrocontroller Arduino zeigen.

Terminal Software Putty

Nachfolgend möchte ich dir das Tool Putty vorstellen. Dieses kann man nutzen, um die serielle Ausgabe vom Mikrocontroller auszulesen, ohne die Arduino IDE zu nutzen.

Terminal Software - Putty
Terminal Software – Putty

Das Tool Putty kannst du kostenfrei von der Seite https://putty.org/ als EXE-Datei herunterladen.

Features von Putty

Das Tool ist sehr mächtig und wir können damit Verbindungen zu nachfolgenden Geräten aufbauen.

  • Server per SSH und Telnet,
  • Mikrocontroller oder ähnlichen Geräten per serieller Schnittstelle

Des Weiteren können wir die gesamte Ausgabe in eine Datei umleiten und somit die Daten, welche wir Senden & Empfangen, speichern.

Im Nachfolgenden zeige ich dir ein kleines Video wo ich eine Verbindung zu einem Wemos D1 Mini aufbaue und dort auf dem Mikrocontroller in Micropython programmiere die gesendeten und empfangenen Daten werden dabei in einer Datei gespeichert. Die Datei lasse ich mir zusätzlich im Tool Baretail fortlaufend anzeigen.

Kleines Programm für den Arduino

Hier zunächst ein kleines Programm, bei welchem wir lediglich den aktuellen Wert des Drehpotentiometers auf der seriellen Schnittstelle ausgeben.

// Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0

int lastValue = -1;

void setup() {
  //begin der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);
}

void loop() {
  //lesen des aktuellen Wertes des Drehpotentiometers
  int value = analogRead(poti);
  //Wenn der letzte Wert ungleich des gelesenen Wertes ist, dann...
  if (lastValue != value) {
    //speichern des gelesenen Wertes
    lastValue = value;
    //Ausgabe auf der seriellen Schnittstelle
    Serial.println(value);
  }
}

Da wir die Daten später in eine Datei schreiben wollen, prüfen wir, ob der gelesene Wert ungleich letzten Wertes entspricht. Wenn dieser ungleich ist, dann wird dieser zwischengespeichert und auf der seriellen Schnittstelle ausgegeben.

Nachfolgend wollen wir nun in Putty fortfahren und müssen die Arduino IDE schließen.(Natürlich solltest du vorher das Programm auf den Mikrocontroller überspielen.)

Aufbau einer Verbindung mit Putty

Um eine serielle Verbindung mit Putty aufzubauen, muss man in der Oberfläche die Auswahl „Serial“ wählen und im Eingabefeld „Serial line“ den COM Port eintragen. Wenn du das Beispielprogramm wie oben gewählt hast, kann die Geschwindigkeit im Feld „Speed“ mit 9600 baud belassen werden.

Wenn wir nun auf die Schaltfläche „Open“ klicken, wird die Verbindung hergestellt und ein kleines, schwarzes Fenster geöffnet. In diesem Fenster sehen wir nun die Ausgabe des Mikrocontrollers.

Schreiben der Daten in eine Datei

Wie bereits erwähnt ist ein sehr nützliches Feature von Putty das Schreiben der Daten in eine Datei. Im nachfolgenden Video zeige ich dir einmal wie du Putty konfigurierst, um alle Ausgaben in eine Datei zu schreiben.

Erzeugen einer CSV Datei

Wir können nun mit diesem Feature eine CSV-Datei beschreiben und die Daten strukturiert ablegen.

Was ist eine CSV-Datei?

In einer CSV-Datei werden die Daten zeilenweise, kommasepariert abgelegt. Diese Datei können wir dann in zbsp. Microsoft Excel, Libre Office Calc einlesen und in zbsp. Diagramme umwandeln.

Anpassen des Programmes

Damit wir die Daten später weiterverwenden können, müssen wir unser Programm etwas anpassen.

In meinem Fall erzeuge ich in der ersten Spalte einen Index, welcher fortlaufend hochgezählt wird und in der zweiten Spalte den Wert des Drehpotentiometers.

// Drehpotentiometer am analogen Pin A0 angeschlossen
#define poti A0

int lastValue = -1;
long index = 0;

void setup() {
  //begin der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);

  //Ausgeben der Tabellenüberschriften
  Serial.print("Idx");
  Serial.print(";");
  Serial.println("Wert");
}

void loop() {
  //lesen des aktuellen Wertes des Drehpotentiometers
  int value = analogRead(poti);
  //Wenn der letzte Wert ungleich des gelesenen Wertes ist, dann...
  if (lastValue != value) {
    //speichern des gelesenen Wertes
    lastValue = value;
    //den Index um eins erhöhen
    index = index + 1;
    //Ausgabe auf der seriellen Schnittstelle
    Serial.print(index);
    Serial.print(";");
    Serial.println(value);
  }
}

Wenn wir dieses Programm auf den Mikrocontroller überspielen, dann wird im seriellen Monitor die Werte wie folgt ausgegeben.

Idx;Wert
1;914
2;913
3;914

Erzeugen der CSV-Datei mit Putty eines Diagrammes mit Microsoft Excel

Diese Daten schreiben wir nun in eine CSV-Datei und öffnen anschließend diese mit Microsoft Excel, um ein Diagramm zu erzeugen.

Kommentar hinterlassen

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