Hi Sam,
ich habe mir auch dieses Modul zugelegt.
Zunächst ist die Beschreibung auf der Suntekstore-Seite sehr verwirrend,
eine Nachricht mit 9600Baud konnte ich auch nicht entdecken.
Das Ganze funktioniert folgendermassen
1. einen Triggerimpuls von 10µs erzeugen
2. je nach Abstand dauert es ein wenig bis das US Signal reflektiert und
ausgewertet wird, dann kommt am Echo Pin aber ein High Signal, dessen
Länge dem doppelten Hindernisabstand entspricht.
3. Messen und Berechnen: Abstand [m]=Impulsdauer [s]*340m/s / 2
Ich habe mal beispielhaft ein Impulsverlauf mit dem Logic-Sniffer
aufgezeichnet (scheint Du nutzt das selbe Equipment :-) ).
Als ich das Modul bekommen habe, habe ich noch das Datenblatt
nachgefordert - ist zwar in chinesisch, aber dank G****e-Translator ist
selbst das kein Problem!
Hier noch ein Bascom-Code, der die Entfernung misst und auf ein LCD
bringt. Und jetzt viel Spass!
1 | ' ---------------------------------------------------------------------------
|
2 | '
|
3 | ' Ansteuerung eines US-020 Ultraschallmodul
|
4 | ' tr 2012
|
5 | '
|
6 | ' Funktion:
|
7 | ' 1. am Trigger Pin ein 10µs langes Highsignal erzeugen
|
8 | ' 2. am Pin Echo wird die Distanz als Pulsweite zurückgegeben
|
9 | '
|
10 | ' Berechnung
|
11 | ' Pulsweite *340m /2
|
12 | ' ---------------------------------------------------------------------------
|
13 |
|
14 | ' ------------------------------- µC initialisieren
|
15 | $regfile = "m8def.dat"
|
16 | $crystal = 8e6
|
17 | $hwstack = 48
|
18 | $swstack = 48
|
19 | $framesize = 48
|
20 | $baud = 38400
|
21 | ' -------------------------------
|
22 |
|
23 | ' ------------------------------- Initialisierungen
|
24 |
|
25 | ' LCD
|
26 | Config Lcd = 20 * 2
|
27 | Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portb.1 , Rs = Portb.0
|
28 | Config Portb.7 = Output : Lcd_light Alias Portb.7
|
29 | Reset Lcd_light 'Licht aus
|
30 |
|
31 | Initlcd
|
32 | Cls
|
33 | Cursor Off
|
34 |
|
35 | ' Pins
|
36 | Config Portc.3 = Output : Pintrigger Alias Portc.3
|
37 | Config Pind.3 = Input : Pinecho Alias Pind.3
|
38 |
|
39 | ' Variablen
|
40 | Dim I As Byte , W As Word
|
41 |
|
42 | Reset Pintrigger
|
43 |
|
44 | ' Programmschleife
|
45 | Do
|
46 |
|
47 | Set Pintrigger
|
48 | For I = 1 To 8 : Next 'erzeuge i*2µs langes Signal
|
49 | Reset Pintrigger
|
50 |
|
51 | Pulsein W , Pind , 3 , 1 ' Pulsweite messen
|
52 |
|
53 |
|
54 | W = W * 17 : W = W / 100 ' Länge in cm Berechnen und Nachkommastellen abschneiden
|
55 | Locate 1 , 1 : Lcd "Laenge " ; W ; " cm "
|
56 |
|
57 | Locate 2 , 1
|
58 | If Err = 1 Then
|
59 | Lcd "Timeout"
|
60 | Else
|
61 | Lcd " "
|
62 | End If
|
63 |
|
64 | Waitms 400
|
65 | Loop
|
Timo