[PROJEKT] Czujnik odległości HC-SR04 i Arduino

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 będą podłączone 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:

W funkcji o nazwie zaswiec_diody() jest sprawdzana zmienna dystans. W zależności od jej wartości zapalana jest odpowiednia liczba diod. Dla lepszego pokazania działania, maksymalna liczba diod zostanie zaświecona, w przypadku gdy zmienna dystans będzie większa niż 40 cm. Gdy dystans będzie mniejszy niż 40 cm, będą gaszone kolejne diody (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() ustawiana jest szybkość portu szeregowego oraz role poszczególnych pinów:

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.

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

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

Działanie programu zostało przedstawione na poniższym wideo:

Do pobrania

O autorze