Soek Kode

Les 20/31: Vertoon van ultrasoniese afstand op LCD1602

Les 20/31: Vertoon van ultrasoniese afstand op LCD1602

Hierdie projek demonstreer hoe om 'n HC-SR04 ultrasoniese afstandsensor met 'n I2C-ondersteunde LCD1602-skerm te kombineer om 'n intydse afstandsmetingstelsel te skep. Teen die einde van hierdie gids sal jy 'n werkende toestel hê wat voortdurend die afstand na 'n voorwerp in sentimeters meet en vertoon. Dit is 'n fundamentele vaardigheid in Arduino-elektronika, aangesien dit sensorinvoer met visuele uitset kombineer.

Sunfounder 20-LCD1602-ultrasonic

Hierdie praktiese opstelling kan in 'n verskeidenheid van werklike toepassings gebruik word, insluitend:

  • Die skep van 'n slim parkeerassistent wat jou help om die afstand na 'n muur of 'n ander voertuig te bepaal.
  • Die bou van 'n eenvoudige vloeistofvlakmonitor vir 'n tenk deur die afstand van die bokant na die oppervlak te meet.
  • Die ontwikkeling van 'n outomatiese handreiniger-dispenser of 'n raaklose vullisdrom wat oopmaak wanneer 'n voorwerp naby is.
  • Die konstruksie van 'n basiese sekuriteitsalarm wat aktiveer wanneer iemand 'n spesifieke sone binnegaan.

Hardeware en Komponente

Om hierdie projek te bou, sal jy die volgende komponente benodig:

  • Arduino-bord (bv. Uno)
  • LCD1602-skerm met 'n I2C-koppelvlakmodule
  • HC-SR04 Ultrasoniese Afstandsensor
  • Springdrade
  • Broodbord (opsioneel, vir makliker verbindings)

Verstaan die LCD1602 en I2C

Die LCD1602 is 'n gewilde skerm wat 16 karakters per lyn oor twee lyne kan wys. Die "I2C"-module op die agterkant is 'n beduidende voordeel omdat dit die aantal penne wat benodig word om die skerm te beheer, van 6 of meer verminder tot net 2 vir kommunikasie (SDA en SCL) en 2 vir krag (VCC en GND). Hierdie vereenvoudiging maak bedrading baie skoner en bevry waardevolle digitale penne op jou Arduino vir ander sensors, soos die ultrasoniese een wat in hierdie projek gebruik word. (in video by 01:30)

Die I2C-module het ook 'n klein potensiometer om die skerm se kontras aan te pas. As jy die skerm aanskakel en niks sien nie, probeer om hierdie skroef te draai totdat die teks sigbaar word. (in video by 02:47)

Bedradingsgids

LCD1602_wiring_ultrasonic_bb

Die verbinding van die komponente is eenvoudig. Die LCD se I2C-module het vier penne wat aan die Arduino gekoppel moet word. Vir die ultrasoniese sensor het dit ook vier penne.

Hier is 'n uiteensetting van die verbindings:

LCD1602 I2C-module na Arduino:

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

HC-SR04 Ultrasoniese Sensor na Arduino:

  • VCC na Arduino 5V
  • Trig na Arduino digitale pen 12
  • Echo na Arduino digitale pen 11
  • GND na Arduino GND

Die bedradingdiagram vir hierdie projek word in die video verwys.

Installeer die Vereiste Biblioteke

Hierdie projek maak staat op twee belangrike biblioteke. Die eerste, LiquidCrystal_I2C, is nodig om die LCD te beheer en word nie by verstek met die Arduino IDE ingesluit nie. Jy kan dit aflaai van die skakel wat in die videobeskrywing verskaf word of van die Robojax-webwerf. (in video by 06:16)

Die tweede biblioteek, NewPing, word gebruik om met die ultrasoniese sensor te koppel. Dit vereenvoudig die proses om 'n ping te stuur en die eggotyd te lees. Beide biblioteke kan via die Arduino IDE se Biblioteekbestuurder geïnstalleer word deur na Sketch -> Include Library -> Manage Libraries te gaan en vir hul name te soek.

