Кодты іздеу

Сабақ 20/31: Ультрадыбыстық қашықтықты LCD1602 дисплейінде көрсету

Сабақ 20/31: Ультрадыбыстық қашықтықты LCD1602 дисплейінде көрсету

Бұл жоба HC-SR04 ультрадыбыстық қашықтық сенсорын I2C қолдауы бар LCD1602 дисплейімен біріктіріп, нақты уақыттағы қашықтықты өлшеу жүйесін жасауды көрсетеді. Осы нұсқаулықтың соңында сізде нысанға дейінгі қашықтықты сантиметрмен үздіксіз өлшеп, көрсететін жұмыс істейтін құрылғы болады. Бұл Arduino электроникасындағы негізгі дағды, өйткені ол сенсорлық кірісті визуалды шығыспен біріктіреді.

Sunfounder 20-LCD1602-ultrasonic

Бұл практикалық қондырғыны әртүрлі нақты әлем қолданбаларында қолдануға болады, соның ішінде:

  • Қабырғаға немесе басқа көлікке дейінгі қашықтықты бағалауға көмектесетін ақылды тұрақ көмекшісін жасау.
  • Резервуардың үстінен бетіне дейінгі қашықтықты өлшеу арқылы қарапайым сұйықтық деңгейін бақылау құрылғысын құру.
  • Нысан жақындағанда ашылатын автоматтандырылған қол дезинфекторын немесе тиіспес қоқыс жәшігін әзірлеу.
  • Белгілі бір аймаққа біреу кіргенде іске қосылатын қарапайым қауіпсіздік дабылын құру.

Аппараттық құралдар мен компоненттер

Бұл жобаны құру үшін сізге келесі компоненттер қажет:

  • Arduino тақтасы (мысалы, Uno)
  • I2C интерфейс модулі бар LCD1602 дисплейі
  • HC-SR04 ультрадыбыстық қашықтық сенсоры
  • Жалғағыш сымдар
  • Breadboard (міндетті емес, оңай қосылу үшін)

LCD1602 және I2C түсіну

LCD1602 - екі жолда әр жолға 16 таңба көрсете алатын танымал дисплей. Оның артындағы "I2C" модулі маңызды артықшылық болып табылады, өйткені ол дисплейді басқару үшін қажетті түйреуіштер санын 6 немесе одан да көптен тек 2 байланыс (SDA және SCL) және 2 қуат (VCC және GND) үшін азайтады. Бұл жеңілдету сымдарды әлдеқайда таза етеді және Arduino-дағы құнды цифрлық түйреуіштерді осы жобада қолданылатын ультрадыбыстық сенсор сияқты басқа сенсорлар үшін босатады. (бейнеде 01:30)

I2C модулінде дисплей контрастын реттеуге арналған шағын потенциометр де бар. Егер дисплейді қуаттандырып, ештеңе көрмесеңіз, мәтін көрінгенше осы бұранданы бұрап көріңіз. (бейнеде 02:47)

Сымдарды жалғау нұсқаулығы

LCD1602_wiring_ultrasonic_bb

Компоненттерді қосу оңай. LCD I2C модулінде Arduino-ға қосылуы керек төрт түйреуіш бар. Ультрадыбыстық сенсорда да төрт түйреуіш бар.

Міне, қосылымдардың сипаттамасы:

LCD1602 I2C модулінен Arduino-ға:

  • GND Arduino GND түйреуішіне
  • VCC Arduino 5V түйреуішіне
  • SDA Arduino A4 түйреуішіне
  • SCL Arduino A5 түйреуішіне

HC-SR04 ультрадыбыстық сенсорынан Arduino-ға:

  • VCC Arduino 5V түйреуішіне
  • Trig Arduino цифрлық 12 түйреуішіне
  • Echo Arduino цифрлық 11 түйреуішіне
  • GND Arduino GND түйреуішіне

Бұл жобаның сымдар схемасы бейнеде көрсетілген.

Қажетті кітапханаларды орнату

Бұл жоба екі маңызды кітапханаға сүйенеді. Біріншісі, LiquidCrystal_I2C, LCD басқару үшін қажет және Arduino IDE-ге әдепкі бойынша қосылмаған. Оны бейне сипаттамасында берілген сілтемеден немесе Robojax веб-сайтынан жүктеп алуға болады. (бейнеде 06:16)

Екінші кітапхана, NewPing, ультрадыбыстық сенсормен байланысу үшін қолданылады. Ол пинг жіберу және жаңғырық уақытын оқу процесін жеңілдетеді. Екі кітапхананы да Arduino IDE-нің Library Manager арқылы Sketch -> Include Library -> Manage Libraries бөліміне өтіп, олардың атауларын іздеу арқылы орнатуға болады.

