Pages: [1]   Go Down
Author Topic: Ultraschall-Abstandssensor-Inbetriebnahme  (Read 1161 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley
Logged

Austria
Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 234
Posts: 20182
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Code:
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
Logged

Pages: [1]   Go Up
Jump to: