Подключение дисплея Nokia 5110 к Arduino. Примеры скетчей и библиотек для работы с популярным графическим экраном на Ардуино.
Комплектующие
Мы собираемся связать ЖК-дисплей Nokia 5110 и Arduino. Вы изучите интерфейс Nokia 5110 Arduino с помощью двух примеров.
Во-первых, мы просто покажем некоторые данные на экране, а во втором примере мы будем читать с датчика температуры и влажности DHT22 показатели и покажем их на ЖК-экране Nokia 5110.

Nokia 5110 LCD — отличный выбор для отображения данных. Это дешевле обычных ЖК и его очень легко использовать с микроконтроллерами. Вам просто нужно подключить несколько проводов и всё готово к работе.
Для подключения Nokia 5110 к Ардуино нам нужны будут сам экран с микроконтроллером и еще ряд деталей.
- Arduino UNO × 1
- Nokia 5110 LCD × 1
- Многооборотный прецизионный потенциометр — 1 кОм (25 витков) × 1
- Резистор 10 кОм × 4
- Резистор 1 кОм × 1
- Резистор 330 Ом × 1
- Перемычки × 1
- Макет (универсальный) × 1
Дополнительно нам понадобится программное обеспечение в виде Arduino IDE, с которым вы скорее всего знакомы.
Источник: http://arduinoplus.ru/arduino-nokia-5110/
Необходимые компоненты
- Плата Arduino (любой версии) (купить на AliExpress).
- ЖК дисплей Nokia 5110 (купить на AliExpress).
- Соединительные провода.
Источник: http://microkontroller.ru/arduino-projects/podklyuchenie-zhk-displeya-nokia-5110-k-arduino/
Варианты подключения дисплея Nokia 5110 к Arduino и схемы
Дисплей к Нокиа 5110 выпускался на платах синего и красного цветов. Различие состоит в том, каким уровнем сигнала активируется подсветка. Для синих плат это происходит при подаче высокого уровня на пин 8, а для красных — подачей низкого уровня на тот же коннектор.
Распиновка Nokia 5110
С обратной стороны дисплея в два ряда расположены 8 маркированных контактов, соединенных между собой параллельно.
8 контактов Nokia, которые расположены в 2 ряда.
Их обозначения с пояснениями приведены в таблице:
|
Номер |
Обозначение |
Направление |
Комментарий |
|
1 |
VCC |
вход |
Питание от 2,7 до 3,3 В |
|
2 |
GND |
вход |
Питание, земля |
|
3 |
SCE |
вход |
Выбор чипа по 0 |
|
4 |
RST |
вход |
Перезагрузка по 0 |
|
5 |
D/C |
вход |
Выбор: режим команд по 0, данных по 1 |
|
6 |
DN(MOSI) |
вход |
Последовательный ввод данных |
|
7 |
SCLK |
вход |
Тактовая частота |
|
8 |
LED |
вход |
Питание подсветки LED 3,3 В |
Особенности питания Нокиа 5110
На плате LCD Нокиа 5110 имеются 2 коннектора для подачи электропитания:
-
Пин под номером 1 служит для подачи напряжения в пределах от 2,7 до 3,3 В на микросхемы платы, потребляющие ток силой до 7 мА.
-
Пин под номером 8 подает напряжение 3,3 В на 4 светодиода белого свечения, размещенные по углам экрана. Их задача — обеспечивать подсветку. При подаче напряжения на этот пин нужно помнить, что в цепи отсутствуют резисторы, ограничивающие ток. При подаче 3,3 В ток потребления подсветки может достигать 100 мА, потому следует заранее продумать варианты его ограничения.
Коннекторы 8 и 1 предназначены для подачи электропитания.
Интерфейс управления
При управлении дисплеем используется последовательный протокол, подобный SPI. Для преобразования поступающих сигналов и команд используется встроенная микросхема Philips PCD8544.
Управление осуществляется набором сигналов, подаваемых на коннекторы:
-
SCLK — временные метки;
-
DN — данные, входящие последовательно, выбор чипа (SCE) активируется низким уровнем;
-
SCE производит выбор чипа по низкому уровню;
-
D/C — сигнал, разрешающий отображение поступающей информации.
Полный набор команд описан в руководстве пользователя микросхемы PCD8544 в разделе Instructions. Имеются сигналы очистки дисплея, инверсии светимости пикселей, отключения питания и других.
Подготовка дисплея 5110 к подключению
До работы со скетчами следует подготовить «сборку» и определиться с соединением с Arduino. Понадобятся 8 коннекторов прямого типа или с загнутыми на 90 градусов ножками. Также нужно приготовить монтажную плату, «рельсу» с прямыми коннекторами или напаять переходники непосредственно к дисплею, расположить дисплей Nokia 5110 на монтажной плате.
Варианты подключения Нокиа 5110 к Arduino
Способ подключения LCD к Arduino затем можно применить в отношении других микроконтроллеров. Для высокой скорости передачи данных пины SCLK и DN(MOSI) выводятся на SPI Arduino. Коннекторы SCE, RST и D/C подключаются ко всем цифровым коннекторам микроплаты. Выход от светодиода соединяется с пином Arduino, поддерживающим ШИМ, что позволяет регулировать яркость подсветки. Питание дисплея 5110 нельзя напрямую соединять со стандартным выходом «Ардуино» из-за его 5-вольтовой логики.
Прямое соединение с Arduino
Этот способ подключения наиболее прост: применяются платы с 3 В питанием, такие как Arduino Pro 3.3V/8MHz либо Arduino Pro Mini. Применение версии микроконтроллера с питанием от 5 В допустимо, но это может негативно отразиться на продолжительности работы дисплея.
Подключение устройства к Arduino.
Пины подключаются так:
|
Пины дисплея |
Пины «Ардуино» |
Примечание |
|
VCC |
VCC 3,3 В |
Только 3-вольтовая плата |
|
GND |
GND |
|
|
SCE |
7 |
Любой цифровой коннектор |
|
RST |
6 |
Любой цифровой коннектор |
|
D/C |
5 |
Любой цифровой коннектор |
|
MOSI |
11 |
Только этот коннектор |
|
SCLK |
13 |
Только этот коннектор |
|
LED |
9 |
Любой ШИМ-выход, ограничивающий R=330 Ом |
Дополнительной защитой станут резисторы между пинами передачи данных от Arduino к экрану. При использовании Arduino Uno или иных 5-вольтовых плат можно применять резисторы на 10 и 1 кОм. Первые устанавливаются между пинами SCLK, DN, D/C и RST, а вторые между пинами SCE и 7. Резистор 330 Ом используется между коннектором светодиода и 9-ым пином.
Преобразователи уровня
Решить вопрос разного питающего напряжения можно с помощью преобразователей уровня. Для этого можно применить модули Bi-Directional Logic Level Converter либо TXB0104. Трудность состоит в том, что дисплей имеет 5 входов, а преобразователи обеспечивают только 4 контакта. Выход можно найти, если на RST подать высокий уровень через резистор на 10 кОм. Недостаток этого способа — невозможность перезагрузки дисплея при сохранении всех прочих функций.
Модуль «Bi-Directional Logic Level Converter».
Источник: http://cleverdiy.ru/kak-podklyuchit-nokia-5110-k-arduino
Подключение дисплея Nokia 5110 к Arduino Uno
Arduino 
Привет Хабр! Эта очень маленькая статья для начинающих, тех кто только начал осваивать Arduino и её программирование. Я искал информацию о том, как подключить дисплей от Nokia 5110 к Arduino Uno, но как-то все было не до конца понятно. Информации на русском мало, поэтому прошу сильно не закидывать помидорами. После поисков и экспериментов решил написать свою простую инструкцию, надеюсь кому пригодиться.

