Lekcia 20/31: Zobrazenie ultrazvukovej vzdialenosti na LCD1602
Tento projekt demonštruje, ako skombinovať ultrazvukový snímač vzdialenosti HC-SR04 s LCD displejom LCD1602 s podporou I2C a vytvoriť systém na meranie vzdialenosti v reálnom čase. Po dokončení tohto návodu budete mať funkčné zariadenie, ktoré nepretržite meria a zobrazuje vzdialenosť k objektu v centimetroch. Toto je základná zručnosť v Arduino elektronike, pretože kombinuje vstup zo snímača s vizuálnym výstupom.
Toto praktické zapojenie možno použiť v rôznych aplikáciách reálneho sveta, vrátane:
- Vytvorenie inteligentného parkovacieho asistenta, ktorý vám pomôže odhadnúť vzdialenosť k stene alebo inému vozidlu.
- Zostavenie jednoduchého monitora hladiny kvapaliny v nádrži meraním vzdialenosti od vrchu k hladine.
- Vývoj automatického dávkovača dezinfekcie rúk alebo bezdotykového odpadkového koša, ktorý sa otvorí, keď je objekt blízko.
- Konštrukcia základného bezpečnostného alarmu, ktorý sa spustí, keď niekto vstúpi do určitej zóny.
Hardvér a komponenty
Na zostavenie tohto projektu budete potrebovať nasledujúce komponenty:
- Doska Arduino (napr. Uno)
- LCD displej LCD1602 s modulom rozhrania I2C
- Ultrazvukový snímač vzdialenosti HC-SR04
- Prepojovacie vodiče
- Nepájivé pole (voliteľné, pre jednoduchšie zapojenie)
Pochopenie LCD1602 a I2C
LCD1602 je populárny displej schopný zobraziť 16 znakov na riadok v dvoch riadkoch. Modul "I2C" na jeho zadnej strane je významnou výhodou, pretože znižuje počet pinov potrebných na ovládanie displeja zo 6 alebo viac na iba 2 pre komunikáciu (SDA a SCL) a 2 pre napájanie (VCC a GND). Toto zjednodušenie robí zapojenie oveľa čistejším a uvoľňuje cenné digitálne piny na vašom Arduino pre iné snímače, ako je ultrazvukový snímač použitý v tomto projekte. (vo videu o 01:30)
Modul I2C má tiež malý potenciometer na nastavenie kontrastu displeja. Ak displej po zapnutí nič nezobrazuje, skúste otáčať touto skrutkou, kým sa text nestane viditeľným. (vo videu o 02:47)
Návod na zapojenie
Pripojenie komponentov je jednoduché. Modul I2C na LCD má štyri piny, ktoré je potrebné pripojiť k Arduinu. Ultrazvukový snímač má tiež štyri piny.
Tu je rozpis zapojení:
Modul I2C LCD1602 k Arduinu:
- GND na Arduino GND
- VCC na Arduino 5V
- SDA na Arduino A4
- SCL na Arduino A5
Ultrazvukový snímač HC-SR04 k Arduinu:
- VCC na Arduino 5V
- Trig na digitálny pin Arduina 12
- Echo na digitálny pin Arduina 11
- GND na Arduino GND
Schéma zapojenia pre tento projekt je uvedená vo videu.
Inštalácia požadovaných knižníc
Tento projekt sa spolieha na dve kľúčové knižnice. Prvá, LiquidCrystal_I2C, je potrebná na ovládanie LCD a nie je súčasťou Arduino IDE predvolene. Môžete si ju stiahnuť z odkazu uvedeného v popise videa alebo z webovej stránky Robojax. (vo videu o 06:16)
Druhá knižnica, NewPing, sa používa na komunikáciu s ultrazvukovým snímačom. Zjednodušuje proces odoslania pingu a čítania času ozveny. Obe knižnice možno nainštalovať cez Správcu knižníc v Arduino IDE prechodom na Sketch -> Include Library -> Manage Libraries a vyhľadaním ich názvov.
Vysvetlenie kódu
Tento náčrt kombinuje funkčnosť LCD a ultrazvukového snímača. Kód je štruktúrovaný tak, aby bol ľahko konfigurovateľný pre vaše konkrétne zapojenie.
Na začiatku kódu nájdete kľúčové premenné, ktoré možno budete musieť upraviť:
// Nastavte adresu LCD na 0x27 pre displej s 16 znakmi a 2 riadkami
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // Pin Arduina pripojený k trig pinu na ultrazvukovom snímači.
#define ECHO_PIN 11 // Pin Arduina pripojený k echo pinu na ultrazvukovom snímači.
#define MAX_DISTANCE 190 // Maximálna vzdialenosť, ktorú chceme merať (v centimetroch).
- Adresa LCD (0x27): Toto je I2C adresa vášho LCD modulu. Väčšina modulov používa
0x27, ale niektoré môžu používať0x3F. Ak váš displej nič nezobrazuje, možno budete musieť spustiť náčrt na skenovanie I2C, aby ste našli správnu adresu a aktualizovali túto hodnotu. (vo videu o 08:11) - TRIGGER_PIN a ECHO_PIN: Tieto definujú digitálne piny Arduina pripojené k pinom Trig a Echo ultrazvukového snímača. Ak používate iné piny, zmeňte tieto definície.
- MAX_DISTANCE: Toto nastavuje maximálnu vzdialenosť v centimetroch, ktorú snímač bude merať. HC-SR04 dokáže merať až do 400-500 cm, ale nastavenie nižšej hodnoty môže zlepšiť presnosť a spoľahlivosť meraní, najmä pre kratšie vzdialenosti.
Vo funkcii loop() kód vykonáva nasledujúce kroky:
- Na meranie vzdialenosti používa funkciu
sonar.ping_cm()a ukladá ju do premennejdistance. - Vymaže LCD a na prvý riadok vytlačí text „Robojax.com“.
- Potom nastaví kurzor na druhý riadok a vytlačí „Distance: “.
- Nakoniec presunie kurzor na pozíciu 10 na druhom riadku, aby vytlačil nameranú hodnotu
distancenasledovanú textom „cm“.
delay(200) na konci slučky riadi, ako často snímač vykoná nové meranie a aktualizuje displej.
Ukážka kódu
Po nahratí kódu do vášho Arduina sa LCD rozsvieti a začne zobrazovať vzdialenosť. Nastavenie môžete otestovať pohybom ruky alebo objektu smerom k ultrazvukovému snímaču a od neho. Číslo na obrazovke by sa malo aktualizovať v reálnom čase a zobrazovať vzdialenosť v centimetroch. (vo videu v čase 38:07)
Súvisiace projekty z tohto videa
- Lekcia 20/31: Použitie LCD1602 s Arduinom na zobrazenie textu | Robojax
- Lekcia 20/31: Zobrazenie teploty a vlhkosti z DHT11 na LCD obrazovke
- Lekcia 20/31: Zobrazenie napätia na LCD1602
Kapitoly
- [00:00] Úvod do LCD1602 a prehľad projektu
- [01:30] Vysvetlenie hardvéru LCD1602 a modulu I2C
- [03:14] Pinout LCD a konfigurácia adresy I2C
- [05:28] Schéma zapojenia pre LCD1602
- [06:16] Inštalácia požadovanej knižnice pre LCD
- [07:24] Základný kód na tlač textu na LCD
- [08:11] Zistenie adresy I2C vášho LCD
- [11:10] Príklady LCD: Blikajúci kurzor a vlastné znaky
- [18:51] Príklad LCD: Sériové zobrazenie a posúvanie textu
- [24:36] Zobrazenie teploty a vlhkosti DHT11 na LCD
- [33:00] Zobrazenie napätia z potenciometra na LCD
- [35:56] Kombinácia kódu ultrazvukového snímača s LCD
- [38:07] Ukážka zobrazenia vzdialenosti pomocou ultrazvuku
This code has not been parsed yet. Please return to the admin panel to parse it.
Veci, ktoré by ste mohli potrebovať
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Zdroje a referencie
-
DokumentáciaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ExternéPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Súbory📁
Knižnice Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Používateľská príručka
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB