Проект 16: Графічний індикатор. Підключення дисплея Nokia 5110
В цьому експерименті ми розглянемо графічний дисплей Nokia 5110, який можна використовувати в проектах Arduino для виведення графічної інформації.
Необхідні компоненти:
- контролер Arduino UNO R3;
- плата для прототипування;
- графічний дисплей Nokia 5110;
- дроти тато-тато.
- фоторезистор;
- резистор 2 кОм.
Рідкокристалічний дисплей Nokia 5110 - монохромний дисплей з роздільною здатністю 84 × 48 на контролері PCD8544, призначений для виведення графічної і текстової інформації. живлення дисплея повинно лежати в межах 2.7-3.3 В (максимум 3.3 В, при подачі 5 В на вивід VCC дисплей може вийти з ладу). Але виводи контролера толерантні до +5 В, тому їх можна безпосередньо підключати до входів Arduino. Важливий момент - низьке споживання, що дозволяє живити дисплей від плати Arduino без зовнішнього джерела пітанія.Схема підключення Nokia 5110 до Arduino показана на рис. 16.1.

Рис. 16.1. Схема підключення Nokia 5110 до Arduino
Для роботи з дисплеєм Nokia 5110 використовуватимемо бібліотеку Adafruit_GFX, яка має багаті можливості для виведення графіки і тексту. У нашому експерименті ми будемо отримувати дані освітленості з фоторезистора, підключеного до аналогового входу Arduino A0, і виводити дані освітленості в числовому і графічному уявленнях. Схема підключення показана на рис. 16.2.

Рис. 16.2. Схема підключення Nokia 5110 і фоторезистора до Arduino
Код скетчу нашого експерименту показаний в лістингу 16.1. Ми зчитуємо дані з фоторезистора і відображаємо числове значення, а також в графічному вигляді (прогрес-бар) значення освітленості в процентах від максимального значення. Значення мінімальної та максимальної освітленості беремо з експерименту 13.
// Підключення бібліотеки
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
// PIN 7 - RST Pin 1 on LCD
// PIN 6 - CE Pin 2 on LCD
// PIN 5 - DC Pin 3 on LCD
// PIN 4 - DIN Pin 4 on LCD
// PIN 3 - CLK Pin 5 on LCD
Adafruit_PCD8544 display = Adafruit_PCD8544 (3, 4, 5, 6, 7);
const int LIGHT = A0; // Контакт A0 для входу фоторезистора
const int MIN_LIGHT = 200; // Нижній поріг освітленості
const int MAX_LIGHT = 900; // Верхній поріг освітленості
// Змінна для зберігання даних фоторезистора
int val1, val2 = 0;
void setup ()
{
display.begin ();
// встановити контраст фону екрану
// дуже важливий параметр!
display.setContrast (60);
display.clearDisplay (); // очистити екран
delay (2000);
}
void loop ()
{
val1 = analogRead (LIGHT); // Читання показань фоторезистора
drawText (val1,1); // вивести текст
// масштабування значення потенціометра до 0-75
val2 = map (val1, MIN_LIGHT, MAX_LIGHT, 0, 75);
// вивід чорного прямокутника в%
display.fillRect (5, 25, val2, 10, 1);
// вивід білої частини прямокутника
display.fillRect (5 + val2,25, 75-val2, 10, 0);
display.display ();
delay (1000); // пауза перед новим виміром
drawText (val1,2); // стерти текст
}
// процедура виведення тексту
void drawText (unsigned long num, int color)
{
display.setTextSize (2); // розмір шрифту
display.setCursor (20,5); // позиція курсору
if (color == 1)
display.setTextColor (BLACK); // вивести значення
else
display.setTextColor (WHITE); // стерти (білим по білому)
display.print (num);
}
Порядок підключення:
- Підключаємо датчик дисплея Nokia 5110 і фоторезистор за схемою на рис. 16.2.
- Завантажуємо в плату Arduino скетч з лістингу 16.1.
- Перекриваючи рукою потік світла, дивимося на екрані дисплея зміна показань освітленості.