PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe, mein US-Sensor HC-SR04 spinnt oder ist defekt ???



oderlachs
08.02.2014, 17:14
Hallo Freunde !
Wenn ich hier frage, so weiss ich nicht mehr aus noch ein mit meinem Problem, es geht um einen Ultraschall Sensor HC-SR04, der mir die "Brotpreise von Chikago" anzeigt aber keine reale Entfernungen.
Gewiss kann es auch an der Software liegen, als erstes habe ich mit der ArduinoLib : Ultrasonic.h von GitHub gearbeitet, da ging gar nix.
Nun habe ich ein Beispiel aus dem Web probiert, was mir ja eigendlich von der Funktion her logisch erschien, aber diese irrelevanten Werte oder Zufallswerte bei der Entfernung lassen mich an mir selber Zweifeln.
habe mit mehreren Sensoren probiert, alle das selbe komische Ergebnis. kann mir wer helfen ???

Danke und Gruss

Gerhard
Hier nun der von mir benutzte Code:


/* ================================================== ======================== */
/* */
/* Testprogramm für US sensor HC-SR04 */
/* */
/* ================================================== ======================== */
#define trigPin 5

#define echoPin 6

#define led 13

/* ================================================== ======================== */
/* */
/* */
/* */
/* ================================================== ======================== */
void setup() {

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);


}
/* ================================================== ======================== */
/* */
/* */
/* */
/* ================================================== ======================== */
void loop() {

long duration, distance;

digitalWrite(trigPin, LOW); // Added this line

delayMicroseconds(2); // Added this line

digitalWrite(trigPin, HIGH);

// delayMicroseconds(1000); - Removed this line

delayMicroseconds(10); // Added this line

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

if (distance < 4) { // This is where the LED On/Off happens

digitalWrite(led,HIGH);

}

else {

digitalWrite(led,LOW);

}

if (distance >= 200 || distance <= 0){

Serial.println("Out of range");

}

else {

Serial.print(distance);

Serial.println(" cm");

}

delay(500);

}
/* ================================================== ======================== */
/* */
/* */
/* */
/* ================================================== ======================== */