| Ваш IP: 3.230.1.126 | Online(13) - гости: 10, боты: 3 | Загрузка сервера: 1.58 ::::::::::::

Графической дисплей 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

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

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

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

  • Радиомикрофон

    Схема радиомикрофона показана на рисунке. Радиомикрофон работает на частоте 87,9 МГц и представляет собой автогенератор с емкостной обратной связью и дополнительной емкостью С4 в индуктивной ветви (схема Клаппа). Дополнительная емкость необходима, во-первых, для развязки по постоянному току цепей питания и смещения. Во2вторых, она обеспечивает дополнительную степень свободы для получения оптимального …Подробнее...
  • HEF4051B — увеличение количества аналоговых входов Arduino

    HEF4051B — увеличение количества аналоговых входов Arduino

    ИМС HEF4051B (4051) представляет собой 8 канальный аналоговый CMOS мультиплексор/демультиплексор. HEF4051B можно применить для увеличения числа аналоговых входов Arduino, для этого будет задействован одни аналоговый вход и три цифровых входа Arduino. #include <HEF4051.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=748&download=1 HEF4051 hef(A0,2,3,4);// analog_input A0, D2,D3,D4 void setup() {  Serial.begin(9600); } void loop() {  for(byte i=0;i<8;i++){ …Подробнее...
  • Два простых УМЗЧ

    Два простых УМЗЧ

    Характеристики Номинальная чувствительность 0,35В Номинальная выходная мощность при нагрузке 4 Ом — 10Вт Диапазон воспроизводимых частот от 40 до 20000 Гц Скорость нарастания выходного напряжения 25В\мкс Коэф. нелинейных искажений по всем диапазоне 0,35% Напряжение питания 11…16В Первый каскад на VT1 работает в усилителе напряжения, а остальные VT2-VT5 образуют эмиттерный повторитель …Подробнее...
  • Однофазная мостовая схема выпрямления

    Однофазная мостовая схема выпрямления

    Схема мостового выпрямителя показана на рисунке а), которая состоит из двухобмоточного трансформатора, четырех диодов включенных по схеме моста и нагрузки выпрямителей Rн. К одной диагонали моста подключена вторичная обмотка трансформатора, к другой нагрузка. В схеме четыре диода соединены так, что напряжение вторичной обмотки трансформатора подается на нагрузку в течении одного …Подробнее...
  • Регулятор температуры воды

    Регулятор предназначен для регулировки температуры воды в аквариуме или в другой емкости в диапазоне 10-40°С. В основе уст-ва интегральный компаратор напряжения К553СА3. Эта микросхема имеет мощный выход, достаточный для подключения реле. Принцип действия схемы: На прямом входе (вывод3) компаратора создается образцовое напряжение при помощи делителя R1\R2. Это напряжение можно менять …Подробнее...