Распиновка дисплея от nokia 5110

Обзор LCD дисплея Nokia 5110

Автор: Сергей · Опубликовано 26.12.2020 · Обновлено 25.12.2020

В предыдущих статьях рассказывал как вывести информацию на LCD1602, OLED и TFT дисплеи их часто можно встретить в различных проектах. В этой статье расскажу об еще одном дисплеи NOKIA 5110, который так же очень популярный. Главной особенность этого дисплея является способность выводить не только текст, но и графические данные.

Технические параметры:

► Контроллере PCD8544;
► Разрешение экрана: 84 x 48 точек;
► Размеры экрана: 36 х 24 мм;
► Напряжение питания логики: 2,7 – 3,3В;
► Габариты: 43,8 х 43,4 х 13,2 мм;
► Вес: 14 г.

Описание дисплея Nokia 5110

Дисплей Nokia 5110 управляется с помощью контроллера PCD8544 (производитель Philips). Контроллер управляет дисплеем с разрешением 84 × 48 пикселей, в качестве связи с микроконтроллером (arduino) используется интерфейс последовательной шины, аналогичный SPI. Согласно документации, чип PCD8544 работает диапазоне от 2,7 до 3,3 В в том числе и логическая часть. Таким образом, при подключении к пяти вольтной Arduino необходимо понизить логическое напряжение до 3В.

Назначение контактов.
► RST — Сброс дисплея, при логическом нуле происходит сброс изображения на дисплеи.
► CE — включение чипа. при логическом нуле чип активен.
► D/C — сообщение дисплею, являются ли данные команда или отображаемыми данными.
► DIN — вывод последовательных данных для интерфейса SPI.
► CLK — вывод последовательного тактового сигнала для интерфейса SPI.
► VCC — вывод питания для ЖК-дисплея.
► BL — управляет подсветкой дисплея. Чтобы контролировать его яркость, вы можете добавить потенциометр или подключить этот вывод к любому выводу Arduino с поддержкой ШИМ.
► GND — земля.

Подключение LCD дисплея Nokia 5110 к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Графический LCD дисплей Nokia 5110 — 84×84 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Резистор 1 кОм, 0.125 Вт x 5 шт.
► Резистор 330 Ом, 0.125 Вт x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение:
Подключение не сложено и так как мы используем программный SPI, можно использовать любые цифровые контакты Arduino. В примере выводы CLK, DIN, DC, CE и RST от дисплея подключаем в выводам Arduino от 7 до 3. Так как дисплей не льзя подключать напрямую к Arduino, воспользуемся самым простым способом, добавим резисторы 10 кОм между выводами CLK, DIN, D/C и RST и резистор 1 кОм между контактами CE. А вывод подсветки (BL) подключен к 3,3 В через токоограничивающий резистор 330 Ом.

Установка библиотек:
Для работы с дисплеем Nokia 5110 необходимо установить две библиотеку «Adafruit PCD8544 Nokia 5110 LCD» и «Adafruit GFX» Чтобы установить библиотеки, перейдите в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «nokia», найдите библиотеку «Adafruit PCD8544 Nokia 5110 LCD» и установите данную библиотеку.

Теперь установим вторую библиотеку, вводим в поиск «Adafruit GFX» и устанавливаем «Adafruit GFX Library«

Программа:
Теперь запускаем среду разработку Arduino IDE и загружаем скетч в контроллер.

Источник

Подключение ЖК дисплея Nokia 5110 к Arduino

Я думаю многие посетители нашего сайта помнят те времена, когда кнопочные телефоны Nokia были самыми лучшими в мире и считались эталоном надежности. Поэтому даже само название “Nokia 5110” способно вызвать глубокую ностальгию у тех, кто помнит те времена. На самом деле жидкокристаллический (ЖК) дисплей Nokia 5110 изначально использовался в качестве экрана в телефонах Nokia в те далекие времена. Это монохромный дисплей размером 84×48 пикселов, который способен отображать алфавитно-цифровую информацию, а также несложную графику.

По сегодняшним меркам этот дисплей уже не является конкурентом новым поколениям ЖК дисплеев и выглядит на их фоне достаточно блекло. Однако ему еще можно найти применение в несложных проектах, поэтому в данной статье мы и рассмотрим его подключение к плате Arduino. Но кроме Arduino его еще можно успешно подключать и к другим типам современных микроконтроллеров.

Необходимые компоненты

  1. Плата Arduino (любой версии) (купить на AliExpress).
  2. ЖК дисплей Nokia 5110 (купить на AliExpress).
  3. Соединительные провода.

Общая характеристика ЖК дисплея Nokia 5110

Существует два типа подобных ЖК дисплеев – у первого типа ламели для пайки располагаются с обоих сторон дисплея, а у второго типа они располагаются только с обратной стороны дисплея. Мы использовали дисплей 2-го типа, но принципы подключения и использования обоих типов этих дисплеев одинаковы, поэтому совершенно неважно какой из этих типов дисплеев вы приобретете.

Как уже упоминалось, графический ЖК дисплей Nokia 5110 имеет 84 пикселя по горизонтали и 48 пикселей по вертикали. Общий размер дисплея — 1.72’ x 1.72’. Дисплей имеет 6 входных контактов которые можно подключить к любому микроконтроллеру по протоколу SPI. Микросхема дисплея, которая отвечает за взаимодействие с микроконтроллером – это микросхема контроллера дисплея Philips PCD8544, даташит на которую можно найти по этой ссылке. Однако, поскольку мы используем плату Arduino, нам нет нужды беспокоиться о даташите этой микросхемы и принципах ее работы поскольку все низкоуровневое взаимодействие с ней мы будем осуществлять с помощью специальных библиотек для Arduino.

Работа схемы

Схема подключения ЖК дисплея Nokia 5110 к плате Arduino представлена на следующем рисунке.

Модуль дисплея имеет 6 контактов, которые мы будем использовать для осуществления связи по протоколу SPI с платой Arduino. Дисплей запитывается от контакта 3.3V платы Arduino. И все контакты дисплея работают в логике 3.3V, поэтому, в идеале желательно использовать делители напряжения для подключения контактов дисплея к контактам платы Arduino, которые работают в логике 5V. Но у нас этот дисплей заработал при прямом подключении его контактов к плате Arduino, поэтому мы и приводим схему его подключения без делителей напряжения.

После сборки конструкции на макетной плате у вас должна получиться примерно следующая картина:

Исходный код программы для Arduino

Вначале выполните следующие шаги.

Шаг 1. Откройте Arduino IDE на вашем компьютере и выберете в ней именно ту плату Arduino, которую вы собираетесь подключать к компьютеру.

Шаг 2. Скачайте библиотеку для работы с дисплеем Nokia 5110 с сервиса GitHub. Библиотека разработана компанией Adafruit.

Шаг 3. После скачивания Zip файла с библиотекой выберите пункт меню Sketch -> Include Library -> Add .ZIP library и укажите путь к скачанному Zip файлу библиотеки.

Примечание : также желательно скачать Adafruit GFX Graphics core (библиотеку для работы с графическим ядром) по ссылке https://github.com/adafruit/Adafruit-GFX-Library и установить ее аналогичным образом. Данная библиотека позволит вам рисовать на экране дисплея круги, прямоугольники и другие графические объекты.

Шаг 4. Теперь откройте пример работы с данной библиотекой по адресу File -> Examples -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest и загрузите его в плату Arduino.

Шаг 5. После загрузки программы в плату нажмите кнопку сброса (reset) на плате Arduino и посмотрите как эта тестовая программа будет рисовать различные графические объекты на экране дисплея. Этот процесс показан на видео, приведенном в конце статьи.

Вы при желании можете подробно изучить текст этого примера чтобы понять как он работает, однако мы идем дальше и постараемся изобразить лого «CircuitDigest» на экране ЖК дисплея. Аналогичным образом вы можете отобразить на экране дисплея любое другое подходящее изображение.

Откройте требуемое изображение в редакторе Paint (или любом другом аналогичном) и измените размер изображения. Максимальный размер изображения для этого дисплея — 84×48 пикселей.

После изменения размера изображения сохраните его в черно-белом формате используя соответствующую опцию редактора Paint. Для отображения этого побитового (растрового) изображения (файл в формате .bmp) на экране ЖК дисплея необходимо преобразовать это изображение в код. Подобный декодер можно скачать по данной ссылке. После скачивания извлеките файл из архива и кликните на “BitmapEncoder” чтобы запустить приложение. Откройте ваше растровое изображение в этом декодере и преобразуйте его в код. Вы можете непосредственно скопировать полученный код в массив в программе для Arduino. Пример подобного кода приведен на следующем рисунке.

Как вы можете видеть, массив в нашем примере начинается со значений 48, 48 – это размер нашего изображения. Нам не следует добавлять эти значения в массив программы для Arduino. Поэтому удаляем эти 2 значения и используем оставшуюся часть в качестве массива для нашей программы. В результате для нашего массива мы получим следующий массив:

Источник

Ардуино: графический ЖК дисплей Nokia 5110

Символьный дисплей, который мы уже изучили ранее, открыл перед нами большие возможности в плане вывода информации в «человеческом» виде. Можно выводить текстовые сообщения, значения различных параметров, показания датчиков. Если. захотеть, можно даже отобразить на символьном дисплее «псевдографику». Но что, если нам требуется ещё больший уровень информативности? Если для понимания процесса нам нужен, например, график? Что, если мы хотим отобразить состояние робота не сигналом светодиода, а картинкой? Изобразить эмоцию?

Поможет нам в этом деле графический дисплей, а именно Nokia 5110 (или 3310). Этот вид дисплеев широко распространен в мире учебных микроэлектронных платформ, таких как Ардуино. Он легко подключается, и легко управляется даже слабыми микроконтроллерами.

Подключение дисплея Nokia 5110

