Billiga sensorer: HC-SR04 (2 / 4 steg)
Steg 2: Arduino kod
En typisk klagomål om ultraljudssensorer är hur lång tid det tar om det missar en puls. Standard Arduino PulseIn kommandot kommer att vänta upp till en sekund. Tack och lov funktionen har ett andra argument: timeout.
Genom att titta på i timing diagram, kan vi konstatera att vi bara behöver vänta... 60ms! Om du inte wan't det är komplett utbud, och vet du inte kommer att avsöka det oftare än så, så du kan skära då ner (et kan det söka ut till 40cm i bara 6 MS, men du fortfarande inte kan få värden mer än 16 gånger per sekund.
Eftersom vi använder denna enhet i 3-tråd-läge (för att spara stift), har koden för att utlösa en extra rad i den.
För att konvertera från mikrosekunder tid, vi dela upp av 29 (mikrosekunder per centimeter) och igen 2 (det är en tur-och returresa). Den multiplicera med 10 är att omvandla det till mm.
#define ULTRASONIC_PIN 16 < br >
void setup() {
Serial.BEGIN(9600);
}
void loop() {
Serial.println(readUltrasonic(ULTRASONIC_PIN));
Delay(10);
}
int readUltrasonic (int pin) {
Returnerar avståndet i mm
pinMode (pin, utgång);
digitalWrite (pin, hög);
delayMicroseconds(10);
digitalWrite (pin, låg);
pinMode (pin, mata);
återgå pulseIn (pin, hög, (osignerade långa) 60000) * 10 / 29 / 2;
}