GLCD

Скачать: http://code.google.com/archive/p/glcd-arduino/downloads

Это неофициальная библиотека Arduino, которая поддерживает графические ЖК-дисплеи (GLCD), в которых используется чип KS0108 (или эквивалентный).

Библиотека включает в себя примеры скетчей и файл readme.txt для объяснения основ добавления библиотеки, а также обширную документацию. 

Библиотека имеет следующие особенности:

Поддержка Arduino 1.x, поддержка плат Mega 2560, Sanguino и Teensy.

Более простое назначение контактов. Любой вывод может быть назначен любой функции GLCD.

Точная/последовательная отрисовка шрифтов любого размера в любом месте пикселя. Пользовательские текстовые области. Прокрутка текста вверх/вниз.

Пины могут быть дополнительно назначены портом AVR и битом вместо номера пина Arduino. Поддерживает шрифты фиксированной ширины, обеспечивающие отображение до 8 x 21 символа с помощью прилагаемого системного шрифта.

Метод CursorTo для позиционирования курсора в заданном месте шрифта (только шрифты фиксированной ширины). Функция DrawBitmap для отображения растровых изображений, хранящихся во флэш-памяти. Утилита обработки предоставляется в загрузке для преобразования монохромного файла растрового изображения в файл заголовка, который сохраняет изображение во флэш-памяти для использования методом DrwBitmap .

Изображение тестового скетча на плате max232 Freeduino с недорогой панелью GLCD.

Код здесь был преобразован в библиотеку Arduino, он обладает большей гибкостью в адресации портов и улучшением скорости ввода-вывода. Интерфейс был сделан более дружественным к Arduino и добавлены некоторые удобные функции. Именование метода в основном не изменяется, чтобы облегчить перенос кода, написанного для оригинальной версии. Некоторые методы теперь имеют аргументы по умолчанию, чтобы их было проще использовать.

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

Пример GLCD-скетча

#include   	// заголовок библиотеки
#include   	// определение шрифта для 14-точечного шрифта Arial.
#include "SystemFont5x7.h"  // системный шрифт
#include "ArduinoIcon.h"    // растровое изображение  
unsigned long startMillis;
unsigned int iter = 0;

void setup() {
  GLCD.Init(NON_INVERTED);   // инициализируем библиотеку
  GLCD.ClearScreen();  
  GLCD.DrawBitmap(ArduinoIcon, 32,0, BLACK); // рисуем растровое изображение в заданной позиции x, y
  delay(3000);
  GLCD.ClearScreen();
  GLCD.SelectFont(System5x7);       // выбираем системный шрифт фиксированной ширины 
}

void loop() { // выполняется снова и снова
	startMillis = millis();
	while( millis() - startMillis < 1000) { // цикл в течение одной секунды
		GLCD.DrawRect(0, 0, 64, 61, BLACK); // прямоугольник в левой части экрана
		GLCD.DrawRoundRect(68, 0, 58, 61, 5, BLACK);  // скругленный прямоугольник вокруг текстовой области   
			for(int i=0; i < 62; i += 4) {
		    GLCD.DrawLine(1,1,63,i, BLACK); // рисуем линии от левого верхнего до правого края прямоугольника  
		    GLCD.DrawCircle(32,31,30,BLACK);   // рисуем окружность с центром в левой части экрана   
		    GLCD.FillRect(92,40,16,16, WHITE); // очистить предыдущее положение  
		    GLCD.CursorTo(5,5);               // выводим текущую итерацию в текущей позиции курсора
		    GLCD.PrintNumber(++iter);  
    	}   
 	 } 
  	// отображаем количество итераций за одну секунду
	GLCD.ClearScreen();               // очищаем экран   
	GLCD.CursorTo(13,2);              // позиционный курсор  
	GLCD.Puts("FPS= ");               // выводим текстовую строку  
	GLCD.PrintNumber(iter);           // напечатать номер
 }

Список функций, поддерживаемых библиотекой

GLCD.Init() инициализировать библиотеку для нормального или инвертированного рисования.

GLCD.GotoXY(x, y) размещает графический курсор в позициях x и y, 0,0 - левый верхний угол.

GLCD.ClearScreen() - очищает ЖК-дисплей.

Функции графического рисования (цвет WHITE очищает пиксели, ЧЕРНЫЙ устанавливает пиксели)

GLCD.DrawCircle(x, y, радиус, цвет) рисует круг с центром в точке x, y

GLCD.DrawLine(x1, y1, x2, y2, color) draw линия от x1, y1 до x2, y2

GLCD.DrawVertLine(x, y, длина, цвет) рисует вертикальную линию

GLCD.DrawHoriLine(x, y, длина, цвет) рисует горизонтальную линию

GLCD.DrawRect(x, y, ширина, высота , цвет) нарисуйте прямоугольник

GLCD.DrawRoundRect(x, y, ширина, высота, радиус, цвет) , как указано выше, с закругленными краями

GLCD.FillRect(x, y, ширина, высота, цвет) нарисуйте заполненный прямоугольник

GLCD.InvertRect(x, y , ширина, высота) инвертировать пиксели в данном прямоугольнике

GLCD.SetInverted(инвертировать) установить режим рисования на инвертированный

GLCD.SetDot(x, y, цвет) нарисовать точку данного цвета в указанном месте

GLCD.DrawBitmap(bitmap, x, y, color) нарисовать растровое изображение в заданной позиции х, у

Функции шрифта

GLCD.SelectFont(font, color) выбирает шрифт, по умолчанию цвет становится черным, если не указан

GLCD.PutChar(символ) печатает данный символ на экране в текущей позиции курсора

GLCD.Puts(string) выводит данную строку на экран в текущей позиции курсора

GLCD.Puts_P(string) печатать строку из памяти программы на экране в текущей позиции курсора

GLCD.PrintNumber(число) вывести десятичное значение заданного числа в текущей позиции курсора

GLCD.CursorTo(x, y) основанных координат для шрифтов фиксированной ширины (т.е. предоставленный системный шрифт)

ВАЖНО: Соединения с модулем glcd должны быть припаяны. Соблазн протолкнуть провода или 20-контактный разъем в отверстия без пайки не создаст надлежащих электрических соединений.