Czas echa ultradźwiękowego
Część sekcji Wyświetlacze i czujniki ścieżki Arduino w Coddy. Lekcja 18 z 24.
HC-SR04 mierzy odległość jak nietoperz: wysyła dźwięk zbyt wysoki, byśmy mogli go usłyszeć, i mierzy czas powrotu echa. Im dalej znajduje się obiekt, tym dłużej trwa powrót echa.
Ma dwa piny sygnałowe. Krótki impuls HIGH na TRIG powoduje wysłanie dźwięku. Następnie ECHO przechodzi w stan HIGH i pozostaje w nim, aż echo wróci, więc długość tego impulsu HIGH odpowiada czasowi, jaki potrzebował dźwięk.
delayMicroseconds() czeka przez milionowe części sekundy, czyli wystarczająco krótko, by wygenerować impuls wyzwalający trwający 10 mikrosekund. pulseIn(pin, HIGH) czeka, aż pin przejdzie w stan HIGH, i zwraca liczbę mikrosekund, przez które pozostawał w tym stanie. Jeśli w ciągu sekundy nie pojawi się żaden impuls, kończy oczekiwanie i zwraca 0.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // impuls wyzwalający
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);Echo może trwać do 38000 mikrosekund, czyli dłużej, niż może pomieścić int, więc przechowuj je w zmiennej typu long.
Wyzwanie
ŚredniTRIG jest podłączony do pinu 9, a ECHO do pinu 10. W loop():
- wyślij impuls HIGH o długości 10 mikrosekund na TRIG
- zmierz echo za pomocą
pulseIn(echoPin, HIGH) - wyświetl czas za pomocą
Serial.println()
Naciśnij Uruchom, przesuń obiekt bliżej i dalej na płytce, a następnie naciśnij Sprawdź.
Spróbuj swoich sił
const int trigPin = 9;
const int echoPin = 10;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// wyślij impuls o długości 10 mikrosekund na TRIG
// zmierz czas trwania echa za pomocą pulseIn() i go wyświetl
delay(200);
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wyświetlacze i czujniki
1Wyświetlacze siedmiosegmentowe
Wyświetlacz siedmiosegmentowyWzory cyfr w bajtachLiczenie na wyświetlaczuOdliczanie do zeraSymulator rzutu kostkąPoćwicz samodzielnie: Edytor online Arduino