В этом уроке мы соединим плату Ардуино и экран Nokia 5110, а затем выведем на дисплей данные датчика DHT22.
Комплектующие
Мы собираемся связать ЖК-дисплей 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, с которым вы скорее всего знакомы.
Распиновка Nokia 5110
Выводы Nokia 5110 LCD выглядит следующим образом:
RST: пин сброса
SCE: пин выбора чипа
D/C: (Данные / Команда): это вывод выбора режима. LOW означает командный режим, а HIGH означает режим данных.
DN (Data Pin): последовательные данные на входе
SCLK: последовательный тактовый сигнал
VCC: входное напряжение от 2,7 до 3,3 В
Светодиод: этот светодиод является подсветкой. Входное напряжение 3,3 В
GND: земля
Пример №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);
Пример №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 8) и определили тип датчика 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 ");
На этом урок можно считать завершенным. Теперь вы вкратце понимаете как подключать дисплеи от Nokia к Arduino.
14 сентября 2020 в 01:05
Добрый день
Делаю всё по схеме, а на экране только точки в разнобой.
Что я делаю не так?
12 октября 2020 в 15:05
Авто статьи, вероятно, теоретик. На практике свои скетчи не проверяет.
Если в lcd1602 и подобных нужно задавать позицию знака, то здесь — позицию точки. При этом каждый знак по горизонтали занимает 5 точек. Т.е. для размещения знака на третьей позиции нужно ставить позицию
lcd.print(11, 0); и т.д.