а LCD екранът може да бъде решение за тези проекти, в които трябва да показвате информация, без да се налага да разчитате на постоянно свързан компютър. Тоест, в проект на Arduino / Raspberry Pi можете да използвате серийния порт за предаване на информация, която се показва на екрана, за да получите показания на сензора, да покажете графика, акаунти и т.н. Но ако вашият проект се изпълнява постоянно или е далеч от мястото, където можете да имате компютър, LCD екранът е вашето спасение.
Например, представете си, че инсталирате автоматизирана напоителна система и бихте искали да проверите показанията за влажност и температура, когато отидете във вашата зеленчукова градина или градина. Налагането да занесете компютъра там, за да свържете платката Arduino към компютъра, не е практично решение. В този случай можете да промените кода си така информацията се показва на LCD екрана и дори добавете някои клавиши или бутони, за да можете да показвате различна информация.
Какво представлява LCD панелът?
Дисплей с течни кристали или LCD (дисплей с течни кристали) Това е вид тънък, плосък панел, който може да показва изображения. Всеки панел е съставен от определен брой цветни или монохромни пиксели, които са поставени пред светлинен източник. Консумацията им е ниска, поради което те са идеални за този тип проекти за електроника с ниска мощност.
Всеки пиксел на LCD екрана се състои от слой молекули, подредени между два прозрачни електрода и два поляризационни филтъра. Между поляризиращи филтри има дисплей с течни кристали, откъдето идва и името му, и предотвратява блокирането на светлината, която преминава през първия филтър от втория.
Също така, ако сте забелязали, когато докоснете един от тези екрани изображението се деформира и при натискане се появява някакво черно петно, което е, защото оказвате натиск върху течния кристал и не е препоръчително да го правите ... Може да се окажете с по-нискокачествени цветове на екрана, неравномерно разпределение на осветлението или дори мъртви пиксели (черни петна или области на екрана, които не изчезват).
LCD екрани за Arduino и Raspberry Pi
LCD екран, като напр модулите, които съществуват за електроника или за Arduino, обикновено има множество колони за показване на буквено-цифрови знаци или символи и един или два реда за показване на информация. Това ги прави много по-интересни от седемсегментния дисплей, който ще трябва да свърже няколко щифта, за да може да показва само едно число, символ или буква. Ако искате да покажете повече, трябва да поставите няколко дисплея.
Вместо това, с един LCD екран можете да покажете много повече информация. Но трябва добре да знаете пиновете на този тип модули, за да ги свържете правилно. Препоръчвам Ви винаги да виждате листа с данни на производителя и конкретния модел че имате, тъй като те могат да варират.
Например Можете да си купите този от Adafruit на Amazon, който е един от най-популярните сред клавиатурата и съдържа възможност за показване на до 16 знака във всеки от двата му реда. А има дори 20 × 4, или нещо по-напреднало иМного инчов цвят за показване на по-сложни изображения.
За LCD екран на Adafruit 16 × 2 можете да видите този лист с данни...
За arduino може би по-прост като този е по-добър 16x2 LCD екран без клавиатура. Ако погледнете тази дъска, тя има 16 щифта на гърба. Ако вземете дъската и я обърнете с главата надолу и погледнете щифтовете й отляво надясно, имате пиноут:
- ПИН 16: GND за подсветка
- ПИН 15: Vcc за подсветка
- Пин 7-14: 8-битов (следващите 8 пина) за предаване на информацията, която ще се показва на екрана
- ПИН 6: синхронизиране на четене и запис
- Пин 5. R / W (запис и четене за данни и команди)
- Pin 4: RS (селектор между команди и данни)
- Pin 3: контрол на контраста
- Pin 2: Vcc от 5v за захранване
- Pin 1: GND (0v) за захранване
Не забравяйте, че когато го поставите в правилното му положение, щифтовете се обръщат ...
Интеграция с Arduino
за свържете го с arduino Не е твърде сложно, просто трябва да помислите за включване на резистор от 220 ома за регулиране на входното напрежение за мощността на екрана и потенциометър за модулиране на контраста на екрана. След това свържете всеки от щифтовете към дъската на Arduino по подходящ начин и сте готови. Можете да погледнете образа на Fritzing ...
Както виждаш, потенциометърът ще бъде през който ще се подава LCD екранът и контрастът също ще бъдат коригирани. Следователно той ще бъде свързан както с GND, така и с Vcc на дисплея, както и с контролната линия за подсветка и контрола на контраста. Може би това е най-сложното, тогава става въпрос за свързване на останалите щифтове към входовете / изходите, които ще използвате във вашия проект.
Програмиране с Arduino IDE
За програмиране трябва да вземете предвид някои особености, Имайте предвид, че трябва не само да знаете как да изпратите данни, но и да ги преместите, да ги поставите добре на екрана и т.н. И вие също трябва да използвате библиотека, наречена LiquidCrystal.h, стига вашият LCD екран да има съвместим чипсет Hitachi HD44780. Тук имате пример за код:
#include <LiquidCrystal.h> // Definimos las constantes #define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso #define ROWS 2 // Aqui las filas x2 #define VELOCIDAD 200 // Velocidad a la que se movera el texto // Indicamos los pines de la interfaz donde hayas conectado el LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Para el texto que se muestra String texto_fila = "Ejemplo LCD"; void setup() { // Configura el monitor serie Serial.begin(9600); // Configurde filas y columnas lcd.begin(COLS, ROWS); } void loop() { // Tamaño del texto a mostrar int tam_texto=texto_fila.length(); // Indicamos que la entrada de texto se hace por la izquierda for(int i=tam_texto; i>0 ; i--) { String texto = texto_fila.substring(i-1); // Limpia la pantalla para poder mostrar informacion diferente lcd.clear(); //Situar el cursor en el lugar adecuado, en este caso al inicio lcd.setCursor(0, 0); // Escribimos el texto "Ejemplo LCD" lcd.print(texto); // Esperara la cantidad de milisegundos especificada, en este caso 200 delay(VELOCIDAD); } // Desplazar el texto a la izquierda en primera fila for(int i=1; i<=16;i++) { lcd.clear(); lcd.setCursor(i, 0); lcd.print(texto_fila); delay(VELOCIDAD); } // Desplazar el texto a izquierda en la segunda fila for(int i=16;i>=1;i--) { lcd.clear(); lcd.setCursor(i, 1); lcd.print(texto_fila); delay(VELOCIDAD); } for(int i=1; i<=tam_texto ; i++) { String texto = texto_fila.substring(i-1); lcd.clear(); lcd.setCursor(0, 1); lcd.print(texto); delay(VELOCIDAD); } }
Повече информация - Ръководство за програмиране на Arduino (безплатен PDF)