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(); // Вывод дисплея из режима ожидания Примечания: При выходе из режима ожидания происходит очистка экрана. Выход из режима ожидания не включает подсветку, т.к. подсветка управляется аппаратно. 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 //подключение библиотеки 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:Выложил файлы в первых комментариях к данной статье на нашем телеграмм канале. Не забудьте подписаться на канал!