Szukaj kodu

Lekcja 20/31: Wyświetlanie odległości ultradźwiękowej na LCD1602

Lekcja 20/31: Wyświetlanie odległości ultradźwiękowej na LCD1602

Ten projekt pokazuje, jak połączyć ultradźwiękowy czujnik odległości HC-SR04 z wyświetlaczem LCD1602 obsługiwanym przez I2C, aby stworzyć system pomiaru odległości w czasie rzeczywistym. Po ukończeniu tego przewodnika będziesz mieć działające urządzenie, które w sposób ciągły mierzy i wyświetla odległość do obiektu w centymetrach. Jest to podstawowa umiejętność w elektronice Arduino, ponieważ łączy wejście z czujnika z wyjściem wizualnym.

Sunfounder 20-LCD1602-ultrasonic

Ten praktyczny układ może być używany w różnych rzeczywistych zastosowaniach, w tym:

  • Tworzenie inteligentnego asystenta parkowania, który pomaga ocenić odległość do ściany lub innego pojazdu.
  • Budowa prostego monitora poziomu cieczy w zbiorniku poprzez pomiar odległości od góry do powierzchni.
  • Opracowanie automatycznego dozownika płynu dezynfekującego do rąk lub pojemnika na śmieci bezdotykowego, który otwiera się, gdy obiekt jest blisko.
  • Konstrukcja podstawowego alarmu bezpieczeństwa, który uruchamia się, gdy ktoś wejdzie w określoną strefę.

Sprzęt i komponenty

Aby zbudować ten projekt, będziesz potrzebować następujących komponentów:

  • Płytka Arduino (np. Uno)
  • Wyświetlacz LCD1602 z modułem interfejsu I2C
  • Ultradźwiękowy czujnik odległości HC-SR04
  • Przewody połączeniowe
  • Płytka stykowa (opcjonalnie, dla łatwiejszych połączeń)

Zrozumienie LCD1602 i I2C

LCD1602 to popularny wyświetlacz zdolny do pokazywania 16 znaków na linię w dwóch liniach. Moduł „I2C” z tyłu jest znaczącą zaletą, ponieważ zmniejsza liczbę pinów wymaganych do sterowania wyświetlaczem z 6 lub więcej do zaledwie 2 do komunikacji (SDA i SCL) oraz 2 do zasilania (VCC i GND). To uproszczenie sprawia, że okablowanie jest znacznie czystsze i uwalnia cenne piny cyfrowe na Arduino dla innych czujników, takich jak ultradźwiękowy użyty w tym projekcie. (na filmie o 01:30)

Moduł I2C posiada również mały potencjometr do regulacji kontrastu wyświetlacza. Jeśli po włączeniu zasilania wyświetlacza nic nie widzisz, spróbuj obrócić tę śrubę, aż tekst stanie się widoczny. (na filmie o 02:47)

Przewodnik po okablowaniu

LCD1602_wiring_ultrasonic_bb

Podłączanie komponentów jest proste. Moduł I2C wyświetlacza LCD ma cztery piny, które należy podłączyć do Arduino. Czujnik ultradźwiękowy również ma cztery piny.

Oto zestawienie połączeń:

Moduł I2C LCD1602 do Arduino:

  • GND do Arduino GND
  • VCC do Arduino 5V
  • SDA do Arduino A4
  • SCL do Arduino A5

Czujnik ultradźwiękowy HC-SR04 do Arduino:

  • VCC do Arduino 5V
  • Trig do pinu cyfrowego Arduino 12
  • Echo do pinu cyfrowego Arduino 11
  • GND do Arduino GND

Schemat okablowania dla tego projektu jest pokazany na filmie.

Instalacja wymaganych bibliotek

Ten projekt opiera się na dwóch kluczowych bibliotekach. Pierwsza, LiquidCrystal_I2C, jest potrzebna do sterowania wyświetlaczem LCD i nie jest domyślnie dołączona do Arduino IDE. Możesz ją pobrać z linku podanego w opisie filmu lub ze strony Robojax. (na filmie o 06:16)

