| Ваш IP: 3.236.132.132 | Online(36) - гости: 24, боты: 12 | Загрузка сервера: 0.59 ::::::::::::

Графической дисплей WG12864B-TML-T (Arduino)

Графический дисплей WG12864B-TML-T (G12864B REV.J) представляет собой ЖК-матрицу с разрешением в 128  на 64 точек, предназначен для вывода графической и текстовой информации. Контроллер дисплея ks0108, который  имеет восьми битовый интерфейс.

Вывод Обозначение Назначение
1 Vcc Напряжение питания (5V))
2 GND Общий вывод (0V
3 V0 Вход питания ЖК панели
4 DB0 Шина данных (младший бит)
5 DB1 Шина данных 1-й разряд
6 DB2 Шина данных 2-й разряд
7 DB3 Шина данных 3-й разряд
8 DB4 Шина данных 4-й разряд
9 DB5 Шина данных 5-й разряд
10 DB6 Шина данных 6-й разряд
11 DB7 Шина данных (старший бит)
12 E1 Выбор первого кристалла
13 E2 Выбор второго кристалла
14 RES Сигнал начальной установки
15 R/W Чтение / Запись
16 A0 Выбор: Команды/ Данные
17 E Стробирование данных
18 VEE Выход DC-DC преобразователя
19 A + Питание подсветки
20 K — Питание подсветки

Основное напряжение питания +5 В, дополнительное 3,3 В используется для подсветки дисплея. Вход регулятора контрастности Vo должен быть подключен к выходу источника отрицательного напряжения Vee через подстроечный резистор номиналом 10 кОм.

При работе с дисплее можно использовать библиотеку U8glib , в папке библиотеки много различных примеров скетчей.

#include <U8glib.h> // https://rcl-radio.ru/wp-content/uploads/2020/07/1482331381-5722.zip
#include "rus6x10.h" // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=717&download=1
 
 U8GLIB_KS0108_128 u8g(12, 11, 10,  9,  8,  7,  6,  5,   14,  3,  4,   13, 2);     
                     //D0, D1, D2,  D3, D4, D5, D6, D7,  E,   CS1,CS2, DI, RW
 
void draw() {
  u8g.setRot180();
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(15, 12, "RCL-RADIO.RU");
  u8g.drawLine(0, 15, 128, 15);
  u8g.setFont(u8g_font_6x12);
  u8g.drawStr(35, 25, "MT-12864J");
  //u8g.setPrintPos( 0, 50); u8g.print("MT-12864J");
  u8g.setColorIndex(1);           
  u8g.drawBox(0, 35, 128, 20);
  u8g.setFont(u8g_font_unifont);
  u8g.setColorIndex(0);
  u8g.drawStr(35, 50, "ARDUINO");
  u8g.setColorIndex(1); 
  u8g.setFont(rus6x10);
  u8g.drawStr(45, 64, "ПРИВЕТ");
}
 
void setup() {
}
 
void loop() {
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
}

Для поддержки русского шрифта скачайте архив шрифта и распакуйте его в папку со скетчем.

Ниже показан пример создания простых часов, время и дата выводятся на дисплей WG12864B-TML-T, дополнительно используется модуль часов реального времени DS3231. Время устанавливается по времени компиляции.

#include <U8glib.h> // https://rcl-radio.ru/wp-content/uploads/2020/07/1482331381-5722.zip 
#include "rus6x10.h" // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=717&download=1
#include "digits32.h" // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=718&download=1
#include <Wire.h>
#include <DS3231.h>//https://github.com/jarzebski/Arduino-DS3231/archive/master.zip // DS3231.zip
 DS3231 clock;RTCDateTime DateTime;
 U8GLIB_KS0108_128 u8g(12, 11, 10,  9,  8,  7,  6,  5,   14,  3,  4,   13, 2);     
                     //D0, D1, D2,  D3, D4, D5, D6, D7,  E,   CS1,CS2, DI, RW
 char * mes[12]{"ЯНВАРЯ","ФЕВРАЛЯ","МАРТА","АПРЕЛЯ","МАЯ","ИЮНЯ","ИЮЛЯ","АВГУСТА","СЕНТЯБРЯ","ОКТЯБРЯ","НОЯБРЯ","ДЕКАБРЯ"};   
 char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"};                 
 
void draw() {
  u8g.setRot180();
  u8g.setFont(rus6x10);
  u8g.setPrintPos( 10, 10);  u8g.print(DateTime.day);
  u8g.drawStr(26, 10, mes[DateTime.month-1]);
  u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
  u8g.setFont(digits32);
  if(DateTime.hour/10==1){u8g.setPrintPos( 15, 47); u8g.print(DateTime.hour / 10);}else{u8g.setPrintPos( 1, 47);  u8g.print(DateTime.hour / 10);}
  if(DateTime.hour%10==1){u8g.setPrintPos( 34, 47); u8g.print(DateTime.hour % 10);}else{u8g.setPrintPos( 20, 47); u8g.print(DateTime.hour % 10);}
  u8g.setPrintPos( 39, 47); u8g.print(":");
  if(DateTime.minute/10==1){u8g.setPrintPos( 59, 47); u8g.print(DateTime.minute / 10);}else{u8g.setPrintPos( 45, 47); u8g.print(DateTime.minute / 10);}
  if(DateTime.minute%10==1){u8g.setPrintPos( 78, 47); u8g.print(DateTime.minute % 10);}else{u8g.setPrintPos( 64, 47); u8g.print(DateTime.minute % 10);}
  u8g.setPrintPos( 83, 47); u8g.print(":");
  if(DateTime.second/10==1){u8g.setPrintPos( 103, 47); u8g.print(DateTime.second / 10);}else{u8g.setPrintPos( 89, 47); u8g.print(DateTime.second / 10);}
  if(DateTime.second%10==1){u8g.setPrintPos( 122, 47); u8g.print(DateTime.second % 10);}else{u8g.setPrintPos( 108, 47); u8g.print(DateTime.second % 10);}
 // u8g.drawLine(0, 15, 128, 15);
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(20, 60, "TEMP");
  u8g.setPrintPos( 60, 60);  u8g.print(clock.readTemperature(),1);
  u8g.drawStr(100, 60, "C");
 
}
 
void setup() {
  Wire.begin(); 
  clock.begin();
  // clock.setDateTime(__DATE__, __TIME__); // установка времени по времени компиляции
}
 
void loop() {
   DateTime=clock.getDateTime();
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
}

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=184

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Удвоитель напряжения на микросхеме NE555

    Описание. Схема простейшего удвоителя напряжения использованием микросхемы NE555 показана на рисунке. Здесь IC NE555 подключен в схеме как нестабильный мультивибратор с частотой генерации около 9KHz. Базы двух транзисторов (Q1 и Q2) подключены напрямую к выходу мультивибратора (контакт 3). При выходе сигнала из мультивибратора в первый момент Q1 будет OFF и …Подробнее...
  • Преобразователь =12В\ 220В

    Преобразователь =12В\ 220В

    Схема преобразователя состоит из 3-х узлов: задающего мультивибратора, двухтактного транзисторного ключевого усилителя и повышающего трансформатора. Мультивибратор выполнен на микросхеме D1(D1.1  D1.2). Его частота зависит от R1 C1. На выходе мультивибратора включен инвертор на D1.4 который создает противофазные сигналы поступающие на базы VT1 VT2. Затем следует двухтактный усилитель на VT3 VT4 …Подробнее...
  • Термопары

    Термопары

    Термопара (термоэлектрический преобразователь) — устройство, применяемое для измерения температуры в промышленности, научных исследованиях, медицине, в системах автоматики. Принцип действия основан на эффекте Зеебека или, иначе, термоэлектрическом эффекте. Между соединёнными проводниками имеется контактная разность потенциалов; если стыки связанных в кольцо проводников находятся при одинаковой температуре, сумма таких разностей потенциалов равна нулю. …Подробнее...
  • TDA7499 — УМЗЧ 2х6 Вт

    TDA7499 — УМЗЧ 2х6 Вт

    TDA7499 — усилитель мощности звуковой частоты (класс АВ), с выходной мощность 6 Вт на канал (стерео). Усилитель относиться к классу Hi-Fi аппаратуры. В усилителе имеются функции STANDBY и MUTE, беззвучное включение и выключение (отсутствие щелчков), защита выхода от КЗ на землю, тепловая защита и защита от перегрузки. ИМС TDA7499 может …Подробнее...
  • Логический пробник для ТТЛ и ТТЛШ

    Схема отличается высокой точностью и возможностью контроля логических уровней «1» и «0», К3 и «Не определено». При неподключенном входе пробника светится светодиод «Не определено». Резисторы R1.R4 желательно применить с допуском 1%. ОУ любые, со своими частотными коррекциями, важно только, чтобы выходной ток был не менее 15 мА и Rвх не …Подробнее...