[PROJEKT] Ultradźwiękowy czujnik odległości HC-SR04 i Arduino

Kod projektu

Teraz przejdźmy do omówienia programu (cały kod znajduje się w sekcji do pobrania na końcu artykułu).

Pierwszym krokiem jest deklaracja pinów, do których podłączone są ultradźwiękowy czujnik odległości oraz buzzer.

Następnie jest dołączona biblioteka ułatwiająca sterowanie diodami WS2812. Trzeba jeszcze zadeklarować zmienne potrzebne do inicjalizacji biblioteki, takie jak liczba diod w łańcuchu oraz pin, którym będzie odbywać się sterowanie.

Pozostała jeszcze deklaracja pozostałych zmiennych wykorzystywanych w programie:

Następnie w programie znajduje się funkcja pomiar_odleglosci(). To właśnie w niej jest wyzwalany pomiar, następnie jest mierzony czas trwania impulsu wygenerowany przez czujnik, na podstawie którego jest obliczany dystans do przeszkody. Wynik jest zapisywany do zmiennej odleglosc:

Obsługa diod WS2812

W funkcji o nazwie zaswiec_diody() jest sprawdzana zmienna dystans. W zależności od jej wartości zapala się odpowiednia liczba diod. Dla lepszej prezentacji działania programu, maksymalna liczba diod zaświeci się w przypadku gdy zmienna dystans będzie większa niż 40 cm. Gdy dystans będzie mniejszy niż 40 cm, kolejne diody będą gasnąć (z krokiem 5 cm = 1 dioda). Diody 1…3 świecą się na czerwono, diody 4…6 na żółto, natomiast diody 7 oraz 8 na czerwono:

W funkcji setup() ustawiono szybkość portu szeregowego oraz role poszczególnych pinów:

Pętla główna

W pętli głównej programu jest dokonywany pomiar w funkcji pomiar_odleglosci(). Wartość zmierzonej odległości jest wyświetlana w monitorze portu szeregowego. Następnie wywoływana jest funkcja zaswiec_diody(odleglosc) odpowiedzialna za przedstawianie zmierzonej odległości poprzez zaświecenie odpowiedniej liczby diod WS2812. Jeżeli dystans jest mniejszy niż 10 cm, to włączany jest buzzer. W przeciwnym przypadku pozostaje on wyłączony.

Efekt działania projektu

Podczas działania programu w monitorze portu szeregowego wyświetlana jest zmierzona przez czujnik odległość:

Rysunek 4. Wartość zmierzonej odległości wyświetlana w monitorze portu szeregowego

Działanie programu przedstawiono na poniższym wideo:

Do pobrania

O autorze