HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von jp112sdl » 16.07.2020, 07:29

Hast du mal die delay-Zeiten aus deinem Test-Sketch

Code: Alles auswählen

  digitalWrite(trigger, LOW);         // kurze Zeit Trigger-Pin auf LOW um Signalstörung zu vermeiden
  delay(5);                           // warten
  digitalWrite(trigger, HIGH);        // Signal senden ...
  delay(10);                          // ... für 10 ms
beim LEV-US Sketch versucht?
https://github.com/jp112sdl/HB-UNI-Sen- ... #L201-L205

Ansonsten auch mal seriell die Laufzeiten direkt ausgeben und vergleichen:

Code: Alles auswählen

  dauer = pulseIn(echo, HIGH);        // Zeit in Mikrosekunden zählen, bis Signal zum US-Sensor zurückkehrt
bzw.
https://github.com/jp112sdl/HB-UNI-Sen- ... S.ino#L207

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von myoo » 16.07.2020, 21:52

Ich habe noch mal getestet und und den unveränderten Wert als RAW mitgeloggt. Bei einem Abstand von 13cm passt noch alles. Danach Schrittweise runter auf 4cm gegangen. Abwechselnd habe ich dann immer den Test-Sketch und HB-UNI-Sen-DIST-US geflasht. Die Position des US-Sensors dabei immer unverändert geblieben. Nach ein etwas "Einschwingzeit" wurden die Werte notiert.

Mit den Delay-Werten (2-50) vor dem Sendeimpuls habe ich auch etwas herumprobiert. Bei Delay 2 schwanken die einzelnen Meßergebnisse etwas mal stärker. Aber nie mehr als 1cm - daher anscheinend nicht relevant. Ab Delay 5 sind sie relativ stabil. Habe die Test in beiden Varianten mit Delay 10 durchgeführt.

Testaufbau sollte auch zu keinen Fehlern führen ?
20200716_210921.jpg
Testaufbau

Bis zum Abstand von 13 cm sind auch noch die RAW Werte einigermaßen identisch. Wenn der Anbstand dann kleiner wird, wird der angezeigte Wert in der Konsole beim HB-UNI-Sen-DIST-US fast linear wieder größer ... sehr eigenartig. Das Gerät wurde jeweils immer so umgeflasht es im Bild oben da steht und nicht weiter angefasst.

Code: Alles auswählen

## 13cm - Test-Sketch
20:52:15.421 -> 126 mm - (RAW: 736)
20:52:20.469 -> 128 mm - (RAW: 748)
20:52:25.505 -> 128 mm - (RAW: 746)

## 13cm - HB-UNI-Sen-DIST-US-100
20:55:13.472 -> RAW     (1): 766
20:55:13.472 -> MEASURE (1): 13 cm
20:55:13.472 -> OFFSET  (1): 0 cm
20:55:13.472 -> DISTANCE(1): 13 cm
20:55:13.519 -> <- 0E 04 86 53 F9D601 000000 01 00 0D 28 00  - 5203
20:55:25.823 -> RAW     (1): 768
20:55:25.823 -> MEASURE (1): 13 cm
20:55:25.823 -> OFFSET  (1): 0 cm
20:55:25.823 -> DISTANCE(1): 13 cm
20:55:25.869 -> <- 0E 05 86 53 F9D601 000000 01 00 0D 28 00  - 5859
20:55:38.165 -> RAW     (1): 754
20:55:38.212 -> MEASURE (1): 13 cm
20:55:38.212 -> OFFSET  (1): 0 cm
20:55:38.212 -> DISTANCE(1): 13 cm
20:55:38.212 -> <- 0E 06 86 53 F9D601 000000 01 00 0D 28 00  - 6514


## 10cm - Test-Sketch
20:59:27.917 -> 98 mm - (RAW: 574)
20:59:32.946 -> 96 mm - (RAW: 562)
20:59:38.001 -> 98 mm - (RAW: 574)

## 10cm - HB-UNI-Sen-DIST-US-100
20:57:29.295 -> RAW     (1): 678
20:57:29.295 -> MEASURE (1): 11 cm
20:57:29.295 -> OFFSET  (1): 0 cm
20:57:29.295 -> DISTANCE(1): 11 cm
20:57:29.342 -> <- 0E 0F 86 53 F9D601 000000 01 00 0B 28 00  - 12414
20:57:41.656 -> RAW     (1): 676
20:57:41.656 -> MEASURE (1): 11 cm
20:57:41.656 -> OFFSET  (1): 0 cm
20:57:41.656 -> DISTANCE(1): 11 cm
20:57:41.699 -> <- 0E 10 86 53 F9D601 000000 01 00 0B 28 00  - 13072
20:57:54.012 -> RAW     (1): 676
20:57:54.012 -> MEASURE (1): 11 cm
20:57:54.012 -> OFFSET  (1): 0 cm
20:57:54.012 -> DISTANCE(1): 11 cm
20:57:54.012 -> <- 0E 11 86 53 F9D601 000000 01 00 0B 28 00  - 13727


