Посылки с TAOBAO — для меня довольно редкое явление (по сравнению с Алиэкспресс), поэтому всегда стараюсь в заказ включить какую-нибудь экзотику. Вот и сейчас, когда заказывал партию разных дисплейчиков взял для пробы один LCD0802A с желто-зеленой!!! подсветкой (как оказалось потом, не совсем желто-зеленой)
Экранчики LCD1602 часто применяются в ардуиноподобных поделках из за своей неприхотливости и низкой цены. Иногда, для вывода пары цифр, целесообразно брать дисплеи поменьше.
Представляю для вашего внимания миниатюрный дисплей LCD0802A.
После покупки прошли уже пара месяцев и данный товар исчез из ассортимента данного продавца на ТАО. Но аналогичный дисплей легко найти на той же площадке или на Алиэкспресс, хотя там он стоит дороже «народных» 1602.
Данный дисплей работает на контроллере HD44780 и полностью совместим с более распространенными LCD1602, 2002 и 2004. Как видно из названия, имеет две строки по 8 символов.
Размеры платы всего 58х32 мм, тогда как у стандартного 1602 80х36 мм
Размер области цифр — 28х12 мм
По размеру он меньше MTC-S16208XFYHSGY из прошлого обзора.
Интерфейс, как и у всех HD44780, параллельный. 16 пинов идут в два ряда. Распиновка такая же как у 1602.
Для подключения достаточно 6 пинов — RS, E и D4-D7.
По подключению к Ардуино можно подробно посмотреть здесь или набрать в Гугле заветные слова «LCD 1602 Arduino».
Библиотека для Ардуино Adafruit_LiquidCrystal на github
Подключение прошло просто
Приятно порадовало, что контрастность дисплея можно не настраивать. Она и так уже максимальная и при помощи потенциометра на пине 3 можно только уменьшить ее до нуля.
С русскими буквами тоже все ожидаемо. В дисплеях, приобретенных в Китае, я их не разу не видел, а знакогенератор, увы, намертво прошит в микросхеме.
А вот с подсветкой вышел сюрприз. Не знаю, какой там у китайцев желто-зеленый, но на дисплей загорелся красным.
Ограничивающий резистор на подсветке присутствует, то есть достаточно подать туда 5В или высокий уровень с любого пина Ардуины.
Частичную русификацию можно сделать загрузкой своих 8 символов.
одробнее про это почитать и взять исходник можно в этой статье
Ток потребления индикатора — 0.5мА без подсветки
и 15мА с подсветкой
К ESP8266 без всякого I2C переходника я подобный индикатор уже подключал в предыдущей статье.
Сегодня подключу его к Orange PI PC, который купил (завидуйте!) за $6 на распродаже в GEARBEST.
В Orange PI PC у меня стоит UBUNTU 15.04 с официальной страницы ORANGE.
Для подключения дисплея использую библиотеку работы с GPIO — WiringOP — порт WiringPI на Orange PI.
Скачиваю и устанавливаю библиотеку
1 2 3 4 |
git clone https://github.com/zhaolei/WiringOP.git -b h3 cd WiringOP chmod +x ./build sudo ./build |
Команда gpio readall покажет, куда на разъеме выведены какие порты
После этого в скачанной папке WiringOP правлю файл
examples/lcd.c, компилирую его и запускаю.
Чтобы закончить обзор чем нибудь полезным, я выведу температуру процессора Orange PI на дисплей 0802A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <unistd.h> #include <string.h> #include <time.h> #include <wiringPi.h> #include <lcd.h> int main (void){ int T1=0, T2=0; char buff[20]; // Инициализация дисплея wiringPiSetup () ; int lcdHandle = lcdInit (2, 8, 4, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0); if (lcdHandle < 0) { fprintf (stderr, "LCD init failed\n") ; return -1 ; } // Выдача приветсвия lcdPosition (lcdHandle, 0, 0); lcdPuts (lcdHandle, "MONITOR"); lcdPosition (lcdHandle, 0, 1); lcdPuts (lcdHandle, "TEMP V1"); sleep(5); while(1){ // Считывание температуры первой зоны FILE *f = fopen("/sys/class/thermal/thermal_zone0/temp","r"); fscanf(f,"%d",&T1); fclose(f); // Считывание температуры второй зоны f = fopen("/sys/class/thermal/thermal_zone1/temp","r"); fscanf(f,"%d",&T2); fclose(f); // Выдача на экран sprintf(buff,"T1=%d C",T1); lcdPosition (lcdHandle, 0, 0); lcdPuts (lcdHandle, buff); sprintf(buff,"T2=%d C",T2); lcdPosition (lcdHandle, 0, 1); lcdPuts (lcdHandle, buff); sleep(3); } } |
Запускаю компилятор
gcc -o temp temp.c -lwiringPi -lwiringPiDev -lpthread -lm
И программу
./temp
На экранчик выводятся значения температуры T1 и T2 в двух зонах на плате Orange PI PC (А может и с одной, судя по тому что цифры одинаковые)
Выводы:
Экраны LCD0802A могут найти достойное применение там, где нужно сэкономить место и не нужно выводить много информации. В отличие от светодиодных семисегментных индикаторов, они более информативные, так как можно вывести кроме цифр все символы латинского алфавита, а также свои собственные символы. Но LCD, увы, более тусклые, чем LED или OLED.
Хотя, в последнее время, идет активная тенденция замены текстовых экранов на графические.
Достоинства данного дисплея:
— Маленькие габариты
— Низкое энергопотребления (0.5мА без подсветки)
— Отсутствие настройки контрастности
— Низкая цена
К его недостаткам бы отнес
— Отсутствие русских букв в знакогенераторе
— Цвет подсветки не соответствует заявленному
Прикольный экранчик, а почему на OLED не взяли? Они сейчас вполне себе дешевые?
Почему не взял? Взял. Но под каждую задачу свое железо.
У текстовых LCD дисплеев два преимущества:
1. Меньший размер кода и потребление ОЗУ. Иногда это критично, особенно в тиньках. И писать быстрее
2. Низкое потребление. Что хорошо в проектах на батарейках
Alexey, а можете сделать обзор экрана на платформу nextion.
На Nextion же уже куча обзоров
Если ITEAD.CC пришлет мне экранчик на обзор, то можно и сделать 😉
А когда примерно ожидается посылка на nextion?
Вот можно онлайн свои знаки рисовать для дисплеев 0802a 1602 2004
http://satcat.ddns.net/1602.shtml