Una ЖК-экран может быть решением для тех проектов, в которых вам нужно отображать информацию, не полагаясь на постоянно подключенный компьютер. То есть в проекте Arduino / Raspberry Pi вы можете использовать последовательный порт для передачи информации, которая отображается на экране для получения показаний датчиков, отображения графика, учетных записей и т. Д. Но если ваш проект постоянно запущен или находится далеко от того места, где у вас может быть компьютер, ЖК-экран - ваше спасение.
Например, представьте, что вы устанавливаете автоматизированную систему полива и хотите проверять показания влажности и температуры, когда вы идете в свой огород или огород. Необходимость брать с собой компьютер для подключения платы Arduino к ПК - непрактичное решение. В этом случае вы можете изменить свой код, чтобы он сказал информация отображается на ЖК-экране и даже добавить несколько клавиш или кнопок, чтобы иметь возможность отображать различную информацию.
Что такое ЖК-панель?
Жидкокристаллический дисплей или ЖК-дисплей (жидкокристаллический дисплей) Это своего рода тонкая плоская панель, на которой можно отображать изображения. Каждая панель состоит из определенного количества цветных или монохромных пикселей, которые помещаются перед источником света. Их потребление невелико, поэтому они идеально подходят для этого типа проектов маломощной электроники DIY.
Каждый пиксель на ЖК-экране состоит из слоя молекул, выровненных между двумя прозрачными электродами и двумя поляризационными фильтрами. Между поляризационные фильтры есть жидкокристаллический дисплей, отсюда и его название, и предотвращает блокировку света, проходящего через первый фильтр, вторым.
Также, если вы заметили, когда вы касаетесь одного из этих экранов изображение деформируется и при нажатии появляется что-то вроде черного пятна, то есть из-за того, что вы оказываете давление на жидкий кристалл, и этого делать не рекомендуется ... Вы можете получить более низкое качество цветов экрана, неравномерное распределение освещения или даже битые пиксели (черные точки или участки на экране, которые не исчезают).
ЖК-экраны для Arduino и Raspberry Pi
ЖК-экран, например модули, которые существуют для электроники или для Arduino, обычно имеет несколько столбцов для отображения буквенно-цифровых символов или символов и одну или две строки для отображения информации. Это делает их намного более интересными, чем семисегментный дисплей, который должен соединять несколько контактов, чтобы отображать только одно число, символ или букву. Если вы хотите показать больше, вам следует разместить несколько дисплеев.
Вместо этого на одном ЖК-экране можно отобразить гораздо больше информации. Но вы должны хорошо знать распиновку этого типа модулей, чтобы правильно их подключить. Я рекомендую тебе всегда видеть паспорт производителя и конкретной модели что у вас есть, поскольку они могут отличаться.
Например, Вы можете купить это у Adafruit на Amazon., который является одним из самых популярных с клавиатурой и содержит возможность отображения до 16 символов в каждой из двух строк. А есть даже 20х4 или что-то более продвинутое иМультидюймовый цвет для отображения более сложных изображений.
Для ЖК-экрана Adafruit 16 × 2 вы можете увидеть это техническое описание...
Для ардуино может быть, более простой, как тот, лучше ЖК-экран 16x2 без клавиатуры. Если вы посмотрите на эту плату, она имеет 16 контактов сзади. Если вы возьмете плату, перевернете ее вверх ногами и посмотрите на ее контакты слева направо, у вас будет распиновка:
- Контакт 16: GND для подсветки
- Контакт 15: Vcc для подсветки
- Контакты 7-14: 8-битные (следующие 8 контактов) для передачи информации, которая будет отображаться на экране
- Контакт 6: синхронизация чтения и записи
- Контакт 5. R / W (запись и чтение данных и команд)
- Контакт 4: RS (переключатель между командами и данными)
- Контакт 3: контроль контрастности
- Контакт 2: Vcc 5 В для питания
- Контакт 1: GND (0 В) для питания
Помните, что когда вы устанавливаете его в правильное положение, штифты меняются местами ...
Интеграция с Arduino
к подключите его к ардуино Это не слишком сложно, вам следует подумать только о включении резистора 220 Ом для регулирования входного напряжения для питания экрана и потенциометра для регулирования контрастности экрана. Затем подключите каждый из контактов к плате Arduino соответствующим образом, и все готово. Вы можете посмотреть изображение Фритцинга ...
Как вы видете, потенциометр будет через который он будет питаться ЖК-экран и контраст также будут отрегулированы. Следовательно, он будет связан как с GND, так и с Vcc дисплея, а также с линией управления подсветкой и контролем контрастности. Возможно, это самый сложный вариант, тогда речь идет о подключении оставшихся контактов к входам / выходам, которые вы собираетесь использовать в своем проекте.
Программирование с помощью Arduino IDE
Для программирования необходимо учитывать некоторые особенности, Имейте в виду, что вы должны не только уметь отправлять данные, но и перемещать их, размещать на экране и т. Д. И вы также должны использовать библиотеку под названием Жидкий Кристалл.h, если ваш ЖК-экран оснащен совместимым набором микросхем 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)