Лекција 20/31: Прикажување текст на LCD1602 со Arduino | Robojax
Вовед
LCD1602 е еден од најпопуларните алфанумерички дисплеи за Arduino проекти, и кога е спарен со I2C адаптер, станува неверојатно лесен за користење. Во ова упатство, ќе научите како да прикажувате текст, броеви и сопствени знаци, како и како да скролувате текст преку екранот. Исто така, ќе ви покажеме како да го комбинирате LCD-то со други сензори за да креирате практични алатки за следење. Овој водич е дел од поширок Arduino курс и е дизајниран да ви помогне да изградите корисни уреди за вашиот дом, училиште или работилница.
Еве неколку практични идеи за тоа што можете да изградите со ова знаење:
- Монитор за температура и влажност за стаклена градина или терариум за влекачи.
- Едноставен волтметар за проверка на нивото на батериите во вашите проекти.
- Сензор за растојание за асистент при паркирање или паметна корпа за отпадоци што покажува колку е полна.
Преглед на хардверот
LCD1602 е дисплеј со 16 карактери и 2 линии. Модулот на задниот дел е I2C (или I²C) адаптер, кој го намалува бројот на потребни жици од стандардна паралелна врска на само четири: Ground, VCC, SDA и SCL. Ова го прави поврзувањето многу поедноставно и ослободува многу дигитални пинови на вашиот Arduino.
Дисплејот има позадинско осветлување, кое може да се вклучи или исклучи преку софтвер. Исто така, има мал потенциометар на I2C модулот за прилагодување на контрастот. Ако го вклучите дисплејот и не видите ништо, едноставно ротирајте го овој шраф додека текстот не стане видлив (во видеото на 02:47).
Постојат различни верзии на овој дисплеј, како што е LCD2004 кој има 20 карактери и 4 линии. I2C адресата исто така може да се промени со лемење на A0, A1 и A2 џамперите на модулот (во видеото на 03:51). Стандардната адреса често е 0x27, но може да варира, па затоа е секогаш добра идеја да стартувате I2C скенер за да ја најдете точната адреса за вашиот специфичен модул.
Хардверски компоненти
За да ја следите главната демонстрација во ова видео, ќе ви требаат следниве компоненти:
- Arduino Uno (или било која компатибилна плоча)
- LCD1602 со I2C модул
- Прототипна плоча и поврзувачки жици
За подоцнежните делови, исто така ќе ви треба 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).
Објаснување на кодот
Бидејќи не беа обезбедени кодови, ќе ја објасниме општата структура на кодот користен во видеото.
Кодот започнува со вклучување на потребните библиотеки: Wire.h за I2C комуникација и библиотеката LiquidCrystal_I2C.h за дисплејот. Клучниот дел е креирањето на објект за LCD-то. Ќе треба да ја поставите точната I2C адреса и димензиите на вашиот дисплеј:
// Поставете ја LCD адресата на 0x27 за дисплеј со 16 карактери и 2 линии
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-5V, и ја прикажува на екранот (во видеото на 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
Работи што можеби ќе ви требаат
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
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 изворен код
3in1-kit-main-v2.zip12.80 MB