Ultraschallsensor HC-SR04 an PoKeys betreiben

Auf der Suche nach einer Lösung, um das Treppenlicht beim Betreten derselbigen zu aktivieren, stieß ich auf die Möglichkeit, einen Schallsensor einzusetzen. Dieser misst mittels Schall die Entfernung und kann somit erkennen, wenn man an ihm vorbei läuft. In diesem Artikel zeige ich, wie der Sensor an PoKeys zu betreiben ist.

 

Anschließen des Sensors

Zunächst verkabeln wir den Sensor mit unserem PoKeys-Gerät. Der Sensor wird mit 5V Gleichstrom betrieben und benötigt zusätzlich einen PIN als Trigger und einen weiteren für das Echo. Über den Trigger wird durch den Sensor ein Ultraschall-Signal ausgesendet und das Echo wird am entsprechenden Pin für das Echo signalisiert.

Wir verbinden also VCC und GND wie auf der Schaltskizze gezeigt und verwenden für den Trigger den Pin 3 und für das Echo den Pin 41.

 

 

Konfiguration in der PoKeys-Software

In der Konfigurationssoftware von PoKeys müssen wir anschließend den Pin 41 konfigurieren. Wir wählen dazu den Pin 41 aus, setzen diesen als digitalen Eingang und aktivieren den Zähler wie im Bild gezeigt. Dabei möchten wir beide Zählervarianten verwenden, also die steigende sowie fallende Flanke. Die getätigten Änderungen speichern wir mir „Sende zum Gerät“.

 

 

Erstellen der Logik in Poblocks

Wir schließen die PoKeys-Konfigurationssoftware und wenden uns PoBlocks zu. Dort erstellen wir eine neue Logik zum Betrieb des Ultraschallsensors. Zur grundsätzlichen Erklärung sei gesagt, dass wir in regelmäßigen Abständen ein Trigger-Signal an den Sensor schicken und die Zeitdifferenz zwischen Trigger und Echo berechnen. Aus dieser Zeitdifferenz können wir unter Berücksichtigung der Schallgeschwindigkeit die Entfernung messen.

Das Poblocks-Programm selbst wurde freundlicherweise vom Polabs-Team zur Verfügung gestellt und von mir nur leicht modifiziert um es an den HC-SR04 anzupassen.

 

Die Clock wird auf 250ms eingestellt und die beiden Pulse-Timer tackten pro Millisekunde. Das Ergebnis erhalten wir in 1/25 Mikrosekunden-Schritten. Um also ein zeitliches Ergebnis zu erhalten, multiplizieren wir den Wert mit 25. Zudem multiplizieren wir den Wert mit dem spezifischen Wert der Schallgeschwindigkeit, 58. Die 25 mal 58 ergeben einen Multiplikator von 1450, wie er auch im vorgeschlagenen Programm zu finden ist.

Der Inhalt der Custom PoIL stammt vom Polabs-Team.

 

Gerne stelle ich den Inhalt auch in Textform zur Verfügung.

Variablen:

on1 : OUTPUT(1,int32)
off1 : OUTPUT(2,int32)

 

Code:

# Capture 1
LOAD Dh04E0
STORE on1
LOAD Dh04F0
STORE off1

 

 

Test und Abstandsmessung

Wir speichern das neue Programm, übertragen es in PoKeys, starten wie abgefragt den PoIL-Mode und beobachten das Ergebnis. Mit einem Gliedermaßstab und einem Stück Papier konnte ich in meinem Versuch die Genauigkeit des Ultraschallsensors erstaunlich gut nachvollziehen. Der hier angezeigte Wert 159 entspricht dem Abstand in Zentimetern.