ПРОГРАМЕН КОД ЗА УРОК 10
ПРОГРАМЕН КОД ЗА УРОК 10. ARDUINO И ДИСПЛЕЙ С ТЕЧНИ КРИСТАЛИ (LCD)
ДИСПЛЕЙ С ТЕЧНИ КРИСТАЛИ (LCD)
Течнокристален дисплей (LCD, или на английски "Liquid Crystal Display" - LCD) е сложен електронен модул, който може да се използва за показване на текстови или цифрови данни. Дисплеят е поставен в рамка, на печатна платка, има два реда по 16 символа, както и подсветка за използване през нощта.
Ако сте използвали монитор със сериен порт за извеждане на данни, ще видите, че той е подобен на LCD и няма нужда да мъкнете голям компютър със себе си.
Този урок ще ви покаже как да свържете LCD към вашия Arduino и как да извеждате всякакви данни към него.
Хардуерна връзка:
LCD модулът има 16-пинов конектор (доставен), запоен към горния ръб. Първият контакт е по-близо до ъгъла на дисплея. 16-ият контакт е по-близо до центъра на LCD дисплея. Свържете LCD към макетната платка. Както обикновено, свържете + и - common rail на макетната платка към вашия Arduino. Свържете 10K потенциометър към свободно място на вашата макетна платка. Свържете крайното краче на потенциометъра към + 5V, а другото крайно към GND, няма значение кой къде. По време на опита ще използвате потенциометъра, за да регулирате LCD контраста.
Сега свържете LCD щифтовете към Arduino. Не забравяйте, че щифт 1 на LCD дисплея е по-близо до ъгъла. Започнете от там.
1 към GND 2 към +5V 3 към централния щифт на потенциометъра 4 към цифров порт 12 Arduino 5 към GND 6 към цифров порт 11 Arduino 7 (не е свързан) 8 (не е свързан) 9 (не е свързан) 10 (не е свързан) 11 към Arduino цифров порт 5 12 към Arduino цифров порт 4 13 към Arduino цифров порт 3 14 към Arduino цифров порт 2 15 към +5V 16 към GND
След като се свържете, качете скицата в Arduino и регулирайте яркостта с потенциометъра.
Библиотека
На LCD платката има чип, който контролира всички сегменти на дисплея и се подчинява на командите, изпратени до него от Arduino. Чипът съдържа множество точкови модели, които изграждат всички текстови знаци, като по този начин спестява много време.
За да комуникираме с този чип, ще използваме библиотеката LiquidCrystal, която е една от стандартните библиотеки на Arduino. Тази библиотека върши цялата тежка работа. Остава само да изберете място на дисплея и да изпратите данните си там!Съвети
Има защитно фолио, прикрепено към панела на индикатора, който може да бъде внимателно отстранен, но внимавайте, панелът на индикатора е много лесен за надраскване.
LCD дисплеят има подсветка, която светва при подаване на захранващо напрежение . Ако фоновото осветление не се включи, проверете правилните връзки.
Както споменахме по-горе, потенциометърът регулира контраста на изображението на дисплея. Ако не можете да видите нищо, когато скицата (програмата) стартира, опитайте да завъртите потенциометъра, докато текстът стане ясно видим.
// Зареждане на библиотеката LiquidCrystal.h, която ще ни даде // възможността да взаимодействаме с LCD без ненужни усложнения:
// Инициализиране на портовете, които използваме. Забележка // можете да използвате различни портове според нуждите. // За повече информация можете да видите: // http://arduino.cc/en/Reference/LiquidCrystal
void setup() // Библиотеката LiquidCrystal.h може да се използва с различни // типове LCD устройства. Използваме двуредов LCD дисплей с шестнадесет //знака. Затова тук, по-долу, ние информираме // за този Arduino, казваме му с коя част от библиотеката работим:
lcd.begin(16, 2); // задаваме броя на колоните и редовете
// Данните, изпратени на дисплея, ще останат там, докато // не бъде презаписано с нова информация или докато захранването не бъде изключено. // Това може да е проблем - качвате нова скица в Arduino, // и LCD все още показва данни от старата програма. Следователно, // нека изчистим LCD с помощта на командата clear(), // от библиотеката LiquidCrystal:
// Сега ще покажем съобщения на LCD!
// Както във всеки монитор, LCD има курсор, който // определя къде да се появят желаните данни. По подразбиране // този курсор е невидим, въпреки че можете да го направите видим, но // това изисква допълнителни команди на библиотеката.
// Когато дисплеят се включи, невидим курсор е зададен на // в горния ред, първата колона.
lcd.print("здравей, свят!"); // отпечатване на съобщения на LCD
// Регулиране на контраста (ВАЖНО!)
// Когато стартирате скица (програма) за първи път, има шанс // да не видите нищо на LCD. Това може да се случи // защото контрастът все още не е регулиран. // Не се притеснявайте, това е лесно за коригиране и след като зададете // опциите, които искате, няма да е необходимо да променяте нищо друго.
// Стартирайте скицата, след това завъртете потенциометъра в различни посоки // докато текстът „Здравей, свят!“ се появи на LCD дисплея. // Ако все още не можете да видите текста, проверете всички връзки и //уверете се, че скицата е качена успешно в Arduino.
// Можете да поставите невидим курсор навсякъде върху LCD // преди да прехвърлите данни. Местоположението се определя от знака нула // на горния ред. Горният ред е 0, долният ред е 1. // Колоните се броят от нулевия знак отляво до 15-ия знак отдясно.
// В допълнение към "Hello, World!", отпечатано по-рано, // ще покаже времето в секунди от последното нулиране на Arduino. // Не забравяйте, че данните, които изпращате на дисплея // остават там, докато не ги изчистите с "lcd.clear()", // или изключите захранването.
// Тук задаваме невидим курсор в първата колона (колона 0), // на втория ред (ред 1):
// Сега отпечатайте броя секунди (millis() / 1000), // които Arduino работи от последното рестартиране:
//СЪВЕТ: Тъй като нарастващите числа винаги нарастват по дължина, // (1..10..20…100….1000) новите изпратени винаги ще // припокриват предишните. Но ако решите да покажете // на екрана намаляване на числата (например обратно броене), тогава вие // ще видите артефакти на дисплея, като увиснали знаци, това // се случва, ако новата стойност е по-къса от старата.
// За да предотвратите това да се случи, първо трябва да изтриете стария // преди да напишете новия. Това може да стане чрез презаписване на последното // число с интервали. // Ако изтриете стария номер и веднага запишете новия, никой, дори вие // няма да го забележите. Ето типична кодова последователност:
// lcd.setCursor(0,1); // задаване на курсора в 0-та колона, 1 ред // lcd.print(" "); // изтриване на най-дългото число // lcd.setCursor(0,1); // задайте курсора в 0-та колона, 1 ред //lcd.print(milis()/1000); // отпечатване на броя секунди след нулиране
//СЛЕДВАЩИ СТЪПКИ:
// Научихте основите, как да свържете LCD // към Arduino и как да изпратите текстови или цифрови данни към дисплея!
// LCD библиотеката има много команди, които ви позволяват да контролирате LCD: // показване, скриване на курсора, превъртане, превъртане на екрана нагоре или надолу и т.н. // за повече информация: // http://arduino.cc/en/Reference/LiquidCrystal
// Arduino IDE идва с много допълнителни библиотеки, след инсталиране // те могат да бъдат намерени в c:Program FilesArduinolibraries // Примери за библиотеката LiquidCrystal, с която можете да „играете“ са: // c:Program FilesArduinolibrariesLiquidCrystalexamples