Forum: Mikrocontroller und Digitale Elektronik STM32 HC-SR04 Ultraschallsensor Echo


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Robert (robert1983)


Lesenswert?

Hallo,

ich versuche einen HC-SR04 an einem STM32 NUCLEOF446RE zu betreiben.
Den Sensor habe ich mit dem Oszi geprüft. Mit einem Signalgenerator 
schalte ich ein niederfrequentes Rechtecksignal auf den Triggerpin und 
messe das Echo am Echopin wie erwartet.

Nächster Schritt:

Sensorversorgung schließe ich an STM32 an: 5V und GND.
Am STM32 erzeuge ich eine niederfrequente PWM für den Trigger.
Am Oszi messe ich das Echo vom Echopin wie erwartet.

Nächster Schritt:

Den Echopin verbinde ich mit einem Eingangspin am STM32.
Daraufhin bricht die Spannung am Echopin ein.
Ich habe es auch mit einem Spannungsteiler und mit der Pull-Down 
Konfiguration versucht. Das Ergebnis ist das gleiche, die Spannung 
bricht ein.

Hat jemand eine Idee?

Vielen Dank

: Bearbeitet durch User
von Thorsten S. (thosch)


Lesenswert?

Nicht Prosa texten, sondern Schaltplan zeigen.

Der HC-SR04 ist ein 5V-Device und liefert sowie erwartet 5V kompatible 
Logikpegel.

Der STM32 hat 3,3V I/O-Spannung und 3,3V CMOS Logikpegel.
Einige Pins haben eine (eingeschränkte) 5V-Kompatibilität.

Welcher GPIO-Pin des STM32 wurde als Eingang benutzt und wie wurde der 
konfiguriert und wie genau beschaltet?

von Steve van de Grens (roehrmond)


Lesenswert?

Robert schrieb:
> Am STM32 erzeuge ich eine niederfrequente PWM für den Trigger.

Wieso PWM?

Man sendet einen Impuls und wartet auf das Ergebnis. Und dann muss man 
noch eine Weile abwarten, bevor die nächste Messung funktionieren kann.

> Den Echopin verbinde ich mit einem Eingangspin am STM32.
> Daraufhin bricht die Spannung am Echopin ein.

Du musst einen 5V toleranten Eingang verwenden, er darf nicht als 
Ausgang konfiguriert sein, und eine doppel-Belegung mit etwas anderem 
könnte auch stören.

von Thorsten S. (thosch)


Lesenswert?

PA4 und PA5 sind beispieslweise NICHT als Eingang für das Echosignal 
geeignet, da diese nur 3,3V-kompatibel sind.

von Robert (robert1983)


Angehängte Dateien:

Lesenswert?

@Thorsten S.die Beschaltung habe ich angehangen.
PB9 erzeugt den Trigger mittels PWM
PA1 ist der Eingang

@Steve van de Grens die PWM nutze ich nur damit ich kontinuierlich Echos 
empfange. Da gibt es sicher viele Wege.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Robert schrieb:
> die Beschaltung habe ich angehangen

Der Spannungsteiler ist falsch herum. So wie gezeichnet würde er ein 
Signal vom STM32 zum Sensor verringern.

von Robert (robert1983)


Lesenswert?

Fehler gefunden. An der Beschaltung hat es nicht gelegen.
Ich hatte noch eine Zeile im Code, wo PA1 als Output im GPIO Port Mode 
Register eingestellt war.
Danke für die Hilfe.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.