Сабақ 20/31: LCD1602 Arduino дисплейімен мәтінді көрсету | Robojax
Кіріспе
LCD1602 — Arduino жобалары үшін ең танымал әріптік-сандық дисплейлердің бірі, ал I2C адаптерімен бірге оны пайдалану өте оңай болады. Бұл оқулықта сіз мәтінді, сандарды және арнайы таңбаларды көрсетуді, сондай-ақ мәтінді экран бойымен айналдыруды үйренесіз. Сондай-ақ, LCD-ді басқа датчиктермен біріктіріп, практикалық бақылау құралдарын жасауды көрсетеміз. Бұл нұсқаулық кеңірек Arduino курсының бөлігі болып табылады және үйде, мектепте немесе шеберханада пайдалы құрылғылар жасауға көмектесуге арналған.
Міне, осы біліммен жасай алатын бірнеше практикалық идеялар:
- Жылыжай немесе бауырымен жорғалаушылар торы үшін температура мен ылғалдылық мониторы.
- Жобаларыңыздағы батарея деңгейін тексеруге арналған қарапайым вольтметр.
- Тұрақ көмекшісі немесе толу деңгейін көрсететін ақылды қоқыс жәшігі үшін қашықтық датчигі.
Аппараттық шолу
LCD1602 — 16 таңбадан тұратын 2 жолды дисплей. Артқы жағындағы модуль — I2C (немесе I²C) адаптері, ол стандартты параллель қосылымнан қажетті сымдар санын төртке дейін азайтады: Ground, VCC, SDA және SCL. Бұл сымдарды қосуды айтарлықтай жеңілдетеді және Arduino-дағы көптеген цифрлық түйреуіштерді босатады.
Дисплейде артқы жарықтандыру бар, оны бағдарламалық түрде қосуға немесе өшіруге болады. Сондай-ақ, I2C модулінде контрастты реттеуге арналған шағын потенциометр бар. Дисплейді қосқанда ештеңе көрінбесе, мәтін көрінгенше бұл бұранданы айналдырыңыз (бейнеде 02:47).
Бұл дисплейдің әртүрлі нұсқалары бар, мысалы, 20 таңбадан және 4 жолдан тұратын LCD2004. I2C мекенжайын модульдегі A0, A1 және A2 секіргіштерін дәнекерлеу арқылы өзгертуге болады (бейнеде 03:51). Әдепкі мекенжай көбінесе 0x27 болады, бірақ ол әртүрлі болуы мүмкін, сондықтан нақты модуль үшін дұрыс мекенжайды табу үшін I2C сканерін іске қосу әрқашан жақсы идея.
Аппараттық құрамдас бөліктер
Осы бейнедегі негізгі демонстрацияны орындау үшін сізге келесі құрамдас бөліктер қажет:
- Arduino Uno (немесе кез келген үйлесімді плата)
- I2C модулі бар LCD1602
- Макет тақтасы және жалғау сымдары
Кейінгі бөлімдер үшін қай жобаны жасағыңыз келетініне байланысты DHT11 датчигі, потенциометр немесе ультрадыбыстық датчик қажет болады.
Қосылу нұсқаулығы
LCD қосу оңай. Қосылу схемасы байланыстарды анық көрсетеді.
I2C модуліндегі түйреуіштерді Arduino-ға келесідей қосыңыз:
- GND Arduino GND түйреуішіне
- VCC Arduino 5V түйреуішіне
- SDA Arduino A4 түйреуішіне
- SCL Arduino A5 түйреуішіне
Егер Arduino платаңызда арнайы SDA және SCL түйреуіштері болса, оларға да қосуға болады (бейнеде 05:47).
Кітапхананы орнату
Бұл модуль "Arduino Liquid Crystal I2C" кітапханасын қажет етеді. Оны бейне сипаттамасындағы сілтемеден немесе Robojax веб-сайтынан жүктеп алуға болады. Жүктеп алғаннан кейін, Arduino IDE-де Sketch > Include Library > Add .ZIP Library бөліміне өтіп, жүктеп алынған файлды таңдап орнатыңыз (бейнеде 06:41).
Кодты түсіндіру
Код үзінділері берілмегендіктен, біз бейнеде қолданылған кодтың жалпы құрылымын түсіндіреміз.
Код қажетті кітапханаларды қосудан басталады: I2C байланысы үшін Wire.h және дисплей үшін LiquidCrystal_I2C.h кітапханасы. Негізгі бөлік — LCD үшін нысан құру. Дұрыс I2C мекенжайын және дисплей өлшемдерін орнату қажет:
// 16 таңба және 2 жол дисплей үшін LCD мекенжайын 0x27 етіп орнату
LiquidCrystal_I2C lcd(0x27, 16, 2);
Егер дисплейде ештеңе көрінбесе, 0x27 мәнін 0x3F немесе I2C сканері тапқан басқа мекенжайға өзгерту қажет болуы мүмкін. 16 және 2 дисплейдегі бағандар мен жолдар санын білдіреді.
setup() функциясында LCD инициализацияланады және артқы жарықтандыру қосылады:
void setup() {
lcd.init();
lcd.backlight();
}
Мәтінді басып шығару үшін курсорды орналастыру үшін lcd.setCursor(column, row) функциясын, содан кейін деректерді көрсету үшін lcd.print() функциясын қолданасыз. Мысалы, екінші жолға басып шығару үшін lcd.setCursor(0, 1) қолдануға болады. Бейнеде сондай-ақ lcd.write(223) арқылы градус белгісі сияқты арнайы таңбаларды қалай басып шығару керектігі түсіндіріледі (бейнеде 31:42).
Демонстрация
Бейнеде LCD-дің бірнеше негізгі мүмкіндіктері көрсетілген. Алдымен "Hello World" мәтінін басып шығару және мәтінді экран бойымен жылжыту үшін lcd.scrollDisplayLeft() функциясын қолдану көрсетіледі. Кейінірек LCD DHT11 датчигімен біріктіріліп температура мен ылғалдылықты, потенциометрмен кернеуді, ал ультрадыбыстық датчикпен қашықтықты көрсетеді.
Температураны көрсету үшін код датчиктен мәнді оқиды және оны басып шығарады. Ондықсыз бүтін санды көрсету үшін float мәнін бүтін санға түрлендіруге болады, бейнеде көрсетілгендей (бейнеде 32:21).
Вольтметр үшін код потенциометрден аналогтық мәнді оқиды, оны 0-5В кернеу диапазонына масштабтайды және экранда көрсетеді (бейнеде 34:31).
Қорытынды демонстрация LCD-ді ультрадыбыстық сенсормен біріктіріп, өлшенген қашықтықты сантиметрмен көрсетеді (бейнеде 37:55).
Осы бейнеге қатысты жобалар
Бұл бейнеде басқа да жобалардың оқулықтары бар. Оларды мына жерден таба аласыз:
- Сабақ 20/31: DHT11 температура мен ылғалдылықты LCD экранда көрсету
- Сабақ 20/31: Кернеуді LCD1602-де көрсету
Тараулар
- [00:00] LCD1602-ге кіріспе және курсқа шолу
- [01:30] LCD1602 және I2C модулінің аппараттық шолуы
- [02:47] Дисплей контрасты мен артқы жарықты реттеу
- [03:14] Пин қосылымдары және I2C мекенжайын таңдау
- [05:28] LCD үшін сымдар схемасы
- [06:16] Қажетті кітапхананы орнату
- [07:24] Мәтін басып шығаруға арналған негізгі код
- [11:10] Жыпылықтайтын курсор мысалы
- [13:46] Арнайы таңбалар және ерекше белгілерді басып шығару
- [18:51] Тізбекті дисплей мысалы
- [23:16] LCD-де мәтінді айналдыру
- [36:51] LCD-ді ультрадыбыстық сенсормен біріктіру
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
Сізге қажет болуы мүмкін нәрселер
-
АмазонкаBuy LCD1602-I2C from Amazonamzn.to
-
АмазонкаSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Амазонка
-
Амазонка
-
Амазонка
-
Амазонка
-
eBayPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
-
ҚұжаттамаDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
СыртқыLCD library from RoboJax (ZIP)robojax.com
-
СыртқыPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Файлдар📁
Arduino кітапханалары (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB