LCD 128×64 - Arduino

LCD 128×64

Подключение монохромного дисплея 128×64 к Ардуино.







Схема подключения


В продаже встречаются два варианта дисплеев, со встроенным потенциометром     (крутилка для регулировки контраста) и без него.


На дисплее потенциометр выглядит вот так:




Маркировка контактов на дисплеях может различаться, но расположение одинаково для всех:

Vss или GND — GND.
Vdd или VCC — 5 вольт.
Vo — потенциометр.
D/I или IRS — пин 12 (ардуина).
R/W или IR/W — пин 11 (ардуина).
E или IE — пин 10 (ардуина).
CS1 или PSB — GND.
A или BLA — 3.3 вольта (подсветка дисплея).
K или BLK — GND (подсветка дисплея).

Пины ардуины можно использовать любые.



Схема подключения дисплея с встроенным потенциометром:





Схема подключения дисплея без встроенного потенциометра:



Потенциометр можно использовать любой от 2кОм до 20кОм.




Ардуина

Скачайте и установите библиотеку u8glib, и залейте в ардуину нижеприведённый скетч:


#include "U8glib.h"

U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // настройка пинов

int val = 2015;
char val_to_char[5]={0,};

void setup() 
{
  u8g.setFont(u8g_font_6x10); // Выбор шрифта
}


void loop() 
{
  sprintf(val_to_char, "%d",val); // функция sprintf переведёт число в строковый массив

  u8g.firstPage();
  
  do 
   {
     u8g.drawStr(2, 10, "istarik.ru"); // выведет надпись istarik.ru
     u8g.drawStr(2, 27, val_to_char); // выведет число 2015
   }
   
  while(u8g.nextPage()); 
}


Для выбора шрифта необходимо обратиться к файлу (из библиотеки) utility/u8g.h.

Находим блок /* font definitions */, копируем строку в кавычках и вставляем её в void setup().


...
/* font definitions */
extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_FONT_SECTION("u8g_font_m2icon_5");
extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_FONT_SECTION("u8g_font_m2icon_7");
extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_FONT_SECTION("u8g_font_m2icon_9");

extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_FONT_SECTION("u8g_font_u8glib_4");
extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_FONT_SECTION("u8g_font_u8glib_4r");

extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_FONT_SECTION("u8g_font_6x12_75r");
extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_FONT_SECTION("u8g_font_6x13_75r");
...




Координаты начала строки устанавливаются в функции u8g.drawStr(2, 10, «istarik.ru»);, первая цифра — отступ слева, вторая — отступ сверху.



Вот и всё )))


Вступайте в Telegram-группу Arduino


  • +185
  • 29325
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (5)

0
Спасибо! Очень полезный топик :)
0
Пожалуйста.
0
Подскажите, пожалуйста. У меня дисплей со встроенным потенциометром, но он не работает. Приходится ставить внешний. Для перевода моего дисплея в режим работы по последовательной шине надо было перепаять один резистор. Может и для встроенного потенциометра надо что-то перепаять?
0
К сожалению не подскажу, так как сам с этим не сталкивался. Посмотрите по дорожкам, может что-то прояснится.
0
В принципе, дисплеев два, попробовать можно и методом тыка.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.