## 7cm - Test-Sketch
21:01:53.960 -> 64 mm - (RAW: 376)
21:01:58.983 -> 66 mm - (RAW: 388)
21:02:04.046 -> 66 mm - (RAW: 388)

## 7cm - HB-UNI-Sen-DIST-US-100
1:03:11.960 -> RAW     (1): 914
21:03:11.960 -> MEASURE (1): 15 cm
21:03:11.960 -> OFFSET  (1): 0 cm
21:03:12.007 -> DISTANCE(1): 15 cm
21:03:12.007 -> <- 0E 03 86 53 F9D601 000000 01 00 0F 28 00  - 5828
21:03:24.321 -> RAW     (1): 914
21:03:24.321 -> MEASURE (1): 15 cm
21:03:24.321 -> OFFSET  (1): 0 cm
21:03:24.321 -> DISTANCE(1): 15 cm
21:03:24.368 -> <- 0E 04 86 53 F9D601 000000 01 00 0F 28 00  - 6483
21:03:36.681 -> RAW     (1): 914
21:03:36.681 -> MEASURE (1): 15 cm
21:03:36.681 -> OFFSET  (1): 0 cm
21:03:36.681 -> DISTANCE(1): 15 cm
21:03:36.728 -> <- 0E 05 86 53 F9D601 000000 01 00 0F 28 00  - 7139


## 4cm - Test-Sketch
21:10:51.484 -> 44 mm - (RAW: 258)
21:10:56.482 -> 43 mm - (RAW: 256)
21:11:01.545 -> 43 mm - (RAW: 256)

## 4cm - HB-UNI-Sen-DIST-US-100
21:09:22.458 -> RAW     (1): 1186
21:09:22.458 -> MEASURE (1): 20 cm
21:09:22.458 -> OFFSET  (1): 0 cm
21:09:22.458 -> DISTANCE(1): 20 cm
21:09:22.505 -> <- 0E 21 86 53 F9D601 000000 01 00 14 28 00  - 26109
21:09:34.818 -> RAW     (1): 1186
21:09:34.818 -> MEASURE (1): 20 cm
21:09:34.818 -> OFFSET  (1): 0 cm
21:09:34.818 -> DISTANCE(1): 20 cm
21:09:34.818 -> <- 0E 22 86 53 F9D601 000000 01 00 14 28 00  - 26765
21:09:47.176 -> RAW     (1): 1174
21:09:47.176 -> MEASURE (1): 20 cm
21:09:47.176 -> OFFSET  (1): 0 cm
21:09:47.176 -> DISTANCE(1): 20 cm
21:09:47.176 -> <- 0E 23 86 53 F9D601 000000 01 00 14 28 00  - 27420
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von jp112sdl » 16.07.2020, 22:18

Hmm, also wenn die RAW Werte schon nicht stimmen, dann ist da irgendwo noch was Grundlegendes im Argen.

Den US-100 habe ich an der Zisterne verbaut, aber mit 16cm Abstand über max. Höhe. Daher ist mir das noch nie aufgefallen.

Ich hoffe, es hängt nicht mit dem AskSin Alarmclock Timer zusammen.

Hängt dein US-100 permanent an Vcc oder wird er vom SENSOR_EN_PIN versorgt?
Dann ist vielleicht die Aufwachzeit von 300ms zu kurz?
https://github.com/jp112sdl/HB-UNI-Sen- ... S.ino#L197

Du könntest mal noch versuchen einen anderen SENSOR_ECHO_PIN am Arduino zu nutzen.
Oder auch vor der Messung noInterrupts(); aufrufen und danach interrupts();

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von myoo » 17.07.2020, 00:33

:idea:
Es scheint irgendwie mit dem SENSOR_EN_PIN zu tun zu haben. Wenn ich den direkt an VCC hänge funktioniert es einwandfrei und ich bekomme die gleichen Meßergebnisse wie beim Test-Sketch - bis runter auf 4cm. :)

:arrow: Die Aufwachzeit habe ich bis auf 5000ms getestet - hat leider nichts am Meßergebnis geändert.

:arrow: nointerrupts() und interrupts(); habe ich um diesen Block herum gesetzt - hat leider auch nicht geholfen.
https://github.com/jp112sdl/HB-UNI-Sen- ... #L156-L175

:arrow: Ich habe die noch freien PINS 2,3,5,6,7,9 für SENSOR_ECHO_PIN und SENSOR_EN_PIN durchprobiert. Aber auch dies ohne Erfolg.

Ich habe das auch noch mit 2 anderen US-100 ausprobiert. Aber auch dort scheint nur der direkte Anschluss des Sensors an VCC zu einem brauchbaren Ergebnis bei kurzen Distanzen zu führen. Das ist sicherlich nicht so optimal für den Gesamtstromverbrauch, aber schon mal besser als vorher. :D
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von jp112sdl » 17.07.2020, 06:47

