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 формат.

Схема сборки для проверки такая:

arduino lcd

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 пины соотвественно.

arduino nano I2C

Адрес по умолчанию - 0x3c(0x78), второй - 0x3D(0x7A).

У Гайвера тоже есть своя библиотека: Про oled.