Программирование AVR Подключение OLED SSD1306 к ATmega32U4 Sun, September 23 2018  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Подключение OLED SSD1306 к ATmega32U4 Печать
Добавил(а) microsin   

В этой статье опубликован простой проект, созданный для тестирования подключения к микроконтроллеру AVR через I2C монохромного индикатора OLED 128x64 точки (SSD1306).

Для проверки программы использовалась макетная плата AVR-USB32U4 [1] с микроконтроллером ATmega32U4, однако проект можно легко перенести на любой AVR, у которого на борту есть аппаратный интерфейс I2C (по терминологии Atmel это интерфейс TWI).

Цоколевка индикатора OLED 128x64. При подключении питания к индикатору будьте особенно внимательны, так как разные версии индикатора, которые можно купить на Aliexpress [2] или на Ebay, имеют разную цоколевку.

SSD1306 I2C OLED pinout1 SSD1306 I2C OLED pinout2

Очень легко перепутать полярность питания, что может вывести индикатор из строя. Напряжение питания может быть любое в диапазоне от +3 до +5 вольт (подается на ножку VCC относительно GND).

Подключение к ATmega32U4. К микроконтроллеру индикатор подключается 2 сигналами: SCL (такты) и SDA (данные). Сигналы SCL и SDA должны подключаться к ножкам микроконтроллера PD0 и PD1 соответственно, см. рисунок:

AVR USB32U4 connect SSD1306

Использовался исходный код библиотек от Adafruit, предназначенных для Arduino. Библиотеки были основаны на классах C++, но я для собственного удобства перенес код на стандартный язык C.

При тестировании кода пришлось подбирать адрес подчиненного устройства I2C, который соответствовал моему индикатору. Значение адреса может быть разным: 0x3C, 0x3D, 0x78, 0x7A. В моем случае он оказался 0x78.

Исходный код проекта можно скачать по ссылке [3].

[Ссылки]

1Макетная плата AVR-USB32U4.
2. OLED I2C 128x64 site:aliexpress.com.
3. 180916SSD1306-test.zip - исходный код, документация.

 

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


Защитный код
Обновить

Top of Page