Свързване на дисплей на nokia 5110 към arduino uno

Вероятно аз, като всички строители на Arduino, имах някаква луда идея в главата си. Поръчах всички необходими части от Китай. Трябваше да чакаме много дълго време, но след това клонинг на платката Arduino Uno и LCD дисплей Nokia 5110 бяха доставени предсрочно. Тъй като преди това не бях запознат с електрониката и програмирането, реших да не губя време и започнах да се уча как да показвам информация на този модул.

Първото нещо, което направих беше Google и попаднах на публикацията „Arduino, Nokia 5110 LCD module and Cyrillic alphabet“ от автора. И тогава разбрах, че всичко, което бях планирал преди, нямаше да бъде толкова лесно да се направи.

Разбрах кирилицата, там всичко е просто, няма да копирам и поставям последния пост, но наистина има проблем със снимките. Задачата е: трябва да нарисувате картина и да я качите на дисплея. Срещнах първия проблем, влязох в средата за програмиране на Arduino и видях, че няма такова нещо като „Вмъкване - изображения“, но трябва да напишете картина с определен код в системата за шестнадесетично смятане. Намерих няколко редактора, но това не беше така. Картината не се показва адекватно. Започнах да търся проблеми, които биха могли да бъдат.

Чрез куп експерименти, опити и тестове стигнах до алгоритъм, който ще споделя с вас:

1) Трябва да получите самата снимка, в черно-бял формат .bmp с разширение 84 x 48 пиксела.
Това може да стане по много начини за почти всеки. графичен редакторИма функция „Запазване като“, където посочваме необходимите параметри.
Направих го в corelDRAW. Получаваме нещо подобно. Необходимо е да се уточни, че името на изображението трябва да бъде запазено Латинско оформлениеклавиатури, защото следващата програманяма да може да го отвори.

2) Ако е необходимо, можете да редактирате картината в paint, колкото и да е странно, има няколко прости и интересни инструмента.

3) Използвайки това, получаваме шестнадесетичния код на изображението.

4) Поставете този код V програмен код Arduino и го качете на дъската:

// SCK - Pin 8 // MOSI - Pin 9 // DC - Pin 10 // RST - Pin 11 // CS - Pin 12 // #include LCD5110 myGLCD(8,9,10,11,12); extern uint8_t OKO; float y; uint8_t* bm; int пространство; void setup() (myGLCD.InitLCD(); ) void loop() (myGLCD.clrScr(); myGLCD.drawBitmap(0, 0, OKO, 84, 48); myGLCD.update(); delay(2000); )

#включи const uint8_t OKO PROGMEM=( //Копиран шестнадесетичен код GLCD инструменти);

Спомняте ли си онези времена, когато мобилните телефони бяха „дъбови“, те имаха отделна клавиатура с бутони и малък монохромен дисплей с течни кристали?

Сега този пазар принадлежи на всички видове iPhone, Galaxy и т.н., но дисплеите намират нова употреба: Направи си сам проекти!

Черно-белият дисплей с размери 84x48, който ще разгледаме, е използван в телефоните Nokia 3310. Основното им предимство е лекотата на работа. Такъв дисплей ще се впише перфектно във вашия проект за интерактивен обмен на информация с потребителя.

В тази статия ще разгледаме управлението на този графичен дисплей с помощта на Arduino. Разгледани са всички характеристики на връзката, техническите характеристики на дисплея и програмата за Arduino.

Необходими материали

  • Arduino или негов клонинг.
  • Съединители.
  • Платка.

Спецификации на дисплея на Nokia 5110

Преди да свържете дисплея и да програмирате Arduino, нека да разгледаме Главна информацияза него.

Pinout

За свързване и предаване на данни на дисплея се използват два успоредни реда от 8 конектора. Всеки щифт е маркиран на гърба на дисплея.


Както вече споменахме, щифтовете са свързани успоредно един на друг. Информация за предназначението на всеки конектор е дадена по-долу.


Хранене

Вече сте забелязали, че LCD дисплеят 5110 има два захранващи конектора. Първият е най-важен – захранване на логиката на дисплея. В листа с данни е посочено, че трябва да бъде избрано в диапазона 2,7 - 3,3 V. При нормална работа дисплеят ще консумира от 6 до 7 mA.

