Ultraschall-Abstandssensor-Inbetriebnahme

Hallo. Ich bin noch Anfänger.

Ich habe mir ein Arduinoboard und einen Ultraschallsensor gekauft. Nun möchte ich diesen gerne an das Board anschließen, bin aber noch etwas unschlüssig, an welche Pins ich ihn anschließen soll.
Der Sensor hat die Bezeichnung SRF 05, hat folgende Anschlüsse:

  • 5 Volt Spannungsversorgung
  • Masse
  • Trigger input
  • Echo Output

Hat jemand eine Idee?

Und hätte jemand zufällig schon einen mehr oder weniger passenden Quellcode?

Gracias :slight_smile:

Hallo,

... siehe z.B. hier:

http://www.robot-electronics.co.uk/htm/arduino_examples.htm#SRF04%20Ultrasonic%20Ranger

Im Prinzip kommt an den Trigger Eingang des Sensors ein kurzer Impuls und der Arduino muß die Zeit messen bis dann das Echo (und damit der Echo Output) zurückkommt. Aus der Zeit kann man dann die Entfernung berechnen (Stichwort: Schallgeschwindikeit)

Ich hoffe das hilft weiter...

Christian

Der SRF05 im Gegensatz zum SRF04 kann den Triggerimpuls auch am Echo pin erhalten. Dazu mußt Du das MODE Pin auf Masse schalten.
Bei offenen Mode Pin hast Du wie beim SRF04 getrennte Trigger und Echo pins.

Beschreibung:
https://content.solarbotics.com/products/documentation/devantech-srf05.pdf

Beispielsketch für Mode-Pin auf Masse und Trigger Input,Echo Output Pin an Pin 2 des Arduino.

int duration;                 // Stores duration of pulse
int distance_Inch;                 // Stores distance
int distance_cm; 
int srfPin = 2;               // SRF05 connected to digital pin D2

void setup() {
  Serial.begin(9600);
}

void loop() {
  pinMode(srfPin, OUTPUT);	    // Set pin to OUTPUT
  digitalWrite(srfPin, LOW);	    // Ensure pin is low
  delayMicroseconds(2);
  digitalWrite(srfPin, HIGH);       // Start ranging 
  delayMicroseconds(10);            //  with 10 microsecond burst
  digitalWrite(srfPin, LOW);        // End ranging
  pinMode(srfPin, INPUT);	    // Set pin to INPUT
  duration = pulseIn(srfPin, HIGH); // Read echo pulse
  distance_Inch = duration / 148;     // Convert to inches
  distance_cm = duration /58; // Convert to cm

  Serial.print("inch: ");                  // Show distance in Serial Monitor
  Serial.println(distance_Inch);         
  Serial.print("cm: ");
  Serial.println(distance_cm);
delay(100);
}

Grüße Uwe