SRF05 ist ein seit Jahren bewährter Ultraschallsensor zum Messen von Entfernungen zwischen etwa 3 cm und 4 Metern. Er wurde von Devantech speziell für den Robotik-Bereich entwickelt, ist jedoch auch für zahlreiche andere Anwendungen verwendbar.
Es handelt sich hier um die neuste Generation von Ultraschallmodulen, der SRF5 ist quasi der Nachfolger des beliebten SRF04. Im Gegensatz zum SRF04 ist beim SRF05 nur noch 1 Port notwendig. Ein Kompatiblitätsmode erlaubt jedoch auch die 2 Port Ansteuerung genau wie beim älteren SRF04.
Der SRF05 ist die preiswerte Alternative zum Devantech SRF10 mit I2C-Ansteuerung und bietet zudem noch etwas höherer Reichweite. Die Entfernung wird durch die Länge des zurückgebenen Signales bestimmt.Ein Beispielprogramm für ein Roboternet-Board findet ihr unten in dem Beitrag.
Technischen Eigenschaften
- Betriebsspannung: 5V
- Stromaufnahme: nur ca. 4mA
- Frequenz: 40KHz
- Maximale Reichweite: 4 m
- Minimale Reichweite: 1 cm
- Betriebsmode 1: SRF04 kompatibler Mode mit einem Auslösepin und einem Echo-Pin (Messergebnis)
- Betriebsmode 2: Ein Pin Mode wo Auslösung und Ergebnis (Echo) über einen Port läuft
- 43mm x 20mm x 17mm
- Hersteller: Devantech Ltd
Diese Dokumentation und das Beispiel wird zeigen das die Handhabung sehr einfach ist. Wenige Zeilen, z.B. in Basic, reichen aus um die Entfernung zu ermitteln. Natürlich kann der Sensor auch leicht in Assembler oder C angesprochen werden.
Betriebsmode 1 – SRF04 Kompatibler Mode – Getrennter Auslöse- und Ergebnisport
Dieser Betriebsmode nutzt unabhängige Pin´s für den Start des Messvorganges und die Übergabe des Egebnisses. Also zwei Ports müssen mit einem Controllerboard (wie z.B. RN-Control) verbunden werden. Ein kurzes High Impulse von mindestens 10 Mikrosekunden löst den Messvorgang aus. Danach muss nur noch vom Controllerboard der Echo-Pin überwacht werden. Hier erfolgt ein High-Impuls, dessen Länge proportional zur Entfernung des Objektes ist. Die gemessene Zeit wird einfach durch 29 geteilt und man erhält die Entfernung in Zentimetern. Einfacher geht’s nicht.
Wichtig ist das man die Zeit des Echo-Impules möglichst genau ermittelt, je genauer desto genauer die Entfernungsmessung. Hochsprachen oder Compiler wie Bascom verfügen in der Regel über geeignete Befehle zur Impulsmessung.
Dieser Modus ist voll kompatibel zum SRF04. Alle Programme für den SRF04 können übernommen werden.
Mode 2 – Neuer Modi mit nur einem Port für Auslösung und Messergebnis
Dieser Modus hat den Vorteil das man nur ein Pin des Controllerports belegt. Auslösung und Messen des Ergebnisses erfolgt über den gleichen Port. Um diesen Modus zu aktivieren, muss der Mode-Pin am Ultraschallsensor mit Low (GND) verbunden werden.
Nach senden des Auslösesignales, auch hier ein min. 10uS langes High Signal müssen Sie den Port auf Input Umschalten und danach auf das High-Signal des Ultraschallsensors warten. Für diese Umschaltung haben Sie genügend Zeit (mindestens 700uS), so das es auch in Hochsprachen kein Problem darstellen sollte.
Ansonsten verhält sich alles gleich wir im ersten Mode. Die Länge des zurückgelieferten High-Impulses ist proportional zur Entfernung des Objektes. Die gemessene Zeit wird einfach durch 58 geteilt und man erhält die Entfernung in Zentimetern. Einfacher geht’s nicht.
Wichtig ist das man die Zeit des Echo-Impules möglichst genau ermittelt, je genauer desto genauer die Entfernungsmessung. Hochsprachen oder Compiler wie Bascom verfügen in der Regel über geeignete Befehle zur Impulsmessung.
Hier wird demonstriert wie ein Programm auf einem BasicStamp-Controllerboard den Mode 2 nutzt um die Entfernung zu berechnen.:
SRF05 PIN 15 ' use any pin for both trigger and echo Range VAR Word ' define the 16 bit range variable SRF05 = 0 ' start with pin low PULSOUT SRF05, 5 ' issue 10uS trigger pulse (5 x 2uS) PULSIN SRF05, 1, Range ' measure echo time Range = Range/29 ' convert to cm (divide by 74 for inches)
Berechnung der Entfernung
Wie bereits geschildert, ist die Berechnung der Entfernung sehr einfach. Man ermittelt einfach wieviel Mikrosekunden der vom SRF05 gesendete High-Impuls ist. Diesen Wert teilt man durch 58 und erhält dadurch die Entfernung in Zentimetern. Teilt man das Ergebnis durch 148, dann erhält man das Ergebnis in Inches (Zoll).
Bis zu 20 Messungen pro Sekunde sind mit diesem Ultraschallmodul möglich, also alle 50 Millisekunden ist eine Messung möglich.
Beispielprogramm in Bascom Basic für RN-MiniControl (AVR-Board mit ATMega168)
Auch auf anderen Avr-Boards wie z.B. RNBFRA, RN-Control, Arduino usw. verwendbar.
'################################################### 'srf05beispiel.bas 'Dieses Programm demonstriert die Verwendung 'des Ultraschall Entfernungssensors SRF04 'mit dem Controllerboard RN-MINICONTROL 'Verwendeter Compiler Bascom V 1.11.8.2 ' 'Aufgabe: 'Entfernung wird gemessen und in Zentimetern über 'RS232 ausgegeben 'Autor: Frank 'http://www.Roboternetz.de bzw. mikrocontroller-elektronik.de/ '################################################### 'Die üblichen Definitionen bei Standardprogrammen auf Miniboard $regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 32 $framesize = 32 $swstack = 32 Dim Zeitmessung As Word Dim Entfernung As Word Print "**** SRF05 mit RN-MINICONTROL *****" Print "Entfernung in cm anzeigen" Config Pind.2 = Output Do Portd.2 = 0 'Port Low Pulseout Portd , 2 , 40 'Min. 10uS Impuls senden Pulsein Zeitmessung , Pind , 2 , 1 Zeitmessung = Zeitmessung * 10 'mal 10 da Pulsein in 10uS Einheiten Ergebnis ermittelt Entfernung = Zeitmessung / 58 'Umrechnen in Zentimeter Print "Entfernung: " ; Entfernung ; " cm" Wait 1 Loop
Richtwirkung des Sensors
Dimension des Sensors
Weblinks zum Thema
Bezugsquelle
Alternative Angebote bei Amazon
Achtung, bei den Angeboten bei Amazon werden zum Teil unter gleichen Namen sehr ähnliche Ultraschallsensoren angeboten. Diese sind oft weder Pin noch von der Ansteuerung kompatibel. Also genau in der Beschreibung des jeweiligen Herstellers drauf achten wie diese verwendet werden müssen.
Letzte Aktualisierung am 26.09.2024 / * Affiliate Links