Вторият конектор за захранване е за подсветка на дисплея. Ако премахнете самия дисплей от платката (това не е необходимо, можете просто да погледнете фигурата по-долу), ще видите, че подсветката е реализирана много просто: четири бели светодиода, които са разположени в ъглите на платката. Моля, имайте предвид, че няма резистори за ограничаване на тока.


Така че трябва да сте по-внимателни с диетата си. Можете да използвате резистор за ограничаване на тока, когато свързвате щифта "LED" или да използвате максимално захранващо напрежение от 3,3 V. Не забравяйте, че светодиодите могат да абсорбират големи токове! Без ограничение, те ще черпят около 100 mA при захранващо напрежение от 3,3 V.

Контролен интерфейс

Дисплеят има вграден контролер: Philips PCD8544, който превръща масивния паралелен интерфейс в по-удобен сериен. PCD8544 се управлява с помощта на синхронен сериен протокол, който е подобен на SPI. Обърнете внимание, че има щифтове за брояч на време (SCLK) и въвеждане на серийни данни (DN), както и избиране на чип с активно ниско ниво (SCE).

Над разглежданите серийни конектори има инсталиран още един конектор - D / C, чрез който се получава информация дали данните, които се предават, могат да бъдат показани.

За списък с команди вижте раздела „Инструкции“ на листа с данни PCD8544 (страница 11). Има команди, които изчистват дисплея, обръщат пиксели, изключват захранването и т.н.

Сглобяване и свързване на дисплей 5110

Преди да качите скицата и да прехвърлите данни на дисплея, трябва да разберете връзката. За да направите това, трябва да решите проблема със сглобяването и свързването му към Arduino.

Сглобяване

За да „сглобите“ дисплея, може да ви трябват конектори. 8 броя ще са достатъчни. Можете да използвате прави крака или 90-градусови. Зависи от по-нататъшна употреба. Ако планирате да използвате платкарелса с прави конектори вероятно ще бъде най-добрият избор.

ЛСД дисплейот Nokia 5110, монтиран на мини платка:


Можете също така директно да запоите адаптерите към дисплея.

Свързване на дисплей 5110 към Arduino

IN в този примерние ще свържем LCD дисплея към Arduino. Подобна техника може лесно да се адаптира към други платки и микроконтролери. За свързване на щифтовете за трансфер на данни - SCLK и DN(MOSI) - използваме SPI щифтове на Arduino, които осигуряват бърз трансферданни. Пинове за избор на чип (SCE), нулиране (RST) и данни/контрол (D/C) могат да бъдат свързани към всеки цифров щифт. Изходът от светодиода е свързан към щифт на Arduino, който поддържа PWM модулация. Благодарение на това е възможно гъвкава настройкаяркост на подсветката.

За съжаление, максималното захранващо напрежение на дисплея 5110 може да достигне 3,6 волта, така че свържете директно към стандартен изход 5 V не са разрешени на Arduino. Напрежението трябва да се регулира. Съответно се появяват няколко опции за свързване.

Директна връзка с Arduino

Най-лесният вариант е да се свържете директно с Arduino. В този случай трябва да използвате платки Arduino Pro 3.3V/8MHz или 3.3V Arduino Pro Mini. Предложената по-долу опция работи с Ардуино дъски 5V. Това е работеща опция, но животът на дисплея може да бъде леко намален.


Щифтовете са свързани по следния начин:


Добър и евтин вариант за предоставяне допълнителна защита- инсталиране на резистори между щифтовете за трансфер на данни от Arduino към LCD 5110. Ако използвате Arduino Uno (или подобна 5-волтова платка), можете да използвате резистори с номинална стойност от 10 kOhm и 1 kOhm. Диаграмата на свързване на дисплея с помощта на резистори е показана на фигурата по-долу:


Връзката е същата като в първия пример, но във всяка сигнална верига е инсталиран резистор. Между щифтовете SCLK, DN, D/C и RST са инсталирани резистори от 10 kOhm. Резистор от 1 kOhm има между SCE пиновете и пин 7. Е, 330 ома остават между пин 9 и щифта със светодиода. и щифт 7.