Итак, будем делать все в Windows, так как в данный момент у меня она.
Для начала нам надо скачать библиотеку https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library
Теперь распаковываем это все в папку C:Program Files (x86)Arduinolibraries или C:Program FilesArduinolibraries в зависимости от того где у вас программа Arduino.
В папке C:Program Files (x86)ArduinolibrariesAdafruit-PCD8544-Nokia-5110-LCD-library-master должны после всех манипуляций появится следующие файлы:

Теперь надо правильно подключить ардуинку к дисплейчику. Вот правильная распиновка:
RST -> D3
CE -> D4
DC -> D5
Din -> D6
Clk -> D7
Vcc -> 3.3V
BL -> 5V
Gnd -> GND
Слева контакты дисплея, справа ардуино.
После того как все подключили можно запустить пример из папки examples и сразу залить его на Arduino Uno. После окончания можем созерцать красивую анимацию. Всё это конечно красиво, но много чего бесполезного. Что если нам надо просто выводить какой-то текст и показания в виде цифр? Ниже обрезанный код-шаблон для ваших последующих разработок. В нём убрано все лишнее, отображается на дисплее только текст и цифры меняются в цикле loop(). Можете выводить какую угодно информацию теперь в цикле. В данном случае задержка итерации цикла составляет 1 секунду.
Код:
#include <Adafruit_GFX.h>#include <Adafruit_PCD8544.h>Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);void setup() { display.begin(); display.clearDisplay();}void loop() { display.setTextSize(1); // размер текста 1 display.setTextColor(BLACK); // цвет текста темный display.println(«Hello, world!»); // отображаем надпись display.setTextSize(2); // увеличиваем шрифт на 1 display.println(random(1,10000)); // выводим число от 1 до 10000 display.setTextSize(3); display.print(random(1,10000)); display.display(); delay(1000); // задержка в секунду display.clearDisplay(); // очищаем дисплей}
Источник: http://itnan.ru/post.php?c=1&p=260165
Общая характеристика ЖК дисплея Nokia 5110
Существует два типа подобных ЖК дисплеев – у первого типа ламели для пайки располагаются с обоих сторон дисплея, а у второго типа они располагаются только с обратной стороны дисплея. Мы использовали дисплей 2-го типа, но принципы подключения и использования обоих типов этих дисплеев одинаковы, поэтому совершенно неважно какой из этих типов дисплеев вы приобретете.