Druga biblioteka, NewPing, służy do interfejsu z czujnikiem ultradźwiękowym. Upraszcza proces wysyłania impulsu i odczytywania czasu echa. Obie biblioteki można zainstalować za pomocą Menedżera bibliotek w Arduino IDE, przechodząc do Szkic -> Dołącz bibliotekę -> Zarządzaj bibliotekami i wyszukując ich nazwy.

Wyjaśnienie kodu

Ten szkic łączy funkcjonalność wyświetlacza LCD i czujnika ultradźwiękowego. Kod jest skonstruowany tak, aby można go było łatwo skonfigurować dla konkretnego zestawu.

Na górze kodu znajdziesz kluczowe zmienne, które mogą wymagać dostosowania:

// Ustaw adres LCD na 0x27 dla wyświetlacza 16 znaków i 2 linii
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Pin Arduino podłączony do pinu trigger czujnika ultradźwiękowego.
#define ECHO_PIN     11  // Pin Arduino podłączony do pinu echo czujnika ultradźwiękowego.
#define MAX_DISTANCE 190 // Maksymalna odległość, jaką chcemy mierzyć (w centymetrach).
  • Adres LCD (0x27): Jest to adres I2C twojego modułu LCD. Większość modułów używa 0x27, ale niektóre mogą używać 0x3F. Jeśli twój wyświetlacz nic nie pokazuje, może być konieczne uruchomienie szkicu skanera I2C, aby znaleźć prawidłowy adres i zaktualizować tę wartość. (na filmie o 08:11)
  • TRIGGER_PIN i ECHO_PIN: Definiują one piny cyfrowe Arduino podłączone do pinów Trig i Echo czujnika ultradźwiękowego. Jeśli używasz innych pinów, zmień te definicje.
  • MAX_DISTANCE: Ustawia maksymalną odległość w centymetrach, jaką będzie mierzyć czujnik. HC-SR04 może mierzyć do 400-500 cm, ale ustawienie niższej wartości może poprawić dokładność i niezawodność odczytów, zwłaszcza dla krótszych odległości.

W funkcji loop() kod wykonuje następujące kroki:

  1. Używa funkcji sonar.ping_cm() do pomiaru odległości i zapisania jej w zmiennej distance.
  2. Czyści ekran LCD i wyświetla tekst "Robojax.com" w pierwszej linii.
  3. Następnie ustawia kursor w drugiej linii i wyświetla "Distance: ".
  4. Na koniec przesuwa kursor na pozycję 10 w drugiej linii, aby wyświetlić zmierzoną wartość distance oraz "cm".

Polecenie delay(200) na końcu pętli kontroluje, jak często czujnik wykonuje nowy odczyt i aktualizuje wyświetlacz.

Demonstracja kodu

Po wgraniu kodu do Arduino, ekran LCD zaświeci się i zacznie wyświetlać odległość. Możesz przetestować układ, przybliżając i oddalając rękę lub przedmiot od czujnika ultradźwiękowego. Liczba na ekranie powinna aktualizować się w czasie rzeczywistym, pokazując odległość w centymetrach. (na filmie o 38:07)

Powiązane projekty z tego filmu

Rozdziały

  • [00:00] Wprowadzenie do LCD1602 i przegląd projektu
  • [01:30] Wyjaśnienie sprzętu LCD1602 i modułu I2C
  • [03:14] Rozkład pinów LCD i konfiguracja adresu I2C
  • [05:28] Schemat połączeń dla LCD1602
  • [06:16] Instalacja wymaganej biblioteki LCD
  • [07:24] Podstawowy kod do wyświetlania tekstu na LCD
  • [08:11] Znajdowanie adresu I2C Twojego LCD
  • [11:10] Przykłady LCD: migający kursor i niestandardowe znaki
  • [18:51] Przykład LCD: wyświetlanie szeregowe i przewijany tekst
  • [24:36] Wyświetlanie temperatury i wilgotności DHT11 na LCD
  • [33:00] Wyświetlanie napięcia z potencjometru na LCD
  • [35:56] Połączenie kodu czujnika ultradźwiękowego z LCD
  • [38:07] Demonstracja wyświetlania odległości ultradźwiękowej

Obrazy

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Język: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Zasoby i odniesienia

Pliki📁

Biblioteki Arduino (zip)

Instrukcja obsługi