- Необходимые материалы:
- Модуль графического дисплея Nokia 5110:
- Принципиальная электрическая схема:
- Программа и работа Arduino:
Само по себе культовое название « Nokia 5110 » должно было вызвать воспоминания о надежном мобильном телефоне Nokia, который был очень популярен в 90-е годы. Модель 5110 поставлялась с графическим дисплеем, которого тогда было достаточно, чтобы работать в качестве экрана дисплея для мобильных устройств. Этот экран был способен отображать все, от буквенно-цифровых символов до мелкой графики, которая является всем необходимым для мобильного телефона. По мере того, как Земля вращалась, появлялись новые технологии с блестящими сенсорными экранами, и этот дисплей больше не использовался. Но мы надеемся, что их можно будет использовать в электронных приложениях, где нужно отображать небольшую графику и не тратить деньги на большие ЖК-экраны. Итак, в этом руководстве мы узнаем, как связать графический ЖК-дисплей Nokia 5110 с Arduino и заставить его работать.
Эти ЖК-дисплеи имеют черно-белые пиксели размером 84 × 48. Они могут выглядеть однообразно, но все же могут использоваться для отображения приличной графики для ваших проектов и могут быть легко использованы с микроконтроллерами, такими как Arduino. Итак, приступим….!
Необходимые материалы:
- Плата Arduino (любая версия)
- Nokia 5110 дисплей
- Соединительные провода
Модуль графического дисплея Nokia 5110:
На рынке доступны два типа этих графических ЖК-дисплеев. Один с контактными площадками для пайки над и под дисплеем, а другой с контактными площадками только в нижней части дисплея. Тот, который мы используем, относится к типу 2, где колодки находятся только под дисплеем. Оба модуля работают одинаково, поэтому соединения одинаковы для обоих. Итак, независимо от того, какой это модуль, вы можете следовать руководству.
Как было сказано ранее, графический ЖК-дисплей Nokia 5110 имеет 84 пикселя по горизонтали и 48 пикселей по вертикали. Общий размер дисплея составляет 1,72 x 1,72 дюйма. Модуль имеет 6 входных контактов, с помощью которых мы можем подключить его к любому микроконтроллеру через связь SPI. Интерфейсная ИС, которая обменивается данными между дисплеем и Arduino, - это ИС контроллера дисплея Philips PCD8544, техническое описание которой можно найти здесь. Однако, если вы используете Arduino для связи с этой микросхемой, нам не нужно беспокоиться о таблице данных, поскольку есть библиотеки, которые готовы к загрузке и использованию. Модуль, который мы здесь используем, показан ниже.
Принципиальная электрическая схема:
Полная принципиальная схема подключения графического ЖК-дисплея Nokia5110 к Arduino приведена ниже.
Модуль дисплея имеет 8 контактов, которые используются для установки связи SPI с Arduino. Модуль питается от вывода 3.3V платы Arduino. Обратите внимание, что эти модули работают с логикой 3,3 В и, следовательно, не подают 5 В на вывод Vcc дисплеев. Я напрямую подключил контакт дисплея к Arduino, хотя ЖК-дисплей работает с логикой 3,3 В, а Arduino - с логикой 5 В, потому что только тогда я обнаружил, что ЖК-дисплей работает правильно. При необходимости вы можете использовать делитель напряжения для преобразования 5 В в 3,3 В, но для меня он работает только без логического преобразования. Подключения довольно просты и понятны. После того, как вы закончите с подключениями, ваша настройка будет выглядеть примерно так, как показано ниже.
Программа и работа Arduino:
Выполните следующие действия, чтобы запрограммировать Arduino для работы с дисплеем Nokia 5110. Эти шаги предполагают, что вы уже установили IDE Arduino и знакомы с ее использованием.
Шаг 1: Откройте Arduino IDE на своем компьютере и выберите соответствующую плату в меню инструментов после подключения Arduino к компьютеру.
Шаг 2. Щелкните здесь, чтобы загрузить библиотеку дисплея Nokia 5110 от Adafruit из репозитория GitHub.
Шаг 3: После загрузки Zip-файла выберите « Скетч» -> «Включить библиотеку» -> «Добавить библиотеку.ZIP» и перейдите в папку, в которую был загружен ZIP-файл.
Примечание. Вам также необходимо загрузить графическое ядро Adafruit GFX Graphics, которое обрабатывает все круги, текст, прямоугольники и т. Д. Вы можете получить его из https://github.com/adafruit/Adafruit-GFX-Library и установить его таким же образом..
Шаг 4. Теперь откройте пример программы, выбрав Файл -> Примеры -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest и нажмите кнопку загрузки.
Шаг 5: После загрузки программы нажмите кнопку сброса на Arduino, и вы должны увидеть пример программы, отображающей все анимации, как показано на видео, приведенном в конце этого руководства.
Вы можете прочитать пример программы, чтобы понять различные встроенные функции, которые можно использовать для выполнения различного графического дизайна на ЖК-дисплее. Но давайте сделаем еще один шаг и попробуем отобразить логотип CircuitDigest на ЖК-экране.
Теперь откройте необходимое изображение в Paint и измените размер изображения. Максимальный размер изображения, которое мы можем использовать для нашего дисплея, составляет 84 × 48.
После изменения размера изображения сохраните изображение как растровое изображение (черно-белое), используя параметр « Сохранить как» в Paint. Чтобы отобразить изображение в виде растрового изображения на нашем ЖК-экране, нам понадобится программное обеспечение, которое может преобразовывать растровое изображение в код. Вы можете скачать программное обеспечение, щелкнув здесь. После загрузки распакуйте файл и щелкните «BitmapEncoder», чтобы запустить приложение. Откройте растровое изображение, которое мы только что сохранили с помощью этого программного обеспечения, чтобы получить массив закодированных значений. Вы можете напрямую скопировать эти значения и вставить их в свой массив Arduino. Значение, отображаемое программным обеспечением для нашего логотипа, показано ниже.
Как видите, массив начинается со значения 48, 48 это размер нашего изображения. Мы не должны добавлять это в наш массив. Итак, удалите первые два значения, а остальные используйте в качестве значения массива в программе. Массив будет выглядеть так, как показано ниже. Полная программа приводится в конце этой страницы для справки.
static const unsigned char Логотип PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B000010000, B00000000, B00000000, B1100000, B0000000, B00000000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B0111100000000, B110000110000, B01111100, B01111000000, B1111000010 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111100000, B111110011, B111000111, B1111100000, B111110011, B111 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B0011111111, B11111111, B11111000, B11111111, B11111111, B111 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B1111111111, B1111111111, B1111111111, B11111111, B1111111111 B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B0011110000, B1111000011, B110011000011, B11000000 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B0000111111, B1111111111, B1111111111, B111111100 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B0000110011, B11111111, B001100000, B0000110011, B11111111, B001100000, B1100111000, B1100001100 B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B000011000011, B1111000011, B1111000011, B1111000011, B1111000011 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Теперь, чтобы отобразить это растровое изображение, мы должны использовать следующие строки кода. Где предыдущие данные на экране стираются и записывается новое растровое изображение.
display.clearDisplay (); display.drawBitmap (20, 0, Логотип, 48, 48, 1); display.display ();
Строка display.drawBitmap (20, 0, Logo, 48, 48, 1); отображать положение, размер и цвет растрового изображения. Синтаксис может быть задан как.
display.drawBitmap (X_Position, Y_Position, имя массива, длина изображения, ширина изображения);
Длину и ширину изображения можно получить из первых двух элементов массива соответственно, как было сказано ранее. Когда этот код будет запущен, мы получим растровое изображение, отображаемое на нашем ЖК-экране, как показано ниже.
Вы также можете отображать простой текст, как показано ниже:
Надеюсь, вы поняли руководство и получили интерфейс ЖК-дисплея Nokia 5110 с Arduino. С этим графическим дисплеем в рукаве вы можете создавать множество проектов, требующих незначительных графических деталей. Полную работу можно посмотреть в видео ниже. Если у вас возникнут проблемы с тем, чтобы заставить это работать, вы можете использовать форум, чтобы опубликовать свою проблему или разделы комментариев ниже.