Предисловие

В интернете много статьей про, про то как подключать к arduino экраны на базе контроллера hd44780. Но у меня оказался более дешёвый LCD от nokia5110, поэтому я решил поделиться тем как я его подключал.

Что потребуется

Подключаем LCD Nokia5110 (PCD8544) к arduino

  • arduino, у меня самая дешёвая arduino nano V3.0, покупал за 360р с кабелем
  • LCD на базе PCD8544, такие ставились в nokia 5110 и 3310. Покупал за 130р
  • 7 проводков или шлейф

LCD Экран

Имеет диагональ 1.6″. Синяя подсветка. Разрешение 84×48 точек. Размеры 45x45x5mm. Напряжение питания 2.7 — 3.3V
DataSheet Nokia5110.pdf

Подключение

Я использовал простой провод МГТФ, но лучше шлейф. Подключать согласно таблице. Внимание, на экране названия ножек могут быть без первой буквы.

Vcc +3.3V порт на arduino
Pin 2 (SCLK) Arduino цифровой порт D3
Pin 3 (SDIN/MOSI) Arduino цифровой порт D4
Pin 4 (D/C) Arduino цифровой порт D5
Pin 5 (SCE) Arduino цифровой порт D7
Bl подсветка На землю arduino
Gnd На землю arduino
Pin 8 (RST) Arduino цифровой порт D6

Программная часть

Для работы в текстовом режиме (так же есть библиотека для графического режима) вам потребуется библиотека pcd8544.
Для её подключения необходимо создать папку с любым именем (например pcd8544) в папке libraries. Узнать где расположена папка с библиотеками можно в arduino IDE в меню Файл-> Настройки.
Подключаем LCD Nokia5110 (PCD8544) к arduino
В итоге путь до библиотеки должен иметь вид C:/Users/user/Documents/Arduino/libraries/pcd8544/PCD8544.h

Пример работы с библиотекой

/* Начало - HelloWorld.ino */
#include  //Подключаем библиотеку для работы с lcd
// Самодельный символ - смайлик
static const byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 };
static PCD8544 lcd;
void setup() {
  // Задаём размеры экрана.
  lcd.begin(84, 48);
  // Добавляем самодельный символ в таблицу ASCII
  lcd.createChar(0, glyph);
  // Пишим в первую строку
  lcd.setCursor(0, 0);
  lcd.print("Hello, World!");
  // Переходим в вторую строку
  lcd.setCursor(0, 1);
  lcd.print("yakulibin.ru");
  lcd.write();
  lcd.write(0);  // Выводим смайлик
}

void loop() {
}
/* Конец - HelloWorld.ino */

Для создания самодельных символов есть онлайн кодировщик

Функции в библиотеке

Вообще в комплекте с библиотекой идут два примера HelloWorld.ino. Он показывает, как использовать основные функции в библиотеке. Существует также еще один пример Thermometer.ino который демонстрирует возможности растровой графики.

Пробежимся по основным функциям в библиотеке:

Инициализация дисплея, указываем ширину и высоту, модель
void begin(unsigned char width=84, unsigned char height=48, unsigned char model=CHIP_PCD8544);

Очистка экрана
void clear();

Очистка линии
void clearLine();

Включить выключить экран true или false
void setPower(bool on);

Включает экран после выключения функцией noDisplay()
void display();

Выключает экран, но сохраняет данные на нём, для показа после включения функцией
display()
void noDisplay();

Если True чёрные пиксели становятся белыми и наоборот.
void setInverse(bool inverse);

Возвращает курсор в 0,0
void home();

Устанавливает курсор в позицию
void setCursor(unsigned char column, unsigned char line);

Добавляет символ размерами (5×8) В ASCII таблицу (0-31)
void createChar(unsigned char chr, const unsigned char *glyph);

Выводит один символ на позицию курсора
void write(uint8_t chr);

Рисует изображена позиции курсора
void drawBitmap(const unsigned char *data, unsigned char columns, unsigned char lines);

Рисует элемент диаграммы
void drawColumn(unsigned char lines, unsigned char value);

Выполнено!

Полезная штука, этот arduino. Я уже написал простенький скетч для вывода на экран данных с com порта, можно выводить полезную информацию, вроде температуры ЦП.

Подключаем LCD Nokia5110 (PCD8544) к arduino
Подключаем LCD Nokia5110 (PCD8544) к arduino

Комментарии запрещены.

Навигация по записям