Как уже упоминалось, графический ЖК дисплей Nokia 5110 имеет 84 пикселя по горизонтали и 48 пикселей по вертикали. Общий размер дисплея — 1.72’ x 1.72’. Дисплей имеет 6 входных контактов которые можно подключить к любому микроконтроллеру по протоколу SPI. Микросхема дисплея, которая отвечает за взаимодействие с микроконтроллером – это микросхема контроллера дисплея Philips PCD8544, даташит на которую можно найти по этой ссылке. Однако, поскольку мы используем плату Arduino, нам нет нужды беспокоиться о даташите этой микросхемы и принципах ее работы поскольку все низкоуровневое взаимодействие с ней мы будем осуществлять с помощью специальных библиотек для Arduino.
Источник: http://microkontroller.ru/arduino-projects/podklyuchenie-zhk-displeya-nokia-5110-k-arduino/
Преимущества использования Arduino Uno
Было создано множество платформ и микроконтроллеров, являющихся аналогами представленной в данной статье платформы Arduino. Одни из таких аналогов — Netmedia’s BX-24, Parallax Basic Stamp и многие другие. Однако остановимся на Arduino Uno, так как этот конструктор имеет ряд преимуществ перед остальными контроллерами. На них и стоит обратить внимание при выборе платформы для работы. В первую очередь это низкая стоимость данных устройств. Модели с этим программным обеспечением стоят менее 45 долларов, а при желании могут быть собраны вручную, так как обладают довольно простой конструкцией. Вторым пунктом стоит отметить, что платформы Arduino могут работать со всеми операционными системами: Windows, Linux, а также Macintosh OSX, тогда как все остальные ограничиваются работой исключительно с Windows.
Источник: http://belmathematics.by/stati/7211-nokia-5110-foto-skhema-podklyuchenie-graficheskogo-displeya-nokia-5110-k-arduino-poleznaya-informatsiya-dlya-vsekh-sovety-i-rekomendatsii-ot-belmathematics-by
Распиновка Nokia 5110