Kodeverduideliking

Hierdie skets kombineer die funksionaliteit van die LCD en die ultrasoniese sensor. Die kode is gestruktureer om maklik konfigureerbaar te wees vir jou spesifieke opstelling.

Boonop in die kode sal jy die sleutelveranderlikes vind wat jy dalk moet aanpas:

// Stel die LCD-adres na 0x27 vir 'n 16 karakters en 2 lyn skerm
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Arduino-pen gekoppel aan trigger-pen op die ultrasoniese sensor.
#define ECHO_PIN     11  // Arduino-pen gekoppel aan echo-pen op die ultrasoniese sensor.
#define MAX_DISTANCE 190 // Maksimum afstand waarvoor ons wil ping (in sentimeters).
  • LCD-adres (0x27): Dit is die I2C-adres van jou LCD-module. Die meeste modules gebruik 0x27, maar sommige mag 0x3F gebruik. As jou skerm niks wys nie, moet jy dalk 'n I2C-skandeerder-skets laat loop om die korrekte adres te vind en hierdie waarde op te dateer. (in video by 08:11)
  • TRIGGER_PIN en ECHO_PIN: Dit definieer die Arduino digitale penne wat aan die Trig- en Echo-penne van die ultrasoniese sensor gekoppel is. As jy verskillende penne gebruik, verander hierdie definisies.
  • MAX_DISTANCE: Dit stel die maksimum afstand in sentimeters wat die sensor sal meet. Die HC-SR04 kan tot 400-500cm meet, maar die stel van 'n laer waarde kan die akkuraatheid en betroubaarheid van die lesings verbeter, veral vir korter afstande.

In die loop()-funksie voer die kode die volgende stappe uit:

  1. Dit gebruik die sonar.ping_cm()-funksie om die afstand te meet en dit in die distance-veranderlike te stoor.
  2. Dit maak die LCD skoon en druk die teks "Robojax.com" op die eerste lyn.
  3. Dit stel dan die wyser na die tweede lyn en druk "Distance: ".
  4. Laastens beweeg dit die wyser na posisie 10 op die tweede lyn om die gemete distance-waarde te druk, gevolg deur "cm".

Die delay(200) aan die einde van die lus beheer hoe gereeld die sensor 'n nuwe lesing neem en die vertoning opdateer.

Kodedemonstrasie

Sodra die kode na jou Arduino opgelaai is, sal die LCD aangaan en die afstand begin vertoon. Jy kan die opstelling toets deur jou hand of 'n voorwerp nader aan en verder van die ultrasoniese sensor af te beweeg. Die nommer op die skerm moet intyds opdateer en die afstand in sentimeters wys. (in video by 38:07)

Verwante projekte uit hierdie video

Hoofstukke

  • [00:00] Inleiding tot die LCD1602 en projekoorsig
  • [01:30] LCD1602-hardeware en I2C-module verduidelik
  • [03:14] LCD-pin-uitleg en I2C-adreskonfigurasie
  • [05:28] Bedradingsdiagram vir die LCD1602
  • [06:16] Installeer die vereiste LCD-biblioteek
  • [07:24] Basiese kode om teks op die LCD te druk
  • [08:11] Vind jou LCD se I2C-adres
  • [11:10] LCD-voorbeelde: Knipperende wyser en pasgemaakte karakters
  • [18:51] LCD-voorbeeld: Seriële vertoning en rolteks
  • [24:36] Vertoon van DHT11-temperatuur en -humiditeit op die LCD
  • [33:00] Vertoon van spanning vanaf 'n potensiometer op die LCD
  • [35:56] Kombineer ultrasoniese sensorkode met LCD
  • [38:07] Demonstrasie van die ultrasoniese afstandsvertoning

Beelde

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

Hulpbronne en verwysings

Lêers📁

Arduino Biblioteke (zip)

Gebruikershandleiding