Библиотека для работы с OLED дисплеем SSD1306 для CodeVisionAVR

С НОВЫМ ГОДОМ дорогие читатели! В новом году хочу начать со статьи в которой приведу библиотеку для работы с OLED дисплеем SSD1306 для CodeVisionAVR.

LED_SSD1306 (2)

Давно хотел написать статью и выложить библиотеку, но все никак руки не доходили да и библиотеку хотелось «допилить», но как известно предела фантазий нет, поэтому выложу что уже есть). Библиотека довольна сырая, собрана из разных примеров по ардуине и портирована в среду CVAVR, но думаю, хорошему программисту не составит труда «допилить» её под себя.

Схема включения дисплея по интерфейсу I2C.

ssd

Мне в руки попал дисплей с интерфейсом I2C — очень удобный, для подключения надо всего лишь пару проводов.

Даташит на данный контроллер можно скачать здесь OLED SSD1306.

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

Примеры можно видеть на фото:

LED_SSD1306 (4)

На фото ниже показан режим инвертирования дисплея.

LED_SSD1306 (1)

LED_SSD1306 (3)

Функции реализованные в библиотеке.

void LCD_init(void);  //начальная инициализация дисплея
void LCD_Commmand(unsigned char ControByte, unsigned char DataByte); //команды дисплею или данные
void LCD_Goto(unsigned char x, unsigned char y);    //установить координаты
void LCD_Goto2X(unsigned char x, unsigned char y); //установить координаты умноженые на 2
void LCD_Clear(void);  //очистка всего дисплея
void LCD_Contrast(char set_contrast); //настройка контраста от 0 до 255
void LCD_BigNum(unsigned char num);  //вывод больших цифр
void LCD_Char(unsigned int c);  //вывод символа
void LCD_CharBig(unsigned int c); // вывод крупных символов
void LCD_Printf(unsigned char* buf, unsigned char size); //печатает строку с размерами - 0 самый мелкий 2 - увеличиный - 3 самый большой(только для цифр)
void LCD_DrawImage(unsigned char num_image); //выводит картинку из флеш
void LCD_Bat(unsigned char y,unsigned char x, unsigned char z);   //рисует батарейку по координатам z - от 0 до 10 делений
void LCD_Mode(char set_mode); //1 - inverted / 0 - normal
void LCD_Sleep(char set);   //1 - on sleep / 0 - off sleep

Ну пока все, не люблю долго сопли развозить и пичкать вас нудным текстом не стоит.))

Собственно библиотека прокоментирована, так что вопросов возникнуть не должно.

В архиве так же есть пример использования.
Скачать библиотеку для работы с OLED дисплеем SSD1306 для CodeVisionAVR Скачали 5560 раз

Библиотека для работы с OLED дисплеем SSD1306 для CodeVisionAVR: 25 комментариев

  1. Спасибо! Программист я ни какой, но под SH1106 я Вашу либу я для себя заточу. Всё расписано очень понятно. Долго копал, но такие как datagor.ru либо денег просят за чужой труд, либо для меня непонятно (мне под 60). Ещё раз спасибо!
    Кстати. Без каких либо доработок (только порт и пины свои указать надо, опять же если отличаются) заработало с SH1106 .

  2. Подскажите как использовать эту библиотеку для дисплея 128×32?Что нужно поменять?

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *