Jak skonfigurować Ultradźwiękowy Dalmierz na Arduino

ultradźwiękowe Dalmierze to zabawne małe czujniki, które mogą mierzyć odległość. Za ich pomocą można znaleźć odległość od obiektu lub wykryć, gdy coś znajduje się w pobliżu czujnika, na przykład detektor ruchu. Są idealne do projektów obejmujących nawigację, unikanie obiektów i bezpieczeństwo w domu. Ponieważ używają dźwięku do pomiaru odległości, działają tak samo dobrze w ciemności, jak w świetle., Ultradźwiękowy dalmierz będę używać w tym samouczku jest HC-SR04, który może mierzyć odległości od 2 cm do 400 cm z dokładnością ±3 mm.

w tym artykule pokażę, jak zrobić trzy różne obwody dalmierza dla Arduino. Pierwszy obwód dalmierza jest łatwy w konfiguracji i ma dość dobrą dokładność. Pozostałe dwa są nieco bardziej skomplikowane, ale są dokładniejsze, ponieważ uwzględniają temperaturę i wilgotność. Ale zanim przejdziemy do tego, porozmawiajmy o tym, jak dalmierz mierzy odległość.,

BONUS: zrobiłem krótki przewodnik dla tego samouczka, który można pobrać i wrócić do później, jeśli nie można skonfigurować tego teraz. Obejmuje wszystkie kroki, diagramy i Kod, których potrzebujesz, aby rozpocząć.

prędkość dźwięku

ultradźwiękowe Dalmierze mierzą odległość, emitując impuls dźwięku ultradźwiękowego, który przemieszcza się w powietrzu, aż do uderzenia w obiekt. Kiedy ten impuls dźwiękowy uderza w obiekt, odbija się od obiektu i wraca do ultradźwiękowego dalmierza., Ultradźwiękowy dalmierz mierzy, jak długo impuls dźwiękowy podróżuje w obie strony z czujnika iz powrotem. Następnie wysyła sygnał do Arduino z informacją o tym, jak długo trwało Podróżowanie impulsu Sonicznego.

znając czas potrzebny impulsowi ultradźwiękowemu na podróż do obiektu, a także znając prędkość dźwięku, Arduino może obliczyć odległość od obiektu., Wzór odnoszący się do prędkości dźwięku, odległości i przebytego czasu to:

zmieniając ten wzór, otrzymujemy wzór używany do obliczania odległości:

iv id=”c6390c9a56″

zmienna czasu to czas potrzebny impulsowi ultradźwiękowemu na opuszczenie czujnika, odbicie się od obiektu i powrót do czujnika., W rzeczywistości dzielimy ten czas na pół, ponieważ musimy tylko zmierzyć odległość do obiektu, a nie odległość do obiektu i z powrotem do czujnika. Zmienna prędkości to prędkość, z jaką dźwięk przemieszcza się w powietrzu.

prędkość dźwięku w powietrzu zmienia się wraz z temperaturą i wilgotnością. Dlatego, aby dokładnie obliczyć odległość, musimy wziąć pod uwagę temperaturę otoczenia i wilgotność., Wzór na prędkość dźwięku w powietrzu z uwzględnieniem temperatury i wilgotności wynosi:

na przykład przy temperaturze 20°C i wilgotności 50% dźwięk porusza się z prędkością:

w powyższym równaniu jasne jest, że temperatura ma największy wpływ na prędkość dźwięku. Wilgotność ma jakiś wpływ, ale jest znacznie mniejsza niż wpływ temperatury.,

jak Ultradźwiękowy Dalmierz mierzy odległość

z przodu ultradźwiękowego dalmierza znajdują się dwa metalowe cylindry. To są przetworniki. Przetworniki przekształcają siły mechaniczne W sygnały elektryczne. W ultradźwiękowym dalmierzu znajduje się przetwornik nadający i przetwornik odbiorczy. Przetwornik nadający przekształca sygnał elektryczny w impuls ultradźwiękowy, a przetwornik odbierający przekształca odbity impuls ultradźwiękowy z powrotem w sygnał elektryczny., Jeśli spojrzysz na tył dalmierza, zobaczysz układ scalony za przetwornikiem nadawczym oznaczony symbolem MAX3232. To układ scalony sterujący przetwornikiem nadawczym. Za przetwornikiem odbiorczym znajduje się układ scalony LM324. Jest to quad Op-Amp, który wzmacnia sygnał generowany przez przetwornik odbiorczy do sygnału, który jest wystarczająco silny, aby przesłać do Arduino.,

ultradźwiękowy dalmierz HC-SR04 ma cztery Szpilki:

  • Vcc – dostarcza moc do generowania impulsów ultradźwiękowych
  • GND – podłączony do masy
  • Trig – gdzie Arduino wysyła sygnał, aby rozpocząć impuls ultradźwiękowy
  • Echo – gdzie ultradźwiękowy dalmierz wysyła informację o czasie trwania podróży wykonanej przez impuls ultradźwiękowy do Arduino

aby rozpocząć pomiar odległości, musimy wysłać sygnał o wysokim 5V do pinu trygowego przez co najmniej 10 µs., Gdy moduł odbierze ten sygnał, będzie emitował 8 impulsów dźwięku ultradźwiękowego o częstotliwości 40 KHz z przetwornika nadawczego. Następnie czeka i słucha na przetworniku odbierającym odbitego sygnału. Jeśli obiekt znajduje się w zasięgu, impulsy 8 zostaną odbite z powrotem do czujnika. Gdy impuls uderza w przetwornik odbiorczy, Pin Echo wysyła sygnał wysokiego napięcia.

długość tego sygnału wysokiego napięcia jest równa całkowitemu czasowi, jaki 8 impulsów zabiera na podróż z przetwornika nadawczego i z powrotem do przetwornika odbiorczego., Chcemy jednak mierzyć Tylko odległość od obiektu, a nie odległość ścieżki, którą obrał impuls dźwiękowy. Dlatego dzielimy ten czas na pół, aby otrzymać zmienną czasu w powyższym równaniu d = s x T. Ponieważ znamy już prędkość dźwięku (s), możemy rozwiązać równanie odległości.

Konfiguracja ultradźwiękowego dalmierza do wyjścia monitora szeregowego

Zacznijmy od stworzenia prostego ultradźwiękowego dalmierza, który wyświetli pomiary odległości na monitorze szeregowym. Jeśli zamiast tego chcesz wyświetlać odczyty na wyświetlaczu LCD, sprawdź następną sekcję., Podłączenie wszystkiego jest łatwe, po prostu podłącz go w ten sposób:

Po podłączeniu wszystkiego, prześlij ten program do Arduino:

Wyjaśnienie kodu

  • linia 11: deklaruje zmienne duration I distance.
  • linie 12 i 13: wysyła niski sygnał o wartości 2 µs do trigPin, aby upewnić się, że jest wyłączony na początku pętli programu.,
  • linie 15-17: wysyła wysoki sygnał 10 µs dotrigPin, aby zainicjować sekwencję ośmiu impulsów ultradźwiękowych 40 KHz wysłanych z przetwornika nadawczego.
  • Linia 19: definiuje zmiennąduration jako długość (w µs) dowolnego wysokiego sygnału wejściowego wykrytego wechoPin. Wyjście echa jest równe czasowi, w którym emitowany impuls ultradźwiękowy podróżuje do obiektu i z powrotem do czujnika.,
  • linia 20: definiuje zmienną distance jako czas trwania (Czas w d = S x T) pomnożony przez prędkość dźwięku zamienioną z metrów na sekundę na centymetry na µs (0,0344 cm/µs).
  • linie 22-24: jeśli odległość jest większa lub równa 400 cm lub mniejsza lub równa 2 cm, Wyświetl na monitorze szeregowym „Distance = Out of range”.
  • linie 26-30: Jeśli pomiar odległości nie jest poza zasięgiem, wyświetl Na monitorze szeregowym odległość obliczoną w linii 20 przez 500 ms.,

Ultradźwiękowy dalmierz z wyjściem LCD

Jeśli chcesz wyświetlić pomiary odległości na wyświetlaczu LCD 16×2, postępuj zgodnie z tym schematem, aby podłączyć dalmierz i wyświetlacz LCD do swojego Arduino:

Jeśli potrzebujesz więcej pomocy w podłączaniu LCD, wypróbuj nasz inny samouczek dotyczący konfiguracji LCD na Arduino., Gdy wszystko jest podłączone, prześlij ten kod do Arduino:

a wyższa dokładność Ultradźwiękowy Range Finder

