[PROJEKT] Ultradźwiękowy czujnik odległości HC-SR04 i Arduino
W artykule opisano ultradźwiękowy czujnik odległości wspomagający np. trudny proces parkowania samochodu. Obecnie jest to standardowe wyposażenie niemal wszystkich samochodów – szczęśliwi właściciele samochodów wyposażonych w to udogodnienie mogą zapoznać się z zasadą działania takiego czujnika, a pozostali mogą wykonać samodzielnie wykonać takie urządzenie. Prezentowany czujnik odległości może znaleźć również inne zastosowanie, np. zamontowany na ścianie w garażu może sygnalizować odległość od ściany parkowanej przyczepy.
Opisywany czujnik odległości wykorzystuje moduł HC-SR04, który za pomocą fal ultradźwiękowych pozwala zmierzyć odległość od przeszkody. Informacja o odległości jest odbierana przez mikrokontroler na płytce KAmduino UNO, który przedstawi odległość w postaci świetlnej (za pomocą linijki z adresowanymi diodami RGB WS2812). Gdy odległość będzie mniejsza od zadanej (zdefiniowanej przez nas odległości granicznej), program zasygnalizuje to dźwiękiem buzzera.
Do realizacji projektu będą potrzebne następujące elementy:
- płytka rozwojowa KAmduino UNO,
- czujnik ultradźwiękowy HC-SR04,
- diody adresowane WS2812, np. KAmodWS2812-8 lub NeoPixel Ring 16 x WS2812 (70 mm),
- buzzer z generatorem.
Rysunek 1. Czujnik HC-SR04
Ultradźwiękowy czujnik odległości HC-SR04
HC-SR04 to ultradźwiękowy czujnik odległości o zakresie pomiarowym 2…500 cm z rozdzielczością 0,3 cm. Ma on 4 wyprowadzenia: VCC, GND, ECHO oraz TRIG. Aby wyzwolić pomiar, na pin TRIG należy podać stan wysoki przez 10 μs, następnie czujnik wyśle grupę impulsów o częstotliwości 40 kHz, gdy fale obiją się od przeszkody i trafią z powrotem do czujnika. Określi on czas pomiędzy ich wysłaniem i odebraniem i na pinie ECHO wygeneruje stan wysoki o czasie trwania proporcjonalnym do odległości od przeszkody. Znając czas trwania tego impulsu można obliczyć odległość od przeszkody korzystając ze wzoru:
D [cm] = T /58
gdzie:
D – dystans przeszkody od czujnika
T – czas trwania wygenerowanego impulsu.
Kolejnym elementem użytym w projekcie jest listwa z diodami adresowanymi WS2812. Będą one sygnalizować jak daleko od czujnika znajduje się przeszkoda. Jeżeli przeszkoda znajduje się daleko od diody, będą one świecić się w kolorze zielonym. W miarę zmniejszania się odległości, liczba świecących się diod zmaleje, a gdy przeszkoda będzie już bardzo blisko, to świecić się będzie tylko jedna dioda w kolorze czerwonym.
Ostatnim elementem wykorzystanym w projekcie jest buzzer z generatorem. Gdy przeszkoda znajdzie się bardzo blisko czujnika, będzie on ostrzegał przed zderzeniem emitując wysoki dźwięk. W celu ograniczenia głośności buzzera można podłączyć go przez rezystor o wartości np. 100…200 Ω.
Połączenie elementów
Elementy należy połączyć zgodnie z poniższym schematem:
Rysunek 2. Schemat podłączenia poszczególnych elementów do KAmduino UNO
Podłączenie przedstawiono również w tabelach poniżej:
Połączenie z czujnikiem odległości:
Pin KAmduino UNO | HC-SR04 |
+5V | VCC |
GND | GND |
2 | TRIG |
3 | ECHO |
Połączenie z łańcuchem diod:
Pin KAmduino UNO | Wyprowadzenia diod WS2812 |
+5V | VCC |
GND | GND |
6 | DI |
Połączenie z buzzerem,
Pin KAmduino UNO | Pin Buzzer |
9 | VCC |
GND | GND |
Podłączone elementy prezentują się następująco:
Rysunek 3. Zmontowany układ czujnika do parkowania