LCD for Arduino
Dec 29, 22Вступление
До декабря этого года я никогда не пробовал и не использовал в проектах различные LCD дисплеи. А тут в ноябре победил в конкурсе, дали премию и я подумал, что пора) Купил комплектующие на Ali для сборки KaRadio на ESP-32 и кучу различных экранов. Про радио возможно потом напишу, а вот с простым дисплеем от Нокии у меня уже сразу появились проблемы)
Что и к чему
Первым делом надо было найти рабочую библиотеку для вывода текста/изображений на экран.
Большинство ссылок в русскоязычном сегменте ввело на старый проект - LCD5110_Basic, вот пример с одного из сайта. У меня его завести не удалось (но узнал про программу Image Generate от Alex_EXE), зато наткнулся на пару видео, где использовались уже другие библиотеки.
Arduino Tutorial: LCD Nokia 5110 Display - здесь применяли библиотеку U8glib. Там же в видео хороший пример использования (пример с моими пинами)
На втором видео уже использовали Adafruit_GFX. Пример 1, пример 2, ещё очень хорошая статья. Узнал про Image2Code Java Utility - небольшая утилитка для перевода картинок в HEX формат.
Схема сборки для проверки такая:
D13 -> CLK (5)
3V3 -> VCC (6), DL (7)
GND -> GND (8)
D8 -> RST (1)
D9 -> DO (3)
D10 -> CE (2)
D11 -> DIN (4)
Image2Code Java Utility
С запуском программы вышло много мороки. Я установил как нормальный человек JRE и подумал, что больше мне ничего не надо будет. Утилита собрана с помощью Gradle - выкачивается без проблем батником, который находится в папке.
После скачивания и установки проект собирается, но при вызове команды gradle run ругается, что нет переменной JAVA_HOME. Гуглю - надо JDK. Качаю, ставлю с сайта оракл последнюю версию. А вот фиг - при запуске ругается, что теперь нет файла tools.jar. Ищу дальше - оказывается надо старую JDK. С сайта Oracle их не скачать сейчас ясно почему, ищу OpenJDK - попадаю на Prebuilt OpenJDK Binaries от Adoptium. Скачиваю, ставлю - и всё работает.
LCD Image Converter от riuson
А можно не морочить голову и скачать программу от Riuson: Github, на скачку с sourceforge.
I2C LCD
Тут оказалось проще. Нашел две библиотеки: от Rinky-Dink Electronics (тут хоть заработало, посравнению с Nokia LCD), от iarduino.
Подключение простое - GND, 3v3, и за порты SDA SCL отвечают A4 и A5 пины соотвественно.
Адрес по умолчанию - 0x3c(0x78), второй - 0x3D(0x7A).
У Гайвера тоже есть своя библиотека: Про oled.