Проект 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.

Arduino проект www.arduino-kit.ru
Рис. 16.1. Схема подключения Nokia 5110 к Arduino

Для работы с дисплеем Nokia 5110 будем использовать библиотеку Adafruit_GFX, которая имеет богатые возможности для вывода графики и текста. В нашем эксперименте мы будем получать данные освещенности с фоторезистора, подключенного к аналоговому входу Arduino A0, и выводить данные освещенности в числовом и графическом представлениях. Схема подключения показана на рис. 16.2.

Подключение дисплея Nokia 5110
Рис. 16.2. Схема подключения Nokia 5110 и фоторезистора к Arduino

Код скетча нашего эксперимента показан в листинге 16.1. Мы считываем данные с фоторезистора и отображаем числовое значение, а также в графическом виде (прогресс-бар) значение освещенности в процентах от максимального значения. Значения минимальной и максимальной освещенности берем из эксперимента 13.

// Подключение библиотеки
#include
#include
// 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);
}

Порядок подключения:

1. Подключаем датчик дисплея Nokia 5110 и фоторезистор по схеме на рис. 16.2.
2. Загружаем в плату Arduino скетч из листинга 16.1.
3. Перекрывая рукой поток света, смотрим на экране дисплея изменение показаний освещенности.

Листинги программ скачать

 

Вверх