ponieważ temperatura jest zmienna w prędkości dźwięku równanie powyżej (C = 331,4 + (0,606 x T) + (0,0124 x H)), Temperatura powietrza wokół czujnika wpływa na nasze pomiary odległości. Aby to skompensować, wystarczy dodać termistor do naszego obwodu i wprowadzić jego odczyty do równania. Powinno to dać naszym pomiarom większą dokładność., Termistor to rezystor zmienny, który zmienia rezystancję wraz z temperaturą. Aby dowiedzieć się więcej o termistorach, sprawdź nasz artykuł, samouczek czujnika temperatury termistora Arduino. Oto schemat, który pomoże Ci dodać termistor do obwodu dalmierza:

  • Rezystor R1 = 10K Ohm
  • TH = 10K Ohm termistor

uwaga: wartość R1 powinna być równa rezystancji twojego termistora.,

Po podłączeniu wszystkiego, prześlij ten kod do Arduino:

Wyjaśnienie kodu

w podstawowym programie range finder na początku tego artykułu, użyliśmy wzoru d = S x T do obliczenia odległości. W tym programie używamy wzoru, który odpowiada za temperaturę i wilgotność (c = 331,4 + (0,606 X T) + (0,0124 x H)).

w wierszach 5-10 równanie Steinharta-Harta służy do konwersji wartości rezystancji termistora na temperaturę, które są przechowywane w zmiennej o nazwietemp., W wierszu 35 dodajemy nową zmienną (spdSnd) zawierającą równanie prędkości dźwięku. Wyjście ze zmiennejspdSnd jest używane jako prędkość w funkcjidistance w linii 36.

bardzo wysoka (prawie zbyt wysoka) dokładność Ultradźwiękowy Dalmierz

Obwód ultradźwiękowy z kompensacją temperatury jest dość dokładny dla tego, do czego większość ludzi będzie go używać. Jest jednak jeszcze jeden czynnik wpływający na prędkość dźwięku w powietrzu (a co za tym idzie na obliczenie odległości), a mianowicie Wilgotność., Z równania prędkości dźwięku można stwierdzić, że wilgotność ma tylko niewielki wpływ na prędkość dźwięku, ale i tak to sprawdzimy.

istnieje kilka rodzajów czujników wilgotności, których możesz użyć w Arduino, ale będę używał czujnika wilgotności i temperatury DHT11. Moduł ten posiada oprócz czujnika wilgotności termistor, więc konfiguracja jest naprawdę prosta:

Po podłączeniu wszystkiego będziemy musieli zainstalować specjalną bibliotekę, aby uruchomić kod., Biblioteka jest biblioteką DHTLib napisaną przez Roba Tillaarta. Biblioteka jest łatwa w instalacji. Najpierw pobierz .plik zip poniżej. Następnie w IDE Arduino, przejdź do szkic>Dołącz bibliotekę>Dodaj bibliotekę ZIP, a następnie wybierz dhtlib.plik zip.,

DHTLib

Po zainstalowaniu biblioteki prześlij ten kod do swojego Arduino:

Wyjaśnienie kodu

odczyty temperatury i wilgotności generowane przez DHT11 są cyfrowe, więc nie musimy używać równania Steinharta-Hart do konwersji odporności termistora na temperaturę. Biblioteka DHTLib zawiera wszystkie funkcje potrzebne do uzyskania temperatury i wilgotności w jednostkach, których możemy użyć bezpośrednio w równaniu prędkości dźwięku. Zmienne temperatury i wilgotności są nazwane DHT.temperature I DHT.humidity., Następnie prędkość jest używana jako zmienna w równaniu odległości na linii 28.

aby wyświetlić pomiary odległości na wyświetlaczu LCD, najpierw podłącz swój wyświetlacz LCD zgodnie z naszym samouczkiem, jak skonfigurować wyświetlacz LCD na Arduino, a następnie prześlij ten kod:

oglądaj samouczek wideo, aby zobaczyć obwody ultradźwiękowe dalmierza w akcji:

dzięki za przeczytanie! Zostaw komentarz, jeśli masz jakieś pytania dotyczące tego, jak je skonfigurować., Jeśli spodobają ci się nasze artykuły w Circuit Basics, zapisz się, a my damy Ci znać, gdy opublikujemy nowe artykuły. Ponadto, jeśli znasz kogoś, kto uzna ten artykuł za pomocny, podziel się nim!


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *