Всеки радиолюбител след определен брой прости кълнове достига до целта да изгради нещо грандиозно в използването на сензори и бутони. Много по-интересно е да се показват данните, отколкото порта за монитор. Но тогава възниква въпросът: кой дисплей да изберем? И като цяло, как да го свържете, какво е необходимо за свързване? Отговорите на тези въпроси ще бъдат разгледани в тази статия.
LCD 1602
Къде се използва?
Свързване с Arduino
# включват: Добавяне на необходимата библиотека
LiquidCrystal lcd (765 432); //(RS, E, DB4 DB5 DB6 DB7)
void setup () {
lcd. Започва (16 2); //Задаване на размера на екрана
lcd.setCursor (0 0); //Задаване на курсора в началото на първия ред
lcd.print ("Здравей, свят!"); //Изходен текст
lcd.setCursor (0 1); //Инсталирайте курсора в началото на ред 2
lcd.print ("fb.ru"); //Изведете текста
}
void loop () {
}
Какво прави кодът? Първата задача е да свържете библиотека за работа с дисплея. Както вече споменахме, тази библиотека вече е част от Arduino IDE и не е необходимо допълнително изтегляне и инсталиране. Определете контактите, които са свързани към следното: RS, E, DB4 DB5 DB6 DB7, съответно. След това се определя размерът на екрана. Тъй като работим върху версия с 16 знака и 2 реда, пишем такавастойност. Поставяме курсора в началото на първия ред и изваждаме първия си текст Hello World. След това поставете курсора на втория ред и покажете името на сайта. Това е всичко! Беше разгледана връзката на LCD 1602 с Arduino Uno.
& lt; script type = "text /javascript" & gt;
може да blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings2.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
Какво е I2C и защо е необходимо?
Както беше споменато по-горе, връзката на дисплея заема много контакти. Например, при работа с множество сензори и LCD дисплей 1602 контактите може просто да не са достатъчни. Често радиолюбителите използват версии на Uno или Nano, където няма много контакти. Тогава хората дойдоха със специална шилда. Например, I2C. Тя ви позволява да свържете дисплея само с 4 контакта. Това е два пъти по-малко. Модулът I2C се продава отделно, където е необходимо да се запоява, и вече е споен с LCD дисплея 1602.
Свързване чрез I2C модул
Свързването на LCD 1602 към Arduino Nano с I2C заема малко място, само 4 контакта: земя, мощност и 2 изхода за предаване на данни. Мощност и земята са свързани към 5V и GND съответно на Arduino. Остават два контакта: SCL и SDA са свързани към всякакви аналогови игли. На снимката можете да видите пример за свързване на lcd 1602 към arduino с I2C модул:
Код на програмата
Ако работи с дисплея без модулнеобходимо е да се използва само една библиотека, след което за работа с модула са необходими две библиотеки. Един от тях вече е в Arduino IDE - Wire. Друга библиотека, LiquidCrystal I2C, трябва да бъде изтеглена отделно и инсталирана. За да инсталирате библиотеката Arduino, съдържанието на изтегления архив трябва да се изтегли в основната директория на библиотеките. Пример код, използващ I2C:
& lt; script type = "text /javascript" & gt;
може да blockSettings3 = {blockId: "R-A-271049-6", renderTo: "yandex_rtb_R-A-70350-44", async: 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings3.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
# включват
# включват
LiquidCrystal_I2C lcd (0x27162); //Инсталирайте дисплея
void setup ()
{
lcd.init ();
lcd.backlight (); //Включване на подсветката на дисплея
lcd.print ("FB.ru");
lcd.setCursor (8 1);
lcd.print ("LCD 1602");
}
void loop ()
{
//Поставете курсора на втория ред и нулевия символ.
lcd.setCursor (0 1);
//Показваме броя на секундите след началото на arudui
lcd.print (millis () /1000);
}
Както виждате, кодът е почти същият.
Как да добавите вашия характер?
Проблемът с тези дисплеи е, че няма поддръжка за кирилица и символи. Например, имате нужда от символ, за да изтеглите дисплея, така че той да може да го покаже. За тази цел дисплеят ви позволява да създадете до 7 от вашите знаци. Представете си таблицата:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
Ако 0 - няма нищо, ако 1 е боядисана област. В горния пример можете да видите създаването на усмивка с усмивка. Например, програмата Arduino ще изглежда така:
#include
#include //Нуждаем се от библиотеката
//Маска на растерна графика smile
байт smile