Speed-Messung mit arduino und Ultraschall hc-sr04-sensor?

möchte ich aus Geschwindigkeits-Erkennung "Gerät" mit Arduino und zwei Ultraschall hc-sr04 wie dieser link. aber ich will es machen mit Ultraschall anstelle von LDR.

aus diesem link. die Art, wie Laser und die ldr-Arbeit, wie diese

Die widerstände dienen als pull-down-widerstände und verkabelte ich die sensoren und setzen Sie Sie in eine Falle, um Sie zu vermeiden die Erkennung von Umgebungslicht. Für jeden Fall wurde ein Loch gebohrt, so dass der Laserstrahl Licht auf den sensor, während die ambient-Licht hat keinen Einfluss auf den sensor.
Das Funktionsprinzip ist einfach: ein Objekt, das vergeht "schneidet" der laser-Balken, dies bedeutet, dass die LDR-sensor erkennt dieser plötzlichen Abfall der Lichtintensität. Zuerst habe ich definiert einen Schwellenwert, unter dem der sensor betrachtet wird ausgelöst, sobald der Wert unter der Schwelle für den ersten sensor mit Arduino wartet auf die zweite, ausgelöst zu werden. Während dieser Wartezeit zählt die Zeit, die zwischen den beiden Ereignissen. Wenn der zweite Lichtstrahl unterbrochen wird, Stoppt der timer, und jetzt ist nur einfache Mathematik. Der Abstand zwischen den 2 sensoren ist bekannt, die Zeit zwischen zwei Ereignissen bekannt ist, und die Geschwindigkeit kann berechnet werden, wie Geschwindigkeit = Strecke/Zeit.

Unter der Arduino-code:

/* 
by Claudiu Cristian 
*/

unsigned long time1; 
int photocellPin_1 = 0; //1st sensor is connected to a0 
int photocellReading_1; //the analog reading from the analog port 
int photocellPin_2 = 1; //2nd sensor is connected to a1 
int photocellReading_2; //the analog reading from the analog port 
int threshold = 700; //value below sensors are trigerd 
float Speed; //declaration of Speed variable 
float timing; 
unsigned long int calcTimeout = 0; //initialisation of timeout variable 

void setup(void) { 
//We'll send debugging information via the Serial monitor 
Serial.begin(9600); 
} 

void loop(void) { 
photocellReading_1 = analogRead(photocellPin_1); //read out values for sensor 1 
photocellReading_2 = analogRead(photocellPin_2); //read out values for sensor 2 
//if reading of first sensor is smaller than threshold starts time count and moves to             calculation function 
if (photocellReading_1 < threshold) { 
time1 = millis(); 
startCalculation(); 
} 
} 

//calculation function 
void startCalculation() { 
calcTimeout = millis(); //asign time to timeout variable 
//we wait for trigger of sensor 2 to start calculation - otherwise timeout 
while (!(photocellReading_2 < threshold)) { 
photocellReading_2 = analogRead(photocellPin_2); 
if (millis() - calcTimeout > 5000) return; 
} 
timing = ((float) millis() - (float) time1) /1000.0; //computes time in seconds 
Speed = 0.115 /timing; //speed in m/s given a separation distance of 11.5 cm 
delay(100); 
Serial.print(Speed); 
Serial.print("\n"); 
} 

gewusst wie: implementieren Sie den code mit Ultraschall HC-SR04 sensoren?
die Codierung ist problem für mich. hoffentlich kann mir jemand helfen...... 🙁
Bitte entschuldigen Sie mein schlechtes Englisch !

ai citit asta? tautvidas.com/blog/2012/08/... 😉 viel Glück!

InformationsquelleAutor user3215083 | 2014-01-20

Schreibe einen Kommentar