Пример №2
Во втором примере мы подключим датчик температуры и влажности DHT22 к Arduino и с помощью DHT22 будем считывать температуру, влажность и тепловой индекс. Затем мы покажем эти данные на ЖК-дисплее Nokia 5110. Принципиальная схема интерфейса Nokia 5110, Arduino и DHT22 приведена ниже.
Схема соединения
Соединения ЖК-дисплея Nokia 5110 с Arduino описаны в первом примере. Соедините контакты датчика DHT22 с Arduino, как показано на схеме выше:
- Контакт 1 DHT22 на 5В Arduino.
- Контакт 2 DHT22 к контакту 8 Arduino.
- Контакт 4 DHT22 к контакту заземления Arduino.
Если вы хотите узнать больше о взаимодействии DHT с Arduino, прочитайте наш урок Датчик температуры и влажности DHT22.
Код
Скачайте библиотеки Nokia 5110 и DHT ниже.
Код для второго примера ниже:
#include <PCD8544.h> #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(); //Reading the temperature in degrees float fah = dht.readTemperature(true); //Reading the temperature in fahrenheit if (isnan(hum) || isnan(temp) || isnan(fah)) { //Checking if the arduino have recieved the values or not lcd.println("Failed to read from DHT sensor!"); return; } float heat_index = dht.computeHeatIndex(fah, hum); //Reading the heat index in fahrenheit float heat_indexC = dht.convertFtoC(heat_index); //Reading the heat index in degrees lcd.setCursor(0, 0); lcd.print("Humi: "); lcd.print(hum); lcd.print(" %\t"); lcd.setCursor(0, 1); lcd.print("Temp: "); lcd.print(temp); lcd.print(" *C "); lcd.setCursor(0,2); lcd.print("Temp: "); lcd.print(fah); lcd.print(" *F\t"); lcd.setCursor(0,3); lcd.print("Hi: "); lcd.print(heat_indexC); lcd.print(" *C "); lcd.setCursor(0,4); lcd.print("Hi: "); lcd.print(heat_index); lcd.println(" *F "); delay(2000); }
Прежде всего, мы включили библиотеки для Nokia 5110 LCD и датчика температуры и влажности DHT22. После этого мы инициализировали контакт 8 для DHT22 (DHTPIN и определили тип датчика DHT. Также доступны другие модели датчиков DHT, но мы использовали DHT22 из-за его высокой точности. Затем мы объявили переменную «lcd» типа PCD8544 для ЖК-дисплея и переменную «dht» типа DHT для датчика DHT22.
#include <PCD8544.h> #include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 PCD8544 lcd; DHT dht(DHTPIN, DHTTYPE);
Затем в функции настройки setup мы установили разрешение для Nokia 5110 LCD. ЖК-дисплей Nokia5110 имеет разрешение 84х48, поэтому мы установили разрешение 84х48 в Arduino IDE. После этого мы начали получать данные с датчика DHT22 с помощью команды dht.begin().
lcd.begin(84, 48); dht.begin();
В функции цикла loop мы читаем значения влажности, температуры и индекса тепла из DHT22 и сохраняем в переменных. В конце мы напечатали их на ЖК-экране Nokia 5110.
float hum = dht.readHumidity(); float temp = dht.readTemperature(); float fah = dht.readTemperature(true); . . . lcd.setCursor(0,4); lcd.print("Hi: "); lcd.print(heat_index); lcd.println(" *F ");
Пример программы
Когда у нас уже все готово, время загрузить пример программы и начать пользоваться нашим дисплеем. Для этого из вкладки «Файл», затем «Примеры», выбираем имя скаченного примера для дисплея и выбираем “pcdtest”.
Здесь небольшое замечание, о котором следует упомянуть. Загружая библиотеку GFX, мы не найдем ее в IDE (нет примеров в Examples). Она требуется только для работы некоторых Adafruit библиотек.
Скомпелируем и загрузим проект в Arduino. Нашим глазам предстает логотип Adafruit, после чего произойдет переход к следующему экрану. Все заканчивается последовательность падающих звезд.
Библиотека GFX позволяет генерировать простые растровые изображения, текст и фигуры и подходит для различных дисплеев. Поскольку у нас монохромный дисплей, то мы можем отображать данные в двух цветах: черном или белом.
Здесь также следует отметить, что после каждого использования функции рисования мы должны вызвать функцию display(), которая выводит на экран то, что мы написали в программе.
Список всех доступных функций библиотеки GFX вместе с их объяснением и изображениями образцов можно найти на сайте learn.adafruit.com.
Одной из основных функций является рисование отдельных пикселей. В связи с тем, что библиотека поддерживает различные дисплеи, как в этой, так и в других функциях мы можем выбрать цвет нашего пикселя. В данном случае мы будем иметь на выбор два цвета — белый и черный.
Еще одной функцией является рисование линий, с помощью координат начала и конца. Благодаря библиотеке мы также можем отобразить такие фигуры, как прямоугольник, круг, прямоугольник с закругленными углами или треугольник.
Однако вышеперечисленные возможности относятся только для рисования графики. Что делать, если мы хотим отобразить текст? Нет ничего проще, GFX позволяет отобразить текст и символы в двух размерах, а так же в нормальном и в виде негатива.
Мы должны признать, что Adafruit в очередной раз показал класс. Опубликованные библиотеки просты в использовании, не говоря уже об отличном описании. Тестовая программа также является достаточно легкой для понимания и анализа. Думаю, никто не должен иметь проблем с первым запуском дисплея и адаптацией его в соответствии со своими потребностями.
Достаточно пару мгновений и после доработки мы уже сможем наслаждаться собственным растровым изображением или своим текстом. Если речь идет о сам дисплей, то стоимость его не запредельная, а возможности у него широкие.
Сравним возможности LCD от Nokia 5510 и обычного LCD 2*16. Здесь мы видим одни плюсы. Мы можем отобразить, помимо текста также простые растровые изображения. Для подключения используется меньше проводов, а контраст мы можем регулировать программно.
HILDA — электрическая дрель
Многофункциональный электрический инструмент способн…
Подробнее
Варианты подключения дисплея Nokia 5110 к Arduino и схемы
Распиновка 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
Подключение устройства к 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».
Скетч и библиотека для работы с дисплеем
Функция | Назначение |
LCD5110(SCK, MOSI, DC, RST, CS) | Объявление дисплея с указанием пинов подключения. |
InitLCD() | Инициализация дисплея с опциональным указанием контрастности (0-127), по умолчанию используется значение 70. |
setContrast(contrast) | Изменение контрастности (0-127). |
enableSleep() | Переводит экран в спящий режим. |
disableSleep() | Выводит экран из спящего режима. |
clrScr() | Очищает экран. |
clrRow(row, , ) | Очищает выбраную строку (номер 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, , ) | Выводит целое число (num) на экран на заданной позиции (x, y); опционально: length – количество символов, резервируемых для числа; filler – символ для заполнения «пустот», если число меньше желаемой длины length (по умолчанию это пробел ” “). |
printNumF(num, dec, x, y, , , ) | Выводит число (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); //устанавливаем шрифт SmallFont LCD.print(“Hello World!”, CENTER, 2); //выводим “Hello World!” на второй строчке с равнением по центру LCD.setFont(MediumNumbers); // устанавливаем шрифт MediumNumbers for (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 = {} //массив с изображением void setup() { LCD.InitLCD(); //инициализируем дисплей } void loop() { LCD.clrScr(); //очищаем дисплей LCD.drawBitmap(18, 0, lcd_image_mas, 48, 48); //выводим изображение из массива размером 48х48 пикселей начиная с точки 18х0 LCD.enableSleep(); //вводим дисплей в режим сна while(1); }
Подключение дисплея 5110 к Ардуино
Для начала давайте рассмотрим подключение данного дисплея к Arduino и разберемся с интерфейсом передачи данных. На плате дисплея имеются 8 выводов:
- RST — Reset (сброс);
- CE — Chip Select (выбор устройства);
- DC — Data/Command select (выбор режима);
- DIn — Data In (данные);
- Clk — Clock (тактирующий сигнал);
- Vcc — питание 3.3В;
- BL — Backlight (подсветка) 3.3В;
- GND — земля.
Соединение
Как вы уже могли заметить, питание дисплея (Vcc) должно осуществляться напряжением не выше 3.3В, то же напряжение является максимальным и для подсветки дисплея (BL). Тем не менее, логические выводы толерантны к 5В логике, используемой Arduino. Но все же рекомендуется подключать логические выводы через резисторы 10 кОм, тем самым вы сможете продлить срок службы дисплея.
Также стоит отметить, что существуют версии дисплеев (как правило с красной платой) с выводом LIGHT вместо BL. В таком случае включение подсветки осуществляется подключением данного вывода к минусу питания (GND).
Пин RST (активный LOW) отвечает за перезагрузку дисплея, а с помощью пина CE (активный LOW) контроллеру дисплея сообщается что обмен данными происходит именно с ним. Вход DC отвечает за режим ввода – ввод данных, либо ввод команд (LOW – данные, HIGH – команды). Вход Clk позволяет контроллеру дисплея определять скорость передачи данных, а через пин DIn происходит непосредственно передача данных в контроллер дисплея.
Плюсы работы с графическими дисплеями
Ранее графические монохромные дисплеи использовались очень широко в производстве сотовых телефонов.
Компания Nokia выпустила огромное количество различных моделей, оснащенных таким экраном. Времена тех телефонов прошли, но дисплеи не исчезли с рынка и продолжают активно использоваться по настоящее время. Они оказались незаменимыми и, кроме того, дешевыми приборами для вывода текстовой и графической информации. Графические дисплеи работают за счет создания на экранах матриц точек, которые и высвечивают изображение. Они экономят ресурсы и время, при этом отображая большое количество информации и расходуя малое количество энергии. Существует огромное количество различных областей, где могут использоваться устройства Nokia 5110: фото-, видео-, телеаппаратуре, медицине, и во многих других отраслях.
Перед описанием порядка подключения дисплея Nokia к аппаратному модулю Arduino необходимо привести краткое представление данных устройств.
Преимущества и недостатки
Конечно же, как и любой другой мобильный телефон, Nokia 5110 имеет как достоинства, так и недостатки. Рассмотрим их.
Преимущества:
- Качество приема сигнала сотового оператора. Абонент остается на связи даже в тех местах, где другие телефоны уже не ловят сеть.
- Простота и удобство пользования. Для освоения меню и элементов управления достаточно нескольких минут.
- Качество и надежность. Телефон отлично переносит любые механические нагрузки.
- Длительный срок автономной работы.
- Программные сбои и зависания данной модели нехарактерны.
- Удобная клавиатура, крупный размер кнопок.
- Внушительный вес для некоторых пользователей может показаться недостатком, однако именно он позволяет всегда чувствовать телефон, что практически исключает вероятность потери аппарата.
- Русифицированное меню.
Недостатки:
- Ограниченный функционал. Использовать телефон можно только для осуществления звонков и отправления/приема сообщений.
- Нет возможности скачивать и устанавливать мелодии.
- Маленький черно-белый дисплей.
- Поддержка только одной сим-карты.
Дисплей Nokia 5110
Разобравшись с особенностями дизайна, можно переходить к описанию экрана. Конечно же, на такой старенький телефон финский производитель не мог поставить цветной дисплей, так как в 90-х годах это еще не практиковалось. Пользователям пришлось довольствоваться черно-белым. Тип дисплея – монохромный. Имеется яркая подсветка, благодаря которой информация хорошо читается даже в темноте. Разрешение экрана составляет 84 × 48 точек. На нем помещается 5 строк. Уровень яркости и контрастности достаточный для комфортного пользования. На солнце не блекнет.
На главном экране отображаются логотип компании (посередине), уровень сигнала (с левой стороны), состояние аккумуляторной батареи (справа) и обозначение клавиши меню (снизу).
Технические характеристики дисплея Nokia 5110
Перед подключением дисплея и программированием Arduino давайте рассмотрим общую информацию о нем.
Распиновка
Для подключения и передачи данных на дисплее используются два параллельных ряда 8 коннекторов. На задней части дисплея нанесены обозначения каждого пина.
Как уже было сказано, пины параллельно соединены между собой. Информация о назначении каждого коннектора приведена ниже.
Питание
Вы уже обратили внимание, что на LCD дисплее 5110 два коннектора для питания. Первый — самый важный — питание логики дисплея
В datasheet указано, что оно должно выбираться в диапазоне 2.7 — 3.3 В. В нормальном режиме работы дисплей будет потреблять от 6 до 7 мА.
Второй коннектор питания предназначен для подсветки дисплея. Если вы снимете сам дисплей с платы (это делать не обязательно, можно просто посмотреть на рисунок ниже), вы увидите, что подсветка реализована очень просто : четыре белых светодиода, которые расположены по углам платы
Обратите внимание, что токоограничивающих резисторов нет
Так что с питанием надо быть аккуратнее. Можно использовать токоограничивающий резистор при подключении пина ‘LED’ или использовать максимальное напряжение питания 3.3 В. Не забывайте, что светодиоды могут поглощать большие токи! Без ограничения, они потянут около 100 мА при напряжении питания 3.3 В.
Управляющий интерфейс
В дисплее встроен контроллер: Philips PCD8544, который преобразовывает массивный параллельный интерфейс в более удобный серийный. PCD8544 управляется помощью синхронным серийным протоколом, который подобен SPI
Обратите внимание, что есть пины счетчика времени (SCLK) и ввода серийных данных (DN), а также активный-low выбор чипа (SCE)
Выше рассмотренных серийных коннекторов установлен еще один коннектор – D/C, по которому поступает информация о том, могут ли быть отображены данные, которые передаются.
Скетч и библиотека для работы
После удачного подключения дисплея к «Ардуино» можно загружать скетч и пробовать выводить данные на экран. Содержание программы находится по этой ссылке cdn.sparkfun.com/tutorialimages/GraphicLCDNokia3310/nokia_5100_r03.zip.
Текст переносим в Arduino IDE и затем из него на плату. Основные события реализуются в теле функции lcdFunTime(). Код снабжен понятными комментариями, которые помогут быстро разобраться в нем.
Программа служит демонстрационным целям, отрабатывая простые анимации и графические примитивы:
-
отображает отдельные пиксели;
-
рисует линии, прямоугольники, круги, растровую картинку.
Скетч покажет данные, переданные с небольшой скоростью (9 600 бит/с) на экране. Точечное изображение 84х48 пикселей преобразуется в цифровой массив, далее встраиваемый в код программы и отправляемый на монитор LCD. В качестве основы следует взять любую графическую картинку указанного размера и преобразовать ее в монохромную, содержащую только 2 цвета. Это легко делается в любом графическом редакторе Windows.
Для преобразования файла в массив из 504 байт воспользуемся готовыми библиотечными программами, такими как LCD Assistant. Через меню File > Load Image открываем картинку, проверяем ее размер в точках, в свойствах Byte orientation указываем режим Vertical (вертикальная ориентация), а параметр Size endianness — в значении Little. Прочие поля остаются без изменений.
Библиотечная программа LCD Assistant.
Текстовый массив может располагаться где угодно. Далее заменяем в скетче setup() и loop() строками из нижеприведенного кода (другие переменные и функции оставляем без изменений).
// … текстовый массив изображения размещен выше
void setup()
{
lcdBegin(); // инициализация и очистка LCD и установка режима пинов
setContrast(60); // задает контрастность, значения в диапазоне от 40 до 60
setBitmap(flameBitmap); // вместо flameBitmap ставится имя созданного массива
updateDisplay(); // обновление экрана для вывода изображения
}
void loop()
{
}
// ниже располагаются функции для управления дисплеем и графикой
Изображения, импортированные в текстовые массивы и последовательно отображаемые с задержкой, создают эффект анимации.
Библиотеки для работы с Нокиа-5110
Библиотечные функции сокращают время разработки проекта. Модуль Adafruit_GFX_Library содержит полезные программы. Перед работой эту библиотеку нужно загрузить, распаковать в папку Libraries каталога Arduino IDE. Чтобы среда смогла «увидеть» библиотеку и работать с ней, потребуется перезапуск IDE. Если при компиляции скетча происходит конфликт с другой библиотекой, RobotControl, то последнюю желательно переместить в другую папку.
Работа с библиотеками
Для того, чтобы вывести необходимую информацию на экран устройства, нужно загрузить библиотеку. Оптимальным вариантом для работы с текстовой информацией будет программа LCD5110_Graph. Уже по названию можно определить, что данная библиотека создана специально для Nokia 5110. Также утилиту можно загрузить из Интернета. Она прилагается в виде архива. Разархивированный файл необходимо перенести в папку Libraries. После этого можно запускать программу. В раскрытом окне нужно выбрать «Файл», перевести курсор на «Примеры», потом выбрать нужный. На экране появится готовый код, который очень понятен пользователям и элементарен в использовании
Всю необходимую информацию можно прочитать и редактировать, однако важно не нарушать структуру кода. Различные функции библиотеки позволят расширить возможности работы с Nokia 5110
Для того, чтобы на дисплее отображались графические рисунки, их предварительно нужно нарисовать в графических программах, таких как Adobe Photoshop или Paint. После того как рисунок будет готов, его необходимо сохранить в формате BMP(Monochrome Bitmap). Далее с помощью библиотеки следует преобразовать рисунок в открытый код. После этих действий на экране появится изображение.
Рассмотренное подключение дисплея Nokia 5110 к Arduino поможет самостоятельно овладеть начальными навыками работы с графическими дисплеями и научиться программировать изображения при помощи разнообразных аппаратных модулей.
Дизайн
С чего же начать обзор телефона Nokia 5110? Конечно же, с описания его внешнего вида. Корпус легендарной модели выполнен из пластика. Имеет типичную форму, как для аппаратов того времени. Верхняя часть округлая, к низу плавно переходит в прямоугольник. На удивление, выглядит телефон не очень массивно. В высоту корпус достигает 132 мм, в ширину – 47,5 мм. А вот толщина этой модели рекордно большая – 31 мм. Молодежь даже не сможет представить, что их мобильный гаджет будет таким толстым. Ведь в настоящее время уже 10 мм считается недопустимым параметром.
Есть и еще один элемент, который сильно удивит подрастающее поколение. Речь идет об антенне. В этой модели она внешняя, довольно сильно выступает за верхний торец корпуса.
На лицевой панели находится небольшой дисплей, о котором поговорим чуточку позже. Над ним есть отверстие динамика. Расположено оно в углублении круглой формы. Рядом с ним (справа) выведена кнопка включения.
Под экраном находится клавиатура. Она состоит из панели управления и цифрового блока. Что касается первой, то расположение кнопок выглядит довольно оригинально: с левой стороны – клавиша сброса, с правой – стрелки, посередине – меню. Цифровой блок типичный. Он состоит из четырех горизонтальных рядов и трех вертикальных. Кнопки округлой формы, нажимаются легко.
Характеристики
Nokia 5110 оснащен одним слотом для сим-карты. Он расположен под аккумулятором. Формат карты сотового оператора – стандартный. Данная модель поддерживает русский язык. Для сохранения номеров абонентов предусмотрена телефонная книга, которая рассчитана на 100 записей. Меню очень удобное и простое. Пункты пролистываются стрелками вверх и вниз. Аппарат запоминает последние вызовы:
- непринятых – 8;
- входящих – 8;
- набранных – 10.
Для удобства набора номера можно воспользоваться опцией автодозвона. Громкость мелодии, звучащей во время звонка, регулируется. Всего предусмотрено 5 уровней. В телефоне уже установлены рингтоны (30 вариантов), изменять и удалять их нельзя. Для того чтобы не пропустить важный звонок, например, в довольно шумном месте, можно активировать режим «вибро». Владельцы этой модели утверждают, что он очень мощный. С помощью этого телефона можно отправлять SMS на русском и английском языке. Для развлечения предусмотрены три простеньких игры. Не обошлось и без органайзера. В нем объединены калькулятор, часы, календарь и будильник. Во время разговора с абонентом звуковой сигнал позволяет контролировать время. Имеется также и функция подсчета стоимости звонка.