Преобразуватели на нива

Третата опция за свързване е използването на преобразуватели на нива за превключване между 5 и 3,3 V. За тези цели можете да използвате двупосочен преобразувател на логически нива или модули TXB0104.


За съжаление на дисплея има пет входа за 3,3 V сигнал и четири на преобразувателите на ниво. Можете да оставите RTS изхода висок (като го свържете с помощта на резистор 10k ома). В резултат на това вече няма да можете да контролирате как дисплеят се рестартира, но всички други функции ще бъдат налични.

Първи пример за скица на Arduino: LCD демонстрация

След успешно свързване можете да преминете към изтегляне на скицата и показване на данните на дисплея!

Програма за Arduino

Коментарите в кода по-горе трябва да ви помогнат да разберете програмата. Повечето от действията се случват във функцията lcdFunTime().

Скица в действие

След качване в Arduino, скицата ще започне да работи и ще стартира демо - набор от стандартни анимации и тестване графични функции. Първо, нека покажем няколко пиксела. След това ще преминем към показване на линии, правоъгълници и кръгове, зареждане на растерно изображение и т.н.


След завършване на скицата, мониторът ще премине в режим на пренос на данни чрез серийния протокол. Отворете серийния монитор (със скорост на предаване от 9600 bps). Това, което отпечатате на серийния монитор, ще се появи на LCD монитора.

Ако се интересувате от възможностите за показване на растерни изображения, прочетете нататък. Ще разгледаме точно как можете да импортирате свое собствено растерно изображение 84x48 и да го покажете на екрана.

Втори пример за скица на Arduino: зареждане и показване на растерни изображения

В този пример ще създадем ново растерно изображение 84x48, ще го интегрираме в кода на Arduino и ще го изпратим на LCD монитора.


Намиране/Създаване/Промяна на растерно изображение

За да започнете, намерете изображението, върху което искате да се показва LCD екран 5110. Няма да е възможно да се разшири много до 84x48 пиксела, но все пак е възможно. Ето няколко примера:

След като изберете изображение, трябва да го коригирате: направете го монохромно (2-битов цвят); запазете размера 84x48 пиксела. Можете да използвате повечето редактори на изображения за това. Включително Paint, ако имате Windows. Запазете полученото изображение.

Преобразуване на растерно изображение в масив

Следващата стъпка е да конвертирате този файл в масив от 504 байта. За това можете да използвате различни програми. Например LCD Assistant.

За да заредите изображение в LCD Assistant, отидете на File > Load Image. Трябва да се отвори прозорец с изображение за визуализация. Уверете се, че снимката правилен размер– 84 пиксела ширина, 48 пиксела височина и ориентация на байта е зададена на вертикална, разпределението на размера е настроено на малко. Останалите настройки по подразбиране трябва да са зададени правилно (8 пиксела/байт)

След това отидете на раздела Файл > Запазване на изхода, за да генерирате временен текстов файл. Отворете този текстов файл, за да видите прекрасния си нов масив. Променете типа масив на char (не unsigned или const). Също така се уверете, че масивът е именуван правилно (без тире, не започва с число и т.н.).

Импортирайте в скица и рисувайте!

Копирайте създадения масив в скицата на Arduino. Можете да използвате скицата от първия пример. Поставете своя масив навсякъде. Сега, за да покажете вашата скица, заменете setup() и loop() във вашата скица с редовете по-долу (запазете другите функции и променливи същите):

// ...променливи, константи и масив растерно изображениедефинирани по-горе

lcdBegin(); // Настройване на щифтове и инициализиране на LCD дисплея

setContrast(60); // Регулирайте контраста (предпочитаният диапазон е от 40 до 60)

setBitmap(flameBitmap); // flameBitmap трябва да се замени с името на вашия масив

updateDisplay(); //Актуализирайте дисплея, за да покажете масива

// Функциите за управление и графики на LCD дисплея са дефинирани по-долу...

Наистина ли се оказа страхотно? Освен всичко друго, можете да импортирате множество изображения и да създавате малки анимации! Опитайте го, сигурна съм, че ще ви хареса!

Връзки за изтегляне на допълнителни програми, библиотеки и таблици с данни

