Stoeien met een hc sr04

Arduino specifieke Software
Berichten: 35
Geregistreerd: 19 Dec 2014, 00:06
Woonplaats: Heemskerk

Stoeien met een hc sr04

Berichtdoor McNes » 17 Sep 2015, 00:06

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

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 19 gasten