Кодты түсіндіру

Бұл скетч LCD және ультрадыбыстық сенсордың функционалдығын біріктіреді. Код сіздің нақты қондырғыңызға оңай конфигурацияланатындай құрылымдалған.

Кодтың жоғарғы жағында реттеу қажет болуы мүмкін негізгі айнымалыларды табасыз:

// 16 таңба және 2 жол дисплей үшін LCD мекенжайын 0x27 мәніне орнатыңыз
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Ультрадыбыстық сенсордағы триггер түйреуішіне байланған Arduino түйреуіші.
#define ECHO_PIN     11  // Ультрадыбыстық сенсордағы эхо түйреуішіне байланған Arduino түйреуіші.
#define MAX_DISTANCE 190 // Пинг жібергіміз келетін максималды қашықтық (сантиметрмен).
  • LCD мекенжайы (0x27): Бұл LCD модуліңіздің I2C мекенжайы. Көптеген модульдер 0x27 мәнін пайдаланады, бірақ кейбіреулері 0x3F мәнін пайдалануы мүмкін. Егер дисплейде ештеңе көрінбесе, дұрыс мекенжайды табу үшін I2C сканер скетчін іске қосып, осы мәнді жаңарту қажет болуы мүмкін. (бейнеде 08:11)
  • TRIGGER_PIN және ECHO_PIN: Бұлар ультрадыбыстық сенсордың Trig және Echo түйреуіштеріне қосылған Arduino цифрлық түйреуіштерін анықтайды. Егер басқа түйреуіштерді қолдансаңыз, осы анықтамаларды өзгертіңіз.
  • MAX_DISTANCE: Бұл сенсор өлшейтін максималды қашықтықты сантиметрмен орнатады. HC-SR04 400-500 см-ге дейін өлшей алады, бірақ төменірек мән орнату көрсеткіштердің дәлдігі мен сенімділігін жақсарта алады, әсіресе қысқа қашықтықтар үшін.

loop() функциясында код келесі қадамдарды орындайды:

  1. Ол sonar.ping_cm() функциясын қашықтықты өлшеу үшін пайдаланады және оны distance айнымалысында сақтайды.
  2. Ол LCD экранын тазартады және бірінші жолға "Robojax.com" мәтінін басып шығарады.
  3. Содан кейін ол курсорды екінші жолға орнатады және "Distance: " мәтінін басып шығарады.
  4. Соңында, ол өлшенген distance мәнін және одан кейін "cm" басып шығару үшін курсорды екінші жолдың 10-позициясына жылжытады.

Циклдің соңындағы delay(200) сенсордың жаңа өлшеуді қаншалықты жиі қабылдайтынын және дисплейді жаңартатынын басқарады.

Кодты көрсету

Код Arduino-ға жүктелгеннен кейін, LCD жарықтанып, қашықтықты көрсете бастайды. Сіз қолыңызды немесе затты ультрадыбыстық сенсорға жақындатып және алыстатып, қондырғыны сынай аласыз. Экрандағы сан сантиметрмен қашықтықты көрсетіп, нақты уақытта жаңартылуы керек. (бейнеде 38:07)

Осы бейнеден алынған байланысты жобалар

Тараулар

  • [00:00] LCD1602-ге кіріспе және жобаға шолу
  • [01:30] LCD1602 аппараттық құралы және I2C модулі түсіндірілді
  • [03:14] LCD қосқыштары және I2C мекенжайын конфигурациялау
  • [05:28] LCD1602 үшін қосылу схемасы
  • [06:16] Қажетті LCD кітапханасын орнату
  • [07:24] LCD-де мәтін басып шығаруға арналған негізгі код
  • [08:11] LCD-дің I2C мекенжайын табу
  • [11:10] LCD мысалдары: жыпылықтайтын курсор және арнайы таңбалар
  • [18:51] LCD мысалы: сериялық дисплей және айналмалы мәтін
  • [24:36] LCD-де DHT11 температура мен ылғалдылықты көрсету
  • [33:00] LCD-де потенциометрден кернеуді көрсету
  • [35:56] Ультрадыбыстық сенсор кодын LCD-мен біріктіру
  • [38:07] Ультрадыбыстық қашықтық дисплейін көрсету

Суреттер

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

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Файлдар📁

Arduino кітапханалары (zip)

Пайдаланушының нұсқаулығы