Листове с данни за LCD дисплей и драйвери
  • LCD лист с данни – Не е точно същият като 5110, но е много сходен по спецификации
Ардуино библиотеки и скици
  • PCD8544 Arduino Library – Библиотека за работа на Arduino с PCD8544 LCD драйвер
Програми за създаване на растерни изображения
  • TheDotFactory – Страхотен инструмент за създаване на персонализирани масиви от шрифтове

Оставете вашите коментари, въпроси и споделете личен опитПо-долу. Новите идеи и проекти често се раждат в дискусии!

В този урок първо ще покажем някои данни за Екран на Nokia 5110 и след това ще покажем данните на сензора DHT22 върху него. Ще свържем Nokia 5110 LCD и Arduino. Ще научите интерфейса на Nokia 5110 Arduino чрез два примера. Първо, просто ще покажем някои данни на екрана, а във втория пример ще прочетем показанията от сензора за температура и влажност DHT22 и ще ги покажем на LCD екрана на Nokia 5110.

Nokia 5110 LCD е отличен избор за показване на данни. Той е по-евтин от обикновените LCD дисплеи и е много лесен за използване с микроконтролери. Просто трябва да свържете няколко проводника и сте готови.

За Nokia връзки 5110 за Arduino, ще ни трябва самият екран с микроконтролер и редица други части.

  • Nokia 5110 LCD × 1
  • Многооборотен прецизен потенциометър - 1 kΩ (25 оборота) × 1
  • Резистор 10 kOhm × 4
  • Резистор 1 kOhm × 1
  • Резистор 330 ома × 1
  • Джъмпери × 1
  • Оформление (универсално) × 1

Освен това ще ни трябва софтуер във формата, която най-вероятно познавате.

Нокия 5110 pinout

Заключения Nokia 5110 LCD изглежда така:

RST: щифт за нулиране
S.C.E.: щифт за избор на чип
D/C: (Данни/Команда): Това е щифтът за избор на режим. НИСКО означава команден режим, а HIGH означава режим на данни.
DN(Пин за данни): Серийно въвеждане на данни
SCLK: сериен часовников сигнал
VCC: входно напрежение 2,7 до 3,3 V
Светодиод: Този светодиод е подсветка. Входен волтаж 3,3 V
GND: Земя

Пример №1

В първия пример просто ще покажем данни на LCD дисплея на Nokia 5110. Схематична диаграмаза свързване на Nokia 5110 и Arduino е показано по-долу.

Схема на свързване

За Nokia работи LCD 5110 изисква 3,3 V, така че ще трябва да използваме резистори, за да преобразуваме 5 V в 3,3 V. Ако използвате Nokia 5110 без резистори, екранът ще работи, но животът на LCD ще бъде намален.

  • Свържете щифт 1 (щифт RST) към щифт 6 на Arduino чрез резистор от 10 k ома.
  • Свържете щифт 2 (щифт SCE) към щифт 7 на Arduino чрез резистор 1k ома.
  • Свържете щифт 3 (щифт D/C) към щифт 5 на Arduino чрез резистор 10k ома.
  • Свържете щифт 4 (пин DIN) към щифт 4 на Arduino чрез резистор 10 k ома.
  • Свържете пин 5 (пин CLK) към пин 3 на Arduino чрез резистор 10k ома.
  • Свържете пин 6 (VCC щифт) към 3.3V щифт на Arduino.
  • Свържете пин 7 (LED щифт) към средния щифт на 1k ома потенциометър чрез резистор 330 ома и свържете другите два щифта към VCC и маса.
  • Свържете пин 8 (GND щифт) към заземяването на Arduino.

Свързаният потенциометър се използва за увеличаване или намаляване на LCD подсветката. Можете да го свържете към 3.3V, ако искате подсветката да е силна през цялото време, или можете да го свържете към маса, ако не искате да имате подсветка.

Код

Изтеглете библиотеката на Nokia 5110 по-долу.

Самият код на първия пример:

#включи PCD8544 LCD; void setup() (lcd.begin(84, 48); ) void loop() (lcd.setCursor(0, 0); lcd.print(" ДОБРЕ ДОШЛИ "); lcd.setCursor(0, 1); lcd.print ("До"); lcd.setCursor(0,2);

