Arduino:Примеры/Гайд по использованию LCD-дисплея Nokia 5110 вместе с Arduino

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Гайд по использованию LCD-дисплея Nokia 5110 вместе с Arduino[1]

Эта статья рассказывает о том, как использовать LCD-дисплей от телефона Nokia 5110 вместе с платой Arduino. Вначале я опишу сам дисплей и его характеристики, а затем расскажу, как собрать проект, в котором этот дисплей используется, чтобы показать фразу «Hello, World!»

Описание

LCD-дисплей Nokia 5110 очень популярен среди тех, кто увлекается проектами на базе Arduino. Он используется, как правило, в проектах, где нужен графический интерфейс или отображение информации.

Кроме того, модули с этим дисплеем стоят очень недорого и совместимы с любым микроконтроллером.

Характеристики

  • Размеры LCD-матрицы: 84 на 48 точек (вмещает 4 строчки символов)
  • Цена: 2-3 доллара
  • Напряжение: 3,3 вольта
  • Размер модуля: 45,2 на 43,1 мм
  • Модель: Nokia 5110
  • Контроллер: PCD8544

Необходимые компоненты

  • Одна плата Arduino
  • Один LCD-дисплей Nokia 5110
  • Один потенциометр
  • Четыре резистора на 10 кОм
  • Один резистор на 1 кОм
  • Один резистор на 330 Ом
  • Макетная плата

Библиотека

Для этого проекта нам понадобится библиотека «PCD8544». Чтобы установить ее в IDE Arduino, проделайте следующее:

  1. Загрузите отсюда ZIP-архив с библиотекой
  2. Откройте IDE Arduino
  3. Кликните в IDE Arduino на Скетч > Подключить библиотеку > Добавить .ZIP библиотеку... (Sketch > Include Library > Add .ZIP Library...), затем выберите скачанный ZIP-архив и нажмите «Open»

Распиновка

  • RST – сброс
  • CE – выбор чипа
  • D/C – переключение между отправкой данных и отправкой команд
  • DIN – входной контакт для последовательных данных
  • CLK – тактовый сигнал
  • VCC – 3,3 вольта
  • LIGHT – управление подсветкой
  • GND – заземление

Схема

LCD-дисплей Nokia 5110 работает на 3,3 вольтах. То есть вы не можете напрямую подключить к нему цифровые контакты Arduino Uno. О том, как переключить 5-вольтовую логику на 3,3-вольтовую, читайте тут.

Чтобы защитить 3,3-вольтовые контакты от перенапряжения, я подключил к ним резисторы. Впрочем, при работе с этим дисплеем для переключения вольтовой логики лучше воспользоваться специальным устройством – преобразователем логического уровня.

Загрузка скетча

После установки библиотеки «PCD8544» нужный скетч уже будет в самой IDE Arduino. Чтобы открыть его, кликните на Файл > Примеры > PCD8544 > HelloWorld (File > Examples > PCD8544 > HelloWorld).

/*
 * Интерфейс с LCD-дисплеем на базе Philips PCD8544
 * или другим совместимым дисплеем
 *
 * Копирайт (c) 2010
 * Карлос Родригес (Carlos Rodrigues), <cefrodrigues@gmail.com> 
 *
 * Чтобы использовать этот скетч, подключите восемь контактов 
 * LCD-дисплея к Arduino следующим образом:
 *
 * Контакт 1 на LCD-дисплее -> к контакту +3.3V на Arduino 
 * Контакт 2 -> к цифровому контакту 3
 * Контакт 3 -> к цифровому контакту 4
 * Контакт 4 -> к цифровому контакту 5
 * Контакт 5 -> к цифровому контакту 7
 * Контакт 6 -> к контакту GND
 * Контакт 7 -> к конденсатору на 10 мкФ -> к контакту GND
 * Контакт 8 -> к цифровому контакту 6
 *
 * Поскольку LCD-дисплей – это 3,3-вольтовое устройство, 
 * чтобы подключить его к цифровым контактам Arduino, 
 * понадобятся дополнительные компоненты. Но эти компоненты не нужны, 
 * если вы используете 3,3-вольтовую версию Arduino 
 * вроде Arduino Pro от Sparkfun.
 */

#include <PCD8544.h>

// массив для нестандартного символа (для смайлика)...
static const byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 };

static PCD8544 lcd;

void setup() {
  // дисплеи, совместимые с PCD8544, могут быть разного разрешения...
  lcd.begin(84, 48);

  // ставим смайлик на позицию «0» в таблице ASCII: 
  lcd.createChar(0, glyph);
}

void loop() {
  // переменная для счетчика (чтобы показать, 
  // что программа продолжает работать):
  static int counter = 0;

  // пишем в первой строке фразу «Hello, World!»: 
  lcd.setCursor(0, 0);
  lcd.print("Hello, World!");  //  "Привет, мир!"

  // пишем во второй стоке значение из счетчика: 
  lcd.setCursor(0, 1);
  lcd.print(counter, DEC);
  lcd.write(' ');
  lcd.write(0);  // вставляем смайлик

  // при помощи потенциометра меняем контраст LCD-дисплея:
  // short level = map(analogRead(A0), 0, 1023, 0, 127);
  // lcd.setContrast(level);

  delay(200);
  counter++;
}

Демонстрация

Загрузив скетч, вы должны увидеть на LCD-дисплее фразу «Hello, World!»

См.также

Внешние ссылки