Stoeien met een hc sr04
1 bericht
• Pagina 1 van 1
Stoeien met een hc sr04
Beste forumleden,
Ik ben aan het stoeien met een hc sr04, echo-sounder afstandmetertje.
Als ik de ingebouwde functie "pulseIn" gebruik krijg ik iets kortere tijden dan wanneer ik onderstaande code gebruik. Scheelt ongeveer 1%. Nu moet het programma een regel uitvoeren als de echo al binnen is, dus is dat een bron voor een fout, namelijk de tijd die het kost om het commando start = micros() uit te voeren.
Is het nu exacter om de pulseIn te gebruiken of kan ik "compenseren" voor de kleine delay van het uitvoeren van de programmaregel??
Mvg., Hans
cpp code
Ik ben aan het stoeien met een hc sr04, echo-sounder afstandmetertje.
Als ik de ingebouwde functie "pulseIn" gebruik krijg ik iets kortere tijden dan wanneer ik onderstaande code gebruik. Scheelt ongeveer 1%. Nu moet het programma een regel uitvoeren als de echo al binnen is, dus is dat een bron voor een fout, namelijk de tijd die het kost om het commando start = micros() uit te voeren.
Is het nu exacter om de pulseIn te gebruiken of kan ik "compenseren" voor de kleine delay van het uitvoeren van de programmaregel??
Mvg., Hans
cpp code
int tricker = 8 ;
int echo = 9 ;
unsigned long start, tijd ;
void setup() {
pinMode (tricker, OUTPUT);
pinMode (echo, INPUT);
Serial.begin (9600);
}
void loop() {
digitalWrite (tricker, HIGH); Serial.print("Ping...") ; // aansturen van de tricker_pin
delayMicroseconds(20); // pulslengte
digitalWrite (tricker, LOW) ; // einde van de tricker_pule
while (digitalRead(echo) != 1) {} // wachten totdat de echo_pin hoog wordt
start = micros(); // start de meettijd
while (digitalRead(echo) == 1) {} // wachten totdat de puls "vorbij" is
tijd = micros() - start ; // meten van de tijd
// tijd = pulseIn(echo, HIGH); // alternatieve meetmethode
Serial.print ("checkpoint, tijd = "); Serial.println(tijd); // weergeven van de tijd
delay(1000);
Serial.println("And we start again") ; // nieuwe meting
}
Advertisement
1 bericht
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 39 gasten