На първо място, включваме библиотеката за Nokia 5110 LCD. Библиотеката ще включва всички команди, от които ще се нуждаем за Nokia 5110 LCD, след което декларираме променлива, наречена „lcd“ от тип PCD8544.
#включи PCD8544 LCD;

След това във функцията за настройка задаваме разделителната способност за Nokia 5110 LCD. LCD дисплеят на Nokia5110 има разделителна способност 84x48, така че зададохме разделителната способност на 84x48 в Arduino IDE.

lcd.begin(84, 48);

След това във функцията за цикъл първо позиционирахме курсора на първия ред и отпечатахме „Добре дошли!“ (ДОБРЕ ДОШЛИ)..

Lcd.setCursor(0, 0); lcd.print(" ДОБРЕ ДОШЛИ "); lcd.setCursor(0, 1); lcd.print("До"); lcd.setCursor(0,2); lcd.print("сайт"); забавяне (200);

Пример №2

Във втория пример ще свържем сензор за температура и влажност DHT22 към Arduino и ще използваме DHT22, за да отчетем индекса на температурата, влажността и топлината. След това ще покажем тези данни на LCD дисплея на Nokia 5110. Електрическата схема на Nokia 5110, Arduino и интерфейса DHT22 е дадена по-долу.

Схема на свързване

Връзките между Nokia 5110 LCD и Arduino са описани в първия пример. Свържете щифтовете на сензора DHT22 към Arduino, както е показано на диаграмата по-горе:

  • Пин 1 на DHT22 към 5V Arduino.
  • Pin 2 на DHT22 към Pin 8 на Arduino.
  • Пин 4 на DHT22 към заземен щифт на Arduino.

Код

Изтеглете библиотеките за Nokia 5110 и DHT по-долу.

Кодът за втория пример е по-долу:

#включи #include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 PCD8544 lcd; DHT dht (DHTPIN, DHTTYPE); void setup() (lcd.begin(84, 48); dht.begin(); ) void loop() (lcd.clear(); float hum = dht.readHumidity(); float temp = dht.readTemperature(); //Отчитане на температурата в градуси float fah = dht.readTemperature(true); //Отчитане на температурата във фаренхайти if (isnan(hum) || isnan(temp) || isnan(fah)) ( //Проверка дали arduino са получили стойностите или не lcd.println("Неуспешно четене от DHT сензора!"); float heat_index = dht.computeHeatIndex(fah, hum); //Отчитане на топлинния индекс във фаренхайт float heat_indexC = dht. convertFtoC (heat_index); //Отчитане на топлинния индекс в градуси lcd.print("Humi: "); lcd.print("Temp); " lcd.print(" *F\t"); lcd.print("heat_indexC"); (" *C "); lcd.print ("Здравей: "); lcd.println(" *F "); забавяне (2000); )

На първо място, включихме библиотеки за Nokia 5110 LCD и сензор за температура и влажност DHT22. След това инициализирахме пин 8 за DHT22 (DHTPIN 8) и определихме типа DHT сензор. Предлагат се и други модели DHT сензори, но ние използвахме DHT22 заради него висока прецизност. След това декларирахме променлива "lcd" от тип PCD8544 за LCD дисплея и променлива "dht" от тип DHT за сензора DHT22.

#включи #include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 PCD8544 lcd; DHT dht (DHTPIN, DHTTYPE);

След това във функцията настройки за настройкаЗадали сме резолюцията за Nokia 5110 LCD. LCD дисплеят Nokia5110 има разделителна способност 84x48, така че ние зададохме разделителната способност на 84x48 в Arduino IDE. След това започнахме да получаваме данни от сензора DHT22 с помощта на командата dht.begin().

Lcd.begin(84, 48); dht.begin();

Във функцията за цикъл ние четем стойностите на влажността, температурата и топлинния индекс от DHT22 и ги съхраняваме в променливи. В крайна сметка ги отпечатахме на LCD екрана на Nokia 5110.

Плаващо бръмчене = dht.readHumidity(); float temp = dht.readTemperature(); float fah = dht.readTemperature(true); . . . lcd.setCursor(0,4); lcd.print("Здравей: "); lcd.print(heat_index); lcd.println(" *F ");

