Guten Tag,
ich beschäftige mich erst seit wenigen Tagen mit AVRs und Bascom, bin
also noch ein blutiger Anfänger.
Ich möchte gerne eine Abstandsmessung mithilfe eines HC-SR04
Ultraschallmoduls realisieren.
Dieses Modul hat einen Triggereingang und einen Echoausgang (ähnlich dem
Devantech srf04) aus der Laufzeit dieser Signale kann man die Entfernung
berechnen.
Der Abstand soll dann auf einem LCD Display ausgegeben werden.
Habe versucht mal einen Bascom Code zu schreiben (bzw. zusammen zu
kopieren) der dies bewerkstelligen soll.
Ich habe bestimmt unheimlich viele Fehler gemacht und würde gerne mal
einge Verbesserungsvorschläge bzw. Anregungen hören.
'Hardware-Config
$regfile = "m32def.dat"
$crystal = 14745600
Dim Starttime As Integer , Endtime As Integer , Sonartime As Integer
Dim Dist As Integer
'Config für LCD-Ausgabe
'16x2 gelb-grün Mikro mit BL an Port C
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 ,
Db7 = Portc.0 , E = Portc.4 , Rs = Portc.6
Config Lcd = 16 * 2
'Config Pina.1 = Output
'Porta.1 = 0
Trigger Alias Portd.1
Config Trigger = Output
Zurueck Alias Pind.2
Config Zurueck = Input
Config Pinc.5 = Output
Portc.5 = 0
Trigger = 0
Waitms 2
Trigger = 1
Waitms 10
Trigger = 0
Starttime = Counter1
Waitus 210
While Zurueck = 1
Wend
Endtime = Counter1
Trigger = 0
If Endtime > Starttime Then Sonartime = Endtime - Starttime
If Starttime > Endtime Then
Sonartime = &H3FF - Starttime
Sonartime = Sonartime + Endtime
End If
Dist = Sonartime * 1.09
Dist = Dist / 2
If Dist < 30 Then Dist = Dist - 2
Waitms 20
Initlcd
Cls
Cursor Off
Lcd "{Dist}"
End