Дисплей монохромный, имеет разрешение 84×48 точек. Как правило, дисплеи Nokia 5110, предназначенные для таких как мы с вами энтузиастов, поставляются на плате в паре с контроллером PCD8544 и штыревым разъемом. У такого дисплейного модуля есть всего 8 ног:

  • RST — сброс (Reset);
  • CE — выбор устройства (Chip Select);
  • DC — выбор режима (Data/Command select);
  • DIn — данные (Data In);
  • Clk — тактирующий сигнал (Clock);
  • Vcc — питание 3 — 5 Вольт;
  • BL — подсветка;
  • Gnd — земля.

Схема подключения к Ардуино:

ЖК дисплей Nokia 5110 RST CE DC DIn Clk Vcc BL Gnd
Ардуино Уно 7 6 5 4 3 +5V +5V GND

Программа. Вывод текста

Для управления дисплеем нам потребуется две библиотеки Adafruit_GFX и Adafruit_PCD8544, которые можно установить через менеджер библиотек либо скачать с github:

После установки библиотек, пробуем вывести на наш дисплей простой текст «Hello world!»:

Как видим, все достаточно просто. Функция setContrast — определяет контраст дисплея. Это сродни тому, как если бы мы крутим потенциометр контраста в схеме символьного дисплея. Если после запуска программы у нас на дисплее ничего не видно, или видно плохо — варьируем значение контраста.

Задаем размер шрифта функцией setTextSize. Если указываем 1, то каждая буква шрифта будет размером 5×7 пикселей. Размер 2 увеличит символы ровно в два раза по высоте и ширине.

Следующая полезная функция — setTextColor. У нас есть всего два цвета — черный и белый. Для них определены две константы: BLACK и WHITE.

Наконец, setCursor(x, y) устанавливает курсор в заданные координаты x и y, так же как в программе символьного дисплея.

Непосредственно, сам вывод текста осуществляется уже знакомой функцией println.

Если все сделать правильно, получим такую картинку:

Программа. Вывод геометрии

Успешно решив задачу с выводом текста, попробуем теперь поработать с примитивной графикой. Нарисуем треугольники, окружности и прочие фигуры.

За отрисовку окружности отвечает функция drawCircle. Пример вызова функции для окружности с центром в точке <20,20>, радиусом 5 пикселей и черным цветом:

drawCircle(20, 20, 5, BLACK);

Теперь попробуем прямоугольник с координатами верхнего левого угла <10,10>, нижнего правого <20,20>, и цветом BLACK (черный, то бишь).

drawRect(10, 10, 20, 20, BLACK);

Функция drawRoundRect — нарисует прямоугольник со скругленными углами. Также у этих двух функций есть варианты со сплошной заливкой внутренней части фигуры: fillRect и fillRoundRect.

У треугольника следует задать все три пары координат:

drawTriangle(10, 10, 20, 10, 20, 20, BLACK);

И у него тоже есть вариант с заливкой — fillTriangle.

Наконец, просто отрезок из точки <0,0>к точке <20,20>:

drawLine(0, 0, 20, 20, BLACK);

И самое простое, что можно нарисовать — один пиксель:

drawPixel(10, 10, BLACK);

А вот как будет выглядеть программа, если мы захотим нарисовать некоторые из этих фигур, по-очереди:

Программа. Подготовка изображений

А теперь, воспользуемся всей мощью графического дисплея — выведем на него изображение!

Чтобы отобразить на дисплее картинку, нам потребуется привести её к нужному размеру и формату. Как уже упоминалось, дисплей Nokia 5110 имеет разрешение 84×48 точек. Значит и наша картинка должна быть точно таким же размером.

Уменьшить и обрезать картинку до требуемых размеров можно в самом простом редакторе mspaint. Там же нужно сохранить картинку в формате BMP с 256 цветами.

Следующий шаг — конвертировать bmp файл в массив нулей и единиц, который мы и вставим в программу для Arduino. Для конвертации воспользуемся онлайн инструментом на нашем сайте: https://tools.robotclass.ru/bmp2bin/bmp2bin.html

Просто выбираем подготовленный bmp файл на локальном компьютере, и указываем одну из систем счисления: двоичную или шестнадцатеричную. Обе одинаково подходят для нашей цели.

Результатом работы bmp2bin станет огромный массив двоичных чисел, который мы должны будем вставить в следующую программу:

Как видим, в этом примере картинка зашифрована шестнадцатеричными числами. Такая запись просто компактнее, чем двоичная. В результате работы такой программы мы увидим уже знакомый нам смайл.

Вот и все на сегодня! В следующем уроке на тему Nokia 5110 мы попробуем анимировать изображение на дисплее. Попробуем даже сделать небольшую игру!

К размышлению

Дисплей Nokia5110 — очень популярен, но с каждым днём его всё сложнее найти. Дело в том, что именно этот ЖК дисплей производился для сотового телефона, который уже давным-давно был снят с производства.

Чем же заменить Nokia5110? Варианты есть, например:

А если вместо Ардуино использовать более мощные микроконтроллеры ESP32 или STM32, то можно рассмотреть широкий спектр TFT дисплеев с различным разрешением и даже варианты с сенсорной панелью.

Источник

Adblock
detector