Библиотека для работы с 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 Скачали 874 раз

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

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