Beispiel | Entfernung mit Modul HC-SC04 messen

Vorlage

Beispiel: Raspberry (oder Linux-PC) sendet eine Messanfrage an Arduino. Arduino antwortet mit der Laufzeit des Signals in Mikrosekunden. Raspberry wartet auf die Antwort und berechnet die Entfernung.

Vorlage

Vorlage


C Programm für Linux-PC oder Raspberry

Funktion ComGetCm()

Der Programmausschnitt zeigt die Funktion ComGetCm(). Die Funktion sendet die Anfrage und wartet auf die Antwort. Alle Fehler (Timeout, USB, Umwandlung usw.) landen im Err-Objekt.

Das Autragsende wird jede Millisekunde geprüft. Der Rechner parkt dabei resourcenschonend in Funktion peekTaste(1000000). Die Funktion kann jederzeit durch Tastendruck oder USB-Fehler unterbrochen werden.


C++ Programme für Arduino

Es folgen Ausschnitte der C++ Sourcen für den Arduino.

Arduino main

Das Com-Objekt wird mit der Sketch-Id und der Funktion execCmdUser erzeugt.

Der Aufruf von Com.ckh() führt die Kommunikation durch.

Funktion execCmdUser Der Programmausschnitt zeigt den Antwortblock für die Anfrage CMD_GET_Dist.

Com->getData(0) liefert die richtige Antwortnummer (InSlot) für diesen Auftrag.

Der Aufruf HcSr04.getDist() ermittelt den Abstand in Mikrosekunden (Siehe nächstes Bild).

Funktion HcSr04.getDist() HcSr04.getDist() hält die vom Modul HC-SR04 geforderte Wartezeit (ca. 60ms) immer ein.

[    Beispiele    ]

Günther Schardinger. GNU C Linux, objektorientiert gcc make makefile C++ Qt Arduino Raspberry Pi 3, GPIO WiringPi i2c Bus, BCM Broadcom, RASPIAN Debian Jessie, C im 21. Jahrhundert, Programmieren in C, Makefiles, Terminalausgaben