Pretraži kod

Lekcija 20/31: Prikazivanje ultrazvučne udaljenosti na LCD1602

Lekcija 20/31: Prikazivanje ultrazvučne udaljenosti na LCD1602

Ovaj projekat demonstrira kako kombinovati HC-SR04 ultrazvučni senzor udaljenosti sa LCD1602 displejem koji podržava I2C kako bi se kreirao sistem za mjerenje udaljenosti u realnom vremenu. Do kraja ovog vodiča, imat ćete funkcionalan uređaj koji kontinuirano mjeri i prikazuje udaljenost do objekta u centimetrima. Ovo je osnovna vještina u Arduino elektronici, jer kombinuje senzorski ulaz sa vizuelnim izlazom.

Sunfounder 20-LCD1602-ultrasonic

Ova praktična postavka može se koristiti u raznim stvarnim aplikacijama, uključujući:

  • Kreiranje pametnog asistenta za parkiranje koji vam pomaže da procijenite udaljenost do zida ili drugog vozila.
  • Izgradnju jednostavnog monitora nivoa tečnosti za rezervoar mjerenjem udaljenosti od vrha do površine.
  • Razvoj automatskog dozatora za dezinfekciju ruku ili kante za smeće bez dodira koja se otvara kada je objekat blizu.
  • Konstrukciju osnovnog sigurnosnog alarma koji se aktivira kada neko uđe u određenu zonu.

Hardver i komponente

Za izgradnju ovog projekta trebat će vam sljedeće komponente:

  • Arduino ploča (npr. Uno)
  • LCD1602 displej sa I2C interfejs modulom
  • HC-SR04 ultrazvučni senzor udaljenosti
  • Konektorski kablovi (jumper wires)
  • Breadboard (opciono, za lakše povezivanje)

Razumijevanje LCD1602 i I2C

LCD1602 je popularan displej sposoban da prikaže 16 karaktera po liniji u dvije linije. "I2C" modul na njegovoj poleđini je značajna prednost jer smanjuje broj pinova potrebnih za kontrolu displeja sa 6 ili više na samo 2 za komunikaciju (SDA i SCL) i 2 za napajanje (VCC i GND). Ovo pojednostavljenje čini ožičenje mnogo urednijim i oslobađa vrijedne digitalne pinove na vašem Arduinu za druge senzore, poput ultrazvučnog koji se koristi u ovom projektu. (u videu na 01:30)

I2C modul također ima mali potenciometar za podešavanje kontrasta displeja. Ako uključite displej i ne vidite ništa, pokušajte okrenuti ovaj vijak dok tekst ne postane vidljiv. (u videu na 02:47)

Vodič za povezivanje

LCD1602_wiring_ultrasonic_bb

Povezivanje komponenti je jednostavno. LCD-ov I2C modul ima četiri pina koja treba povezati na Arduino. Ultrazvučni senzor također ima četiri pina.

Evo pregleda veza:

LCD1602 I2C modul na Arduino:

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

HC-SR04 ultrazvučni senzor na Arduino:

  • VCC na Arduino 5V
  • Trig na Arduino digitalni pin 12
  • Echo na Arduino digitalni pin 11
  • GND na Arduino GND

Šema povezivanja za ovaj projekat prikazana je u videu.

Instalacija potrebnih biblioteka

Ovaj projekat se oslanja na dvije ključne biblioteke. Prva, LiquidCrystal_I2C, potrebna je za kontrolu LCD-a i nije uključena u Arduino IDE po defaultu. Možete je preuzeti sa linka navedenog u opisu videa ili sa Robojax web stranice. (u videu na 06:16)

Druga biblioteka, NewPing, koristi se za interakciju sa ultrazvučnim senzorom. Pojednostavljuje proces slanja pinga i čitanja vremena eha. Obje biblioteke mogu se instalirati putem Arduino IDE-ovog Library Managera odlaskom na Sketch -> Include Library -> Manage Libraries i pretragom njihovih imena.

Objašnjenje koda

Ovaj sketch kombinuje funkcionalnost LCD-a i ultrazvučnog senzora. Kod je strukturiran tako da se lako može konfigurisati za vašu specifičnu postavku.

Na vrhu koda pronaći ćete ključne varijable koje možda trebate prilagoditi:

// Postavite LCD adresu na 0x27 za displej od 16 karaktera i 2 linije
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Arduino pin povezan na trigger pin na ultrazvučnom senzoru.
#define ECHO_PIN     11  // Arduino pin povezan na echo pin na ultrazvučnom senzoru.
#define MAX_DISTANCE 190 // Maksimalna udaljenost koju želimo mjeriti (u centimetrima).
  • LCD adresa (0x27): Ovo je I2C adresa vašeg LCD modula. Većina modula koristi 0x27, ali neki mogu koristiti 0x3F. Ako vaš displej ne pokazuje ništa, možda ćete morati pokrenuti I2C skener sketch kako biste pronašli tačnu adresu i ažurirali ovu vrijednost. (u videu na 08:11)
  • TRIGGER_PIN i ECHO_PIN: Ovi definišu Arduino digitalne pinove povezane na Trig i Echo pinove ultrazvučnog senzora. Ako koristite druge pinove, promijenite ove definicije.
  • MAX_DISTANCE: Ovo postavlja maksimalnu udaljenost u centimetrima koju će senzor mjeriti. HC-SR04 može mjeriti do 400-500cm, ali postavljanje niže vrijednosti može poboljšati tačnost i pouzdanost očitanja, posebno za kraće udaljenosti.

U loop() funkciji, kod izvršava sljedeće korake:

  1. Koristi funkciju sonar.ping_cm() za mjerenje udaljenosti i pohranjuje je u varijablu distance.
  2. Čisti LCD i ispisuje tekst "Robojax.com" na prvoj liniji.
  3. Zatim postavlja kursor na drugu liniju i ispisuje "Distance: ".
  4. Na kraju, pomiče kursor na poziciju 10 na drugoj liniji kako bi ispisao izmjerenu vrijednost distance nakon koje slijedi "cm".

delay(200) na kraju petlje kontrolira koliko često senzor uzima novo očitanje i ažurira prikaz.

Demonstracija koda

Nakon što se kod prenese na vaš Arduino, LCD će se upaliti i početi prikazivati udaljenost. Možete testirati postavku pomicanjem ruke ili objekta bliže i dalje od ultrazvučnog senzora. Broj na ekranu trebao bi se ažurirati u stvarnom vremenu, prikazujući udaljenost u centimetrima. (u videu na 38:07)

Povezani projekti iz ovog videa

Poglavlja

  • [00:00] Uvod u LCD1602 i pregled projekta
  • [01:30] Objašnjenje LCD1602 hardvera i I2C modula
  • [03:14] LCD pinout i konfiguracija I2C adrese
  • [05:28] Dijagram povezivanja za LCD1602
  • [06:16] Instalacija potrebne LCD biblioteke
  • [07:24] Osnovni kod za ispis teksta na LCD
  • [08:11] Pronalaženje I2C adrese vašeg LCD-a
  • [11:10] LCD primjeri: Trepćući kursor i prilagođeni znakovi
  • [18:51] LCD primjer: Serijski prikaz i pomični tekst
  • [24:36] Prikaz temperature i vlažnosti DHT11 na LCD-u
  • [33:00] Prikaz napona s potenciometra na LCD-u
  • [35:56] Kombiniranje koda ultrazvučnog senzora s LCD-om
  • [38:07] Demonstracija prikaza ultrazvučne udaljenosti

Slike

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
Jezik: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Resursi i reference

Datoteke📁

Arduino biblioteke (zip)

Korisnički priručnik