За неопитни потребителиЗа тези, които желаят самостоятелно да създават системи за управление на роботизирани устройства или инструменти за автоматизация, на пазара на ИТ услуги се предлагат различни хардуерни модули и техните модификации. По правило такива устройства имат проста архитектура с авторски права и придружаващ софтуер във формата прости помощни програми. Такива продукти могат да се използват самостоятелно или свързани с други. компютърни системичрез кабелни или безжични интерфейси.

Ползите от работата с графични дисплеи

Преди това графичните монохромни дисплеи бяха използвани много широко в производството на мобилни телефони.

Nokia пусна огромен брой различни моделиоборудван с такъв екран. Дните на тези телефони отминаха, но дисплеите не изчезнаха от пазара и продължават да се използват активно и до днес. Те се оказаха незаменими, а освен това евтините устройства за извеждане на текст и дисплеите работят чрез създаване на матрици от точки върху екраните, които подчертават изображението. Те спестяват ресурси и време при показване голям бройинформация и използване на малко количество енергия. Има огромно количество различни области, където устройствата Nokia 5110 могат да се използват: фото, видео, телевизионно оборудване, медицина и в много други индустрии.

Преди да опишете как да свържете дисплей на Nokia към хардуера Arduino модулНеобходимо е да се даде кратко въведение за тези устройства.

Ползи от използването на Arduino Uno

Създадени са много платформи и микроконтролери, които са аналози на платформата Arduino, представена в тази статия. Някои от тези аналози са BX-24 на Netmedia, Parallax Basic Stamp и много други, но ние ще се съсредоточим върху Arduino Uno, тъй като този дизайнер има редица предимства пред другите контролери, на които трябва да обърнете внимание, когато избирате платформа първо е ред ниска ценаданни на устройството. Модели с това софтуерструват по-малко от $45 и при желание могат да бъдат сглобени на ръка, тъй като имат доста прост дизайн. Втората точка заслужава да се отбележи, че платформите Arduino могат да работят с всички операционна система: Windows, Linux и Macintosh OSX, докато всички останали са ограничени до работа изключително с Windows.

Описание на Arduino Uno

Arduino Uno - платформа за разработка и програмиране различни устройства, който има 14 цифрови входовеи изходи, 6 аналогови входа, няколко конектора (USB, ICSP, захранване) и бутон, който има функция за рестартиране на устройството. IN тази платформаима вграден предпазител, който предотвратява късо съединениеи осигуряване безопасна работас USB кабел. Задейства се, когато през USB порта протича повече от 500 mA ток. В сравнение с универсални компютри, Arduino Uno взаимодейства много по-тясно с околната среда физическа среда. Платформата е изградена върху печатна електронна платкаи е проектиран да работи с отворен код. Може да се използва както от студенти и аматьори, така и от професионалисти, които могат да разширяват и допълват моделите по свое усмотрение и да работят свободно с отворен код. Платформата е проектирана по такъв начин, че да могат лесно да се добавят нови компоненти към нея. Дизайнът изисква разработчикът да избере да използва устройството самостоятелно; следователно, то не е поставено в корпус и не е строго обвързано с инсталацията.

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

Графичният дисплей Nokia 5110 е бюджетен монохромен дисплей с диагонал 1,6", който ви позволява да показвате не само текстова информация, но и рисунки. Разделителната му способност е 48x84 px, а напрежението, при което може да работи, е 2.7-5 V. Информацията се извежда на екрана във вертикални блокове. Те са високи осем пиксела и размерът на екрана е широк шест реда. Всеки щифт е маркиран на задния панел, за да се гарантира, че потребителите няма да сбъркат местоположението си.

По-рано в този блог бяха разгледани няколко LCD дисплея/индикатори и тяхното използване от Arduino. Същественият им недостатък е, че са доста голям размер, както и теглото. Често това не е проблем. Например, ако сглобявате станция за запояване „направи си сам“ в домашен калъф, някак си няма значение какъв е размерът на дисплея. От друга страна, ако имате нужда от дисплей на, да речем, квадрокоптер, тогава теглото и размерът стават критични. Затова днес ще научим как да работим с много малък и лек екран от телефона Nokia 5110.