Vielen Dank für die vielen Versuche und Erkenntnisse!

Dass es am EN_PIN hängt, wundert mich wirklich.
Laut Datenblatt arbeitet der US-100 ab 2.4V und hat eine Stromaufnahme von 2mA.
Das liegt auch alles innerhalb der Spezifikation, was den OUTPUT-Pin am Pro Mini betrifft.
Selbst wenn es beim Anlegen der Spannung eine kurze Stromspitze gibt, dann hätte es aber mindestens mit Wartezeiten > 1000ms funktionieren müssen.

Ich finde auch nix im Netz, ob der US-100 nach dem Anlegen von Vcc eine "Aufwärmzeit" benötigt.
myoo hat geschrieben:
17.07.2020, 00:33
Das ist sicherlich nicht so optimal für den Gesamtstromverbrauch, aber schon mal besser als vorher.
Ein Transistor würde vielleicht schon ausreichen, um darüber Vcc mittels EN_PIN auf den US-100 zu schalten.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von myoo » 18.07.2020, 14:17

Also mit einem Transistor hab ich es nicht hinbekommen eine ordentliche Schaltspannung hinzubekommen ... vielleicht habe ich aber gerade auch nur einen Knoten im Kopf ... :lol:

Bei mir zieht der US-100 bei 3,5 VCC ca. 1,13 mA - das passt in die Spezifikation. Das hat mir dann doch keine Ruhe gelassen ...
Zum messen mit Multimeter habe ich den Delay vom EN_PIN auf 3000 ms hochgesetzt und es mit einer kleinen Gegentaktschaltung noch mal probiert. Vielleicht etwas zu aufwändig, aber erst so habe ich es relativ brauchbar hinbekommen, das Schaltsignal auf den VCC-Eingang des US-100 zu bekommen. Anstatt die 3,5VCC vom Arduino habe ich auch mal die 4,1V vom LiPo Akku verwendet. Aber auch damit hat sich an der fehlerhaften Entfernungsmessung bei den kurzen Abständen nichts geändert.
Vielleicht bringt dich das noch irgendwie weiter. Für mich persönlich ist das kein Problem - ich kann auch einfach die nicht getaktete Spannung nehmen.
20200718_132135.jpg
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von jp112sdl » 18.07.2020, 15:49

Mit einem PNP-Transistor in der Vcc-Leitung des US-100 ging nicht?
Der SENSOR_EN_PIN muss dann noch invertiert werden.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von myoo » 20.07.2020, 21:20

Ja, jetzt wo du es sagst ... das geht natürlich auch - sogar noch einfacher. Ich wollte eigentlich nix groß am Programm umschreiben und es einfach mit Hardware erschlagen. Letztendlich sind es ja auch nur 2 Stellen, wo man LOW statt HIGH einträgt und fertig. :lol:

Ändert aber leider auch nichts am Ergebnis. Unter 12cm Abstand wird es über den vom Arduino gesteuerten EN_PIN ungenau. Setze ich die Steuerung des EN_PIN außer Kraft indem ich Basis/Gate vom Transistor/FET dauerhaft auf HIGH (oder LOW - je nach verwendeter Schaltung), und somit dauerhaft Vcc am US-100 anliegen habe, kann man runter bis auf bis auf 3-4cm Abstand messen. Selbst wenn ich den Delay vom EN_PIN auf 25.000ms setze ändert es nichts daran. Ich habe auch keine Idee mehr, warum das so ist und nehme das jetzt einfach mal als gegeben hin. :)
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von jp112sdl » 20.07.2020, 21:46

myoo hat geschrieben:
20.07.2020, 21:20
Setze ich die Steuerung des EN_PIN außer Kraft indem ich Basis/Gate vom Transistor/FET dauerhaft auf HIGH (oder LOW - je nach verwendeter Schaltung), und somit dauerhaft Vcc am US-100 anliegen habe,
Du lässt das digitalWrite(SENSOR_EN_PINS, HIGH) aber trotzdem mitlaufen, ja? Auch wenn nix angeschlossen ist

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: HB-UNI-Sen-LEV-US - Ultraschall Füllstandsensor

Beitrag von myoo » 21.07.2020, 01:27

jp112sdl hat geschrieben:
20.07.2020, 21:46
myoo hat geschrieben:
20.07.2020, 21:20
Setze ich die Steuerung des EN_PIN außer Kraft indem ich Basis/Gate vom Transistor/FET dauerhaft auf HIGH (oder LOW - je nach verwendeter Schaltung), und somit dauerhaft Vcc am US-100 anliegen habe,
Du lässt das digitalWrite(SENSOR_EN_PINS, HIGH) aber trotzdem mitlaufen, ja? Auch wenn nix angeschlossen ist
Ja, hab das immer nur auf der Platine umgesteckt.
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“