LCD5110_Basic
описание библиотеки для использования в Arduino Nokia 5110 совместимых дисплеев на русском языке
Скачать: на официальном сайте зеркало
Определенные литералы:
Выравнивание
Используется совместно с print(),
printNumI() and printNumF()
LEFT: 0
RIGHT: 9999
CENTER: 9998
Встроенные шрифты:
SmallFont:
Размер символа: 6 х 8 пикселей
Количество символов: 95
MediumNumbers:
Размер символа: 12 х 16 пикселей
Количество символов: 13
BigNumbers:
Размер символа: 14 х 24 пикселей
Количество символов: 13
Функции:
LCD5110(SCK, MOSI, DC, RST, CS);
Инициализация библиотеки с указанием выводов (пинов) подключения к Arduino
Параметры:
SCK (CLK): Тактирующий вывод для последовательного интерфейса SPI
MOSI (Din): Вход данных последовательного интерфейса SPI
DC (DC): Вывод выбора режима ввода данных - Данные/Команды
RST (RST ): Вывод для перезагрузки контроллера дисплея
CS (CE): Состояние данного вывода разрешает или запрещает ввод данных в контроллер дисплея
Пример: LCD5110 myGLCD(3, 4, 5, 6, 7); // Инициализация библиотеки с указанием пинов подключения к Arduino
Примечания: В скобках подписаны выводы так же как они подписаны на дисплее.
InitLCD([contrast]);
Инициализация дисплея
Параметры:
contrast: <необязательный параметр>
Указание значения контраста дисплея (0-127)
По умолчанию 70
Пример: myGLCD.InitLCD(); // Инициализация дисплея
Примечания: Данная функция выполняет сброс и очистку дисплея.
setContrast(contrast);
Установка контрастности дисплея
Параметры:
contrast: Указание значения контраста дисплея (0-127)
Пример: myGLCD.setContrast(70); // Установка значения контраста, равным 70 (значение по умолчанию)
enableSleep();
Перевод дисплея в режим ожидания.
Параметры: нет
Пример: myGLCD.enableSleep(); // Перевод дисплея в режим ожидания
Примечания: Перевод дисплея в режим ожидания не отключает подсветку, т.к. подсветка управляется аппаратно.
disableSleep();
Вывод дисплея из режима ожидания
Параметры: нет
Пример: myGLCD.disableSleep(); // Вывод дисплея из режима ожидания
Примечания: При выходе из режима ожидания происходит очистка экрана. Выход из режима ожидания не включает подсветку, т.к. подсветка управляется аппаратно.
Инициализация библиотеки с указанием выводов (пинов) подключения к Arduino
Параметры:
SCK (CLK): Тактирующий вывод для последовательного интерфейса SPI
MOSI (Din): Вход данных последовательного интерфейса SPI
DC (DC): Вывод выбора режима ввода данных - Данные/Команды
RST (RST ): Вывод для перезагрузки контроллера дисплея
CS (CE): Состояние данного вывода разрешает или запрещает ввод данных в контроллер дисплея
Пример: LCD5110 myGLCD(3, 4, 5, 6, 7); // Инициализация библиотеки с указанием пинов подключения к Arduino
Примечания: В скобках подписаны выводы так же как они подписаны на дисплее.
InitLCD([contrast]);
Инициализация дисплея
Параметры:
contrast: <необязательный параметр>
Указание значения контраста дисплея (0-127)
По умолчанию 70
Пример: myGLCD.InitLCD(); // Инициализация дисплея
Примечания: Данная функция выполняет сброс и очистку дисплея.
setContrast(contrast);
Установка контрастности дисплея
Параметры:
contrast: Указание значения контраста дисплея (0-127)
Пример: myGLCD.setContrast(70); // Установка значения контраста, равным 70 (значение по умолчанию)
enableSleep();
Перевод дисплея в режим ожидания.
Параметры: нет
Пример: myGLCD.enableSleep(); // Перевод дисплея в режим ожидания
Примечания: Перевод дисплея в режим ожидания не отключает подсветку, т.к. подсветка управляется аппаратно.
disableSleep();
Вывод дисплея из режима ожидания
Параметры: нет
Пример: myGLCD.disableSleep(); // Вывод дисплея из режима ожидания
Примечания: При выходе из режима ожидания происходит очистка экрана. Выход из режима ожидания не включает подсветку, т.к. подсветка управляется аппаратно.
clrScr();
Очистка экрана
Параметры: нет
Пример: myGLCD.clrScr(); // Очистка экрана
clrRow(row[, start_x[, end_x]]);
Очистка части или всей строки
Параметры:
Row: Номер строки, начиная сверху (высотой 8 пикселей) для очистки (0-5)
start x: <необязательный параметр> Координаты с которых начинать очистку строки (по умолчанию 0)
end x: <необязательный параметр> Координаты на которых закончить очистку строки (по умолчанию 83)
Пример: myGLCD.clrRow(5, 42); // Очистить правую половину нижней строки
invert(mode);
Инвертировать изображение на экране
Параметры:
mode - true - инверсное изображение
false - нормальное изображение
Пример: myGLCD.invert(true); // Изображение на экране инвертное
print(st, x, y);
Распечатать строку в указанных координатах
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку на экране.
Параметры:
st: строка для печати
x: координата верхнего левого угла первого символа по горизонтали
y: координата верхнего левого угла первого символа по вертикали
Пример: myGLCD.print("Hello World",CENTER,0); // Печать строки "Hello World" по центру в верхней части экрана
Примечания: координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
Строка для печати может быть либо массив символов или строковый объект
printNumI(num, x, y[, length[, filler]]);
Распечатать целое число в указанных координатах.
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку с числом на экране.
Параметры:
num: Число для вывода на экран (от -2147483648 до 2147483647). Допускаются только ЦЕЛЫЕ числа
x: координата верхнего левого угла первой цифры/знака по горизонтали
y: координата верхнего левого угла первой цифры/знака по вертикали
length: <необязательный параметр> минимальное количество цифр / символов (включая знак) для отображения на экране
filler: <необязательный параметр> Символ для заполнения, чтобы получить минимальную длину.Символ будет вставлен перед номером, но после знака. Умолчанию '' " (пробел).
Пример: myGLCD.printNumI(num,CENTER,0); // Печать значения переменной "num" по центру в верхней части экрана
Примечания: координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
printNumF(num, dec, x, y[, divider[, length[, filler]]]);
Распечатать число с плавающей точкой в указанных координатах.
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку с числом на экране.
Параметры:
num: Число для вывода на экран
Dec: количество цифр после запятой (в дробной части) (допустимые значения 1-5). Число 0 не поддерживается, для этого используйте printNumI ()
x: координата верхнего левого угла первой цифры/знака по горизонтали
y: координата верхнего левого угла первой цифры/знака по вертикали
divider: <необязательный параметр> Одиночный символ для использования в качестве десятичной точки. По умолчанию '.'
length: <необязательный параметр> минимальное количество цифр / символов (включая знак) для отображения на экране
filler: <необязательный параметр> Символ для заполнения, чтобы получить минимальную длину.Символ будет вставлен перед номером, но после знака. Умолчанию '' " (пробел).
Пример: myGLCD.printNumF(num, 3, CENTER,0); // Печать значения переменной "num" с 3-мя знаками после запятой по центру в верхней части экрана
Примечания: Поддерживаемые диапазон зависит от количества цифр в дробной части.
Диапазон приблизительный +/- 2 * (10 в степени 9) - для десятичной системы.
Координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
setFont(fontname);
Выбор шрифта для использования совместно с Print(), printNumI() и printNumF()
Параметры:
fontname: Имя массива, содержащий шрифт, для использования
Пример: myGLCD.setFont(SmallFont); // Выбор шрифт под названием SmallFont
Примечания: Перед использованием необходимо объявить массив со шрифтом в качестве внешнего или включить его в свой скетч.
invertText(mode);
Инвертировать текст на экране
Параметры:
mode - true - инверсное изображение
false - нормальное изображение
Пример: myGLCD.invertText(true); // Изображение текста инвертное
Примечания: функция SetFont() отключает инвертный режим
drawBitmap (x, y, data, sx, sy);
Вывод растрового изображения на экран
Параметры:
x: координата верхнего левого угла растрового изображения по горизонтали
y: координата верхнего левого угла растрового изображения по вертикали
data: массив, содержащий растровые данные
sx: ширина растрового изображения в пикселях
sy: высота растрового изображения в пикселях
Пример: myGLCD.drawBitmap(0, 0, bitmap, 32, 32); // Рисуем 32x32 пикселей растрового изображения в верхнем левом углу
Дополнение:
Небольшой тестовый скетч, демонстрирующий работу библиотеки:
#include <LCD5110_Basic.h> //подключение библиотеки 5110 LCD
LCD5110 myGLCD(3, 4, 5, 6, 7); // Инициализация библиотеки с указанием пинов подключения к Arduino
extern uint8_t SmallFont[]; //объявление внешнего массива символов
extern uint8_t MediumNumbers[]; //объявление внешнего массива символов
extern uint8_t BigNumbers[]; //объявление внешнего массива символов
void setup() {
myGLCD.InitLCD(); // Инициализация дисплея
myGLCD.setContrast(70); // Установка значения контраста, равным 70 (значение по умолчанию)
}
void loop() {
myGLCD.clrScr();
myGLCD.setFont(SmallFont); // Выбор шрифт под названием SmallFont"
myGLCD.print("Text",CENTER,0); // Печать строки "Text" по центру в верхней части экрана
myGLCD.invertText(true); // Изображение текста инвертное
delay(2000); // задержка 2 с
myGLCD.print("invertText",CENTER,8); // Печать строки "invertText" по центру во второй строке от верха
myGLCD.invertText(false); // Изображение текста нормальное (неинвертное)
delay(2000); // задержка 2 с
myGLCD.setFont(MediumNumbers); // Выбор шрифт под названием MediumNumbers
myGLCD.printNumI(20,CENTER,16); // Печать значения числа "20" по центру в 3й строке
delay(2000); // задержка 2 с
myGLCD.clrScr(); \\ Очистка экрана
myGLCD.printNumF(12, 2, CENTER,0); // Печать числа "12" с 2-мя знаками после запятой по центру в верхней части экрана
delay(2000); // задержка 2 с
myGLCD.invert(true); // Изображение на экране инвертное
myGLCD.printNumF(12, 2, CENTER,0); // Печать значения числа "12" с 2-мя знаками после запятой по центру в верхней части экрана (инвертное)
delay(4000); // задержка 4 с
myGLCD.invert(false); // Изображение на экране неинвертное
myGLCD.enableSleep(); // Перевод дисплея в спящий режим
delay(4000); // задержка 4 с
myGLCD.disableSleep(); // Вывод дисплея со спящего режима
delay(2000); // задержка 2 с
}
Очистка экрана
Параметры: нет
Пример: myGLCD.clrScr(); // Очистка экрана
clrRow(row[, start_x[, end_x]]);
Очистка части или всей строки
Параметры:
Row: Номер строки, начиная сверху (высотой 8 пикселей) для очистки (0-5)
start x: <необязательный параметр> Координаты с которых начинать очистку строки (по умолчанию 0)
end x: <необязательный параметр> Координаты на которых закончить очистку строки (по умолчанию 83)
Пример: myGLCD.clrRow(5, 42); // Очистить правую половину нижней строки
invert(mode);
Инвертировать изображение на экране
Параметры:
mode - true - инверсное изображение
false - нормальное изображение
Пример: myGLCD.invert(true); // Изображение на экране инвертное
print(st, x, y);
Распечатать строку в указанных координатах
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку на экране.
Параметры:
st: строка для печати
x: координата верхнего левого угла первого символа по горизонтали
y: координата верхнего левого угла первого символа по вертикали
Пример: myGLCD.print("Hello World",CENTER,0); // Печать строки "Hello World" по центру в верхней части экрана
Примечания: координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
Строка для печати может быть либо массив символов или строковый объект
printNumI(num, x, y[, length[, filler]]);
Распечатать целое число в указанных координатах.
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку с числом на экране.
Параметры:
num: Число для вывода на экран (от -2147483648 до 2147483647). Допускаются только ЦЕЛЫЕ числа
x: координата верхнего левого угла первой цифры/знака по горизонтали
y: координата верхнего левого угла первой цифры/знака по вертикали
length: <необязательный параметр> минимальное количество цифр / символов (включая знак) для отображения на экране
filler: <необязательный параметр> Символ для заполнения, чтобы получить минимальную длину.Символ будет вставлен перед номером, но после знака. Умолчанию '' " (пробел).
Пример: myGLCD.printNumI(num,CENTER,0); // Печать значения переменной "num" по центру в верхней части экрана
Примечания: координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
printNumF(num, dec, x, y[, divider[, length[, filler]]]);
Распечатать число с плавающей точкой в указанных координатах.
Можно использовать как литералы LEFT, CENTER и RIGHT, так и числовые координаты, чтобы выровнять строку с числом на экране.
Параметры:
num: Число для вывода на экран
Dec: количество цифр после запятой (в дробной части) (допустимые значения 1-5). Число 0 не поддерживается, для этого используйте printNumI ()
x: координата верхнего левого угла первой цифры/знака по горизонтали
y: координата верхнего левого угла первой цифры/знака по вертикали
divider: <необязательный параметр> Одиночный символ для использования в качестве десятичной точки. По умолчанию '.'
length: <необязательный параметр> минимальное количество цифр / символов (включая знак) для отображения на экране
filler: <необязательный параметр> Символ для заполнения, чтобы получить минимальную длину.Символ будет вставлен перед номером, но после знака. Умолчанию '' " (пробел).
Пример: myGLCD.printNumF(num, 3, CENTER,0); // Печать значения переменной "num" с 3-мя знаками после запятой по центру в верхней части экрана
Примечания: Поддерживаемые диапазон зависит от количества цифр в дробной части.
Диапазон приблизительный +/- 2 * (10 в степени 9) - для десятичной системы.
Координата по вертикали должна быть кратной 8-ми пикселям. Только 0, 8, 16, 24, 32 и 40 могут быть использованы в качестве координат по вертикали.
setFont(fontname);
Выбор шрифта для использования совместно с Print(), printNumI() и printNumF()
Параметры:
fontname: Имя массива, содержащий шрифт, для использования
Пример: myGLCD.setFont(SmallFont); // Выбор шрифт под названием SmallFont
Примечания: Перед использованием необходимо объявить массив со шрифтом в качестве внешнего или включить его в свой скетч.
invertText(mode);
Инвертировать текст на экране
Параметры:
mode - true - инверсное изображение
false - нормальное изображение
Пример: myGLCD.invertText(true); // Изображение текста инвертное
Примечания: функция SetFont() отключает инвертный режим
drawBitmap (x, y, data, sx, sy);
Вывод растрового изображения на экран
Параметры:
x: координата верхнего левого угла растрового изображения по горизонтали
y: координата верхнего левого угла растрового изображения по вертикали
data: массив, содержащий растровые данные
sx: ширина растрового изображения в пикселях
sy: высота растрового изображения в пикселях
Пример: myGLCD.drawBitmap(0, 0, bitmap, 32, 32); // Рисуем 32x32 пикселей растрового изображения в верхнем левом углу
Дополнение:
Небольшой тестовый скетч, демонстрирующий работу библиотеки:
#include <LCD5110_Basic.h> //подключение библиотеки 5110 LCD
LCD5110 myGLCD(3, 4, 5, 6, 7); // Инициализация библиотеки с указанием пинов подключения к Arduino
extern uint8_t SmallFont[]; //объявление внешнего массива символов
extern uint8_t MediumNumbers[]; //объявление внешнего массива символов
extern uint8_t BigNumbers[]; //объявление внешнего массива символов
void setup() {
myGLCD.InitLCD(); // Инициализация дисплея
myGLCD.setContrast(70); // Установка значения контраста, равным 70 (значение по умолчанию)
}
void loop() {
myGLCD.clrScr();
myGLCD.setFont(SmallFont); // Выбор шрифт под названием SmallFont"
myGLCD.print("Text",CENTER,0); // Печать строки "Text" по центру в верхней части экрана
myGLCD.invertText(true); // Изображение текста инвертное
delay(2000); // задержка 2 с
myGLCD.print("invertText",CENTER,8); // Печать строки "invertText" по центру во второй строке от верха
myGLCD.invertText(false); // Изображение текста нормальное (неинвертное)
delay(2000); // задержка 2 с
myGLCD.setFont(MediumNumbers); // Выбор шрифт под названием MediumNumbers
myGLCD.printNumI(20,CENTER,16); // Печать значения числа "20" по центру в 3й строке
delay(2000); // задержка 2 с
myGLCD.clrScr(); \\ Очистка экрана
myGLCD.printNumF(12, 2, CENTER,0); // Печать числа "12" с 2-мя знаками после запятой по центру в верхней части экрана
delay(2000); // задержка 2 с
myGLCD.invert(true); // Изображение на экране инвертное
myGLCD.printNumF(12, 2, CENTER,0); // Печать значения числа "12" с 2-мя знаками после запятой по центру в верхней части экрана (инвертное)
delay(4000); // задержка 4 с
myGLCD.invert(false); // Изображение на экране неинвертное
myGLCD.enableSleep(); // Перевод дисплея в спящий режим
delay(4000); // задержка 4 с
myGLCD.disableSleep(); // Вывод дисплея со спящего режима
delay(2000); // задержка 2 с
}
Upd 01.05.2022:Выложил файлы в первых комментариях к данной статье на нашем телеграмм канале. Не забудьте подписаться на канал!
Комментариев нет:
Отправить комментарий