Подключаем GLCD

Графические lcd дисплеи очень популярны, используются во многих проектах на микроконтроллерах. У них есть много плюсов: на них можно выводить графическую и текстовую информацию. Здесь я вам расскажу, как подключить подобный дисплей к Arduino. Я остановился на GLCD разрешением 128×64 и с контроллерами ks0108(на дисплеи их два, каждый берет на себя по половине).

Таблица подключения:

Arduino 168 Arduino Mega GLCD
5v 5v +5v
GND GND GND
Внешнее Внешнее Contrast in
8-pin 22-pin D0
9-pin 24-pin D1
10-pin 26-pin D2
11-pin 28-pin D3
4-pin 30-pin D4
5-pin 32-pin D5
6-pin 34-pin D6
7-pin 36-pin D7
Analog 0-pin 38-pin CSEL1
Analog 1-pin 40-pin CSEL2
Reset 42-pin Reset
Analog 2-pin 44-pin R_W
Analog 2-pin 46-pin D_I
Analog 4-pin 48-pin EN
Внешнее Внешнее Contrast out
Внешнее Внешнее Подсветка +5v
GND GND Подсветка GND

Контакты конкретного дисплея нужно смотреть в его datasheet. Как подключить контрастность, так же нужно смотреть в datasheet, есть некоторые нюансы. Например у моего дисплея AGM1264K-FL-GBH, схема подключения контрастности была такой:

Самая подходящая библиотека: GLCDV3. Как вы можете заметить, мой способ подключение немного отличается от официального. Я изменил конфигурацию портов Arduino Mega, так как подключать стандартным способом было очень не удобно; теперь используется один ряд разъема Arduino Mega. При желании вы можете легко изменить конфигурацию портов, файлы находятся в директории: \libraries\glcd\config. 💡 Вариант библиотеки этой статьи вы можете загрузить здесь.

Теперь загрузим тестовые скетчи:

1. Выводящий на экран текст:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <glcd.h>
#include "fonts/SystemFont5x7.h"
 
void setup(){
  GLCD.Init(); //Инициализируем библиотеку
  GLCD.ClearScreen(); //Очищаем Дисплей
  GLCD.SelectFont(System5x7); //Выбираем шрифт
  GLCD.GotoXY(10,10); //Идем на 10.10
  GLCD.print("Hello World!");
}
 
void loop() {
}

К сожалению, в библиотеке нет русского шрифта.

2. Рисующий bmp изображение:

1
2
3
4
5
6
7
8
9
10
11
12
#include <glcd.h>
#include "bitmaps/ArduinoIcon64x64.h"
 
void setup(){
  GLCD.Init(); //Инициализируем библиотеку
  GLCD.ClearScreen(); //Очищаем Дисплей
  GLCD.DrawBitmap(ArduinoIcon64x64, 32, BLACK); //Рисуем изображение
 
}
 
void loop() {
}

Чтобы создать bmp изображение для дисплея, нужно:

1 — Взять рисунок в котором как можно меньше цветов или уменьшить в редакторе до двух.
2 — Уменьшить его размер до 128×64 (максимум).
3 — Запустить программу, находящуюся в директории библиотеки: \libraries\glcd\bitmaps\utils\Java или \libraries\glcd\bitmaps\utils\glcdMakeBitmap.
4 — Переместить изображение в окно программы.
5 — Идем сюда \libraries\glcd\bitmaps. И видим наш файл. Например: image.h.
6 — В программе микроконтроллера изображение будет доступно так #include «bitmaps/(Название изображения).h

Кроме этих примеров также можно воспользоваться тестовыми программами GLCDdemo, GLCDdials, Life, Clockface.

Вот и все! 

Вы можите оставить комментарий, или поставить трэкбек со своего сайта.

2 комментария к “Подключаем GLCD”

  1. Paul:

    Error compiling!
    In file included from C:\arduino-1.0\libraries\glcd/include/gText.h:30,
    from C:\arduino-1.0\libraries\glcd/glcd.h:40,
    from sketch_dec08a.cpp:1:
    C:\arduino-1.0\libraries\glcd/include/Streaming.h:24:22: error: WProgram.h: No such file or directory
    In file included from C:\arduino-1.0\libraries\glcd/include/gText.h:30,
    from C:\arduino-1.0\libraries\glcd/glcd.h:40,
    from sketch_dec08a.cpp:1:
    C:\arduino-1.0\libraries\glcd/include/Streaming.h:30: error: expected initializer before ‘&’ token
    C:\arduino-1.0\libraries\glcd/include/Streaming.h:63: error: expected initializer before ‘&’ token
    C:\arduino-1.0\libraries\glcd/include/Streaming.h:67: error: expected initializer before ‘&’ token
    C:\arduino-1.0\libraries\glcd/include/Streaming.h:78: error: expected initializer before ‘&’ token
    In file included from C:\arduino-1.0\libraries\glcd/include/gText.h:31,
    from C:\arduino-1.0\libraries\glcd/glcd.h:40,
    from sketch_dec08a.cpp:1:
    C:\arduino-1.0\libraries\glcd/include/glcd_Device.h:85: error: conflicting return type specified for ‘virtual void glcd_Device::write(uint8_t)’
    C:\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding ‘virtual size_t Print::write(uint8_t)’

    Что это может быть??? ❓

    • Честно говоря, даже не знаю в чем проблема. Попробуйте поставить библиотеку на предыдущую «чистую» версию arduino IDE. Возможно библиотека не работает с новой версией arduino IDE. Либо конфликт с другими библиотеками.

Написать комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bug Report
Локализовано: шаблоны Wordpress