Armins AVR-Buch - Ultraschallsensor_SRF05_auswerten

Zuletzt geändert am 15.01.2021, 01:22:17

Ultraschallsensor_SRF05_auswerten


(armin77, 01.01.2013, 21:25:51)

Beschreibe hier wie ein SRF05 Ultraschall-Distanzsensor ausgewertet wird.

Ein kurzer High-Impuls von mindestens 10µS an Trigger des SRF05 (Portb.1 AVR)
löst den Meßvorgang aus.
Danach wird mit dem Echo Ausgang des SRF05 an Pinb.0 des AVR
die Länge des High Impulses gemessen.
Dessen Länge ist proportional zur Entfernung des Objektes.
Die gemessene Zeit wird durch 58
geteilt und man erhält die Entfernung in Zentimetern.

Hier das Programm:

$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 2400
Config Portb.0 = Input 'Echo SRF05
Config Portb.1 = Output 'Trigger SRF05
Dim Entfernung As Word
Dim Zeitmessung As Word
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 20 * 4
Cls
Cursor Off
Lcd "Entfernung:" ; " cm"
Do
Pulseout Portb , 1 , 10
Pulsein Zeitmessung , Pinb , 0 , 1
Zeitmessung = Zeitmessung * 10
Entfernung = Zeitmessung / 58
Print "Enfernung: " ; Entfernung ; " Cm"
Locate 1 , 12
Lcd " "
Locate 1 , 12
Lcd Entfernung
Waitms 500
Loop

End

Hier ein Bild vom Versuchsaufbau:


Bild srf1.jpg

Hier ein Bild vom SRF05:

Bild srf2.jpg


Hier ein Bild der Anschlüsse:


Bild srf3.jpg

Vorsicht:
Wie auf dem oberen Foto zu sehen ist kann Trigger und Echo vertauscht sein.
Also genau hinsehen.