Забележка:Други публикации по темата за екрани - Научих се да показвам текст на LCD индикатор от Arduino, За използването на 1602 екрани с I2C адаптер, Работа с LCD, базиран на HD44780 без библиотеки, и Цифров термометър от LCD матрица, TMP36 и Arduino.

Не се притеснявайте, купете ефективно несъществуващи днес телефон Nokia 5110, не е нужно да избирате екрана от него и да изхвърляте всички останали части. Екранът на Nokia 5110 е много често срещан независим модулза радиолюбители и струва от $2 до $5, в зависимост от магазина. В Русия модулът може да бъде закупен например на tpai.ru, arduino-kit.ru, amperkot.ru, compacttool.ru, chipster.ru или electromicro.ru. И, разбира се, екраните се продават на най-ниската цена на AliExpress, но ще трябва да изчакате месец или два, докато пристигнат от Китай.

Както често се случва в света на Arduino, вече има готови библиотеки за модула и то повече от една. Хареса ми библиотеката LCD5110, публикувана на уебсайта rinkydinkelectronics.com. Тази библиотека има две версии. Първият се нарича LCD5110_Basic. Той е по-прост и може да показва само текст с шрифтове различни размери. Възможно е да създадете свои собствени шрифтове. Втората версия се нарича LCD5110_Graph. Има всички възможности на първата библиотека и в допълнение към тях може да рисува сегменти, правоъгълници, кръгове и т.н.

За целите на тази публикация ще се използва LCD5110_Basic. И двете библиотеки са добре документирани и имат много примери за използване, така че ако имате нужда от LCD5110_Graph, можете лесно да го разберете сами. Струва си да се отбележи обаче, че за да може LCD5110_Basic да се компилира без предупреждения, трябваше да направя няколко малки редакции на неговия код.

И така, пример за използване на библиотеката:

#включи

extern uint8_t BigNumbers;
extern uint8_t Средни числа;
extern uint8_t SmallFont;

/* SCK / CLK, MOSI / DIN, DC, RST, CS */
LCD5110 LCD (2, 3, 4, 6, 5);

void setup()
{
lcd.InitLCD();
}

int ctr = 0;
void loop()
{
lcd.clrScr();

Lcd.setFont(BigNumbers) ;
lcd.printNumI(ctr, НАДЯСНО, 0);

Lcd.setFont(MediumNumbers) ;
lcd.printNumF(12.34, 2, ДЯСНО, 24);

Lcd.setFont(SmallFont) ;
lcd.print ("Ред 1", 0, 8 * 0);
lcd.print("Ред 2", 0, 8 * 1);
lcd.print ("Ред 3", 0, 8 * 2);
lcd.print ("L 4", 0, 8 * 3);
lcd.print ("L 5", 0, 8 * 4);
lcd.print ("0123456789ABCD", 0, 8 * 5);

Ctr + = 5;
ако (ctr >= 1000)
ctr = 0;

Закъснение (500);
}

Как изглежда в действие:

Надявам се, че няма нужда да дъвчете кода. Моля, обърнете внимание, че модулът се захранва от 3,3 V, но той разбира команди от Arduino нормално без преобразуватели на логическо ниво. Съответно свързваме щифтовете VCC (захранване) и BL (подсветка) към 3,3 V, свързваме GND към земята и свързваме останалите пет щифта към цифровите щифтове на Arduino. Предаваме номерата на пиновете към конструктора на клас LCD5110 в съответствие с коментарите в дадения код.

Просто, нали? Пълна версияМожете да намерите източника за тази публикация в това хранилище на GitHub. Допълненията и въпросите, както винаги, са добре дошли по всякакъв възможен начин.

Допълнение:Авторът на библиотеката за работа с екрана на Nokia 5110 е и автор на библиотеката OLED_I2C, предназначена да работи с еднакво популярни OLED екрани с I2C интерфейс. Можете да намерите пример за използване на OLED_I2C в публикацията Използване на джойстик Sega Genesis в проекти на Arduino. Както може да очаквате, двете библиотеки имат подобен интерфейс.