Выводы Nokia 5110 LCD выглядит следующим образом:
RST: пин сброса
SCE: пин выбора чипа
D/C: (Данные / Команда): это вывод выбора режима. LOW означает командный режим, а HIGH означает режим данных.
DN (Data Pin): последовательные данные на входе
SCLK: последовательный тактовый сигнал
VCC: входное напряжение от 2,7 до 3,3 В
Светодиод: этот светодиод является подсветкой. Входное напряжение 3,3 В
GND: земля
Источник: http://arduinoplus.ru/arduino-nokia-5110/
Скетч и библиотека для работы с дисплеем
Для работы с данным дисплеем существует множество библиотек, мы же будем использовать весьма простую и функциональную библиотеку <LCD5110_Basic.h>, доступную по адресу http://www.rinkydinkelectronics.com/library.php?id=44. Данная библиотека позволяет работать с дисплеем с помощью 14 простых функций:
| Функция | Назначение |
| LCD5110(SCK, MOSI, DC, RST, CS) | Объявление дисплея с указанием пинов подключения. |
| InitLCD([contrast]) | Инициализация дисплея с опциональным указанием контрастности (0-127), по умолчанию используется значение 70. |
| setContrast(contrast) | Изменение контрастности (0-127). |
| enableSleep() | Переводит экран в спящий режим. |
| disableSleep() | Выводит экран из спящего режима. |
| clrScr() | Очищает экран. |
| clrRow(row, [start], [end]) | Очищает выбраную строку (номер row), от позиции start до end (опционально). |
| invert(true), invert(false) | Включает и выключает инверсию содержимого LCD экрана. |
| print(string, x, y) | Выводит строку символов (string) с заданными координатами (x, y); вместо x-координаты можно использовать LEFT, CENTER и RIGHT; высота стандартного шрифта 8 точек, поэтому строки должны идти с интервалами через 8. |
| printNumI(num, x, y, [length], [filler]) | Выводит целое число (num) на экран на заданной позиции (x, y); опционально: length – количество символов, резервируемых для числа; filler – символ для заполнения «пустот», если число меньше желаемой длины length (по умолчанию это пробел ” “). |
| printNumF(num, dec, x, y, [divider], [length], [filler]) | Выводит число (num) с плавающей запятой; dec – число знаков после запятой; опционально: divider – знак десятичного разделителя, по умолчанию точка “.”, length и filler – по аналогии с предыдущей функцией. |
| setFont(name) | Выбирает шрифт; встроенные шрифты – SmallFont, MediumNumbers и BigNumbers. |
| invertText(true), invertText(false) | Инвертирует текст, выведенный с помощью функций print, printNumI и printNumF (вкл./выкл.). |
| drawBitmap(x, y, data, sx, sy) | Выводит картинку на экран по необходимым координатам (x, y); data – массив, содержащий картинку; sx и sy – ширина и высота рисунка. |
Рассмотрим работу с дисплеем с помощью данной библиотеки на примере простого скетча:
#include <LCD5110_Basic.h>LCD5110 LCD(7, 6, 5, 4, 3); //обьявляем дисплей с указанием пинов подключенияextern uint8_t SmallFont[]; //указываем наличие массива со шрифтом SmallFont в библиотекеextern uint8_t MediumNumbers []; //указываем наличие массива со шрифтом MediumNumbers в библиотекеvoid setup() { LCD.InitLCD(); //инициализируем дисплей}void loop() {LCD.disableSleep(); //выводим дисплей из режима снаLCD.clrScr(); //очищаем дисплейLCD.setFont(SmallFont); //устанавливаем шрифт SmallFontLCD.print(“Hello World!”, CENTER, 2); //выводим “Hello World!” на второй строчке с равнением по центруLCD.setFont(MediumNumbers); // устанавливаем шрифт MediumNumbersfor (int i=0; i<=5; i++) { LCD.clrScr(); //очищаем экран LCD.print(i, CENTER, 20); //выводим значение i по центру 20 строчки delay(1000);}LCD.enableSleep(); //вводим дисплей в режим сна на время длительной паузыdelay(5000);}
После того как мы рассмотрели базовые функции библиотеки, остановимся более подробно на функции drawBitmap и рассмотрим особенности вывода изображений на экран.
Для начала нам понадобится интересующее изображение в формате .bmp.
Далее необходимо скачать программу Image Generate от Alex_EXE по адресу https://alex-exe.ru/programm/image-generate/. В окне программы устанавливаем необходимое разрешение нашего изображения на дисплее (должно быть меньше, чем 84 пикселя по горизонтали и 48 по вертикали), нажимаем «установить новый размер».
Нажимаем «установить новый размер»
После этого нажимаем «Картинка», «Открыть», выбираем наш файл, жмем «преобразовать».
Жмем «преобразовать»
Нажимаем «Применить».
Нажимаем «Применить»
Теперь жмем на кнопку «Массив» и копируем появившийся массив в новый скетч.
Теперь жмем на кнопку «Массив» и копируем появившийся массив в новый скетч#include <LCD5110_Basic.h>LCD5110 LCD(7, 6, 5, 4, 3); //обьявляем дисплей с указанием пинов подключенияstatic const char lcd_image_mas[288] = {} //массив с изображениемvoid setup() { LCD.InitLCD(); //инициализируем дисплей}void loop() {LCD.clrScr(); //очищаем дисплейLCD.drawBitmap(18, 0, lcd_image_mas, 48, 48); //выводим изображение из массива размером 48х48 пикселей начиная с точки 18х0LCD.enableSleep(); //вводим дисплей в режим снаwhile(1);}
Источник: http://arduinomaster.ru/uroki-arduino/podklyuchenie-displeya-nokia-5110-k-arduino/
Пример №1
В первом примере мы просто отобразим данные на ЖК-дисплее Nokia 5110. Принципиальная схема для соединения Nokia 5110 и Arduino показана ниже.
Схема соединения

Для работы Nokia 5110 LCD требуется 3,3 В, поэтому нам придется использовать резисторы для преобразования 5 В в 3,3 В. Если вы будете работать с Nokia 5110 без резисторов, экран будет работать, но срок службы ЖК-дисплея сократится.
- Подключите контакт 1 (контакт RST) к контакту 6 Arduino через резистор 10 кОм.
- Подключите контакт 2 (контакт SCE) к контакту 7 Arduino через резистор 1 кОм.
- Подсоедините контакт 3 (контакт D/C) к контакту 5 Arduino через резистор 10 кОм.
- Подсоедините контакт 4 (DIN контакт) к контакту 4 Arduino через резистор 10 кОм.
- Подсоедините контакт 5 (контакт CLK) к контакту 3 Arduino через резистор 10 кОм.
- Подсоедините контакт 6 (контакт VCC) к контакту 3,3 В Arduino.
- Подсоедините контакт 7 (светодиодный контакт) к среднему контакту потенциометра 1 кОм через резистор 330 Ом и подключите два других контакта к VCC и заземлению.
- Подсоедините контакт 8 (контакт GND) к заземлению Arduino.
Подключенный потенциометр используется для увеличения или уменьшения подсветки ЖК-дисплея. Вы можете подключить его к 3,3 В, если хотите, чтобы подсветка всегда была сильной, или вы можете подключить его к заземлению, если вы не хотите иметь подсветку.
Код
Скачайте библиотеку Nokia 5110 ниже.
Сам код первого примера:
#include <PCD8544.h> PCD8544 lcd;void setup() { lcd.begin(84, 48);}void loop() { lcd.setCursor(0, 0); lcd.print(» WELCOME «); lcd.setCursor(0, 1); lcd.print(» To»); lcd.setCursor(0,2); lcd.print(«ArduinoPlus.ru»); delay(200); }
Прежде всего, мы подключаем библиотеку для Nokia 5110 LCD. Библиотека будет включать все команды, которые нам потребуются для ЖК-дисплея Nokia 5110. Затем мы объявили переменную с именем «lcd» типа PCD8544.
#include <PCD8544.h>
PCD8544 lcd;
Затем в функции setup (настройка) мы установили разрешение для Nokia 5110 LCD. ЖК-дисплей Nokia5110 имеет разрешение 84х48, поэтому мы установили разрешение 84х48 в Arduino IDE.
lcd.begin(84, 48);
Затем в функции loop (цикл) мы сначала установили курсор на первую строку и напечатали «Добро пожаловать!» (WELCOME). Затем мы перешли ко второй строке и напечатали «в» (to), а затем в третьей строке мы напечатали «ArduinoPlus.ru».
lcd.setCursor(0, 0); lcd.print(» WELCOME «); lcd.setCursor(0, 1); lcd.print(» To»); lcd.setCursor(0,2); lcd.print(«ArduinoPlus.ru»); delay(200);
Источник: http://arduinoplus.ru/arduino-nokia-5110/
Видео, демонстрирующее работу схемы
Загрузка…
2 367 просмотров
Источник: http://microkontroller.ru/arduino-projects/podklyuchenie-zhk-displeya-nokia-5110-k-arduino/