Подключение OLED SSD1306 к ATmega32U4 |
Добавил(а) microsin | ||
В этой статье опубликован простой проект, созданный для тестирования подключения к микроконтроллеру AVR через I2C монохромного индикатора OLED 128x64 точки (SSD1306). Для проверки программы использовалась макетная плата AVR-USB32U4 [1] с микроконтроллером ATmega32U4, однако проект можно легко перенести на любой AVR, у которого на борту есть аппаратный интерфейс I2C (по терминологии Atmel это интерфейс TWI). Цоколевка индикатора OLED 128x64. При подключении питания к индикатору будьте особенно внимательны, так как разные версии индикатора, которые можно купить на Aliexpress [2] или на Ebay, имеют разную цоколевку.
Очень легко перепутать полярность питания, что может вывести индикатор из строя. Напряжение питания может быть любое в диапазоне от +3 до +5 вольт (подается на ножку VCC относительно GND). Подключение к ATmega32U4. К микроконтроллеру индикатор подключается 2 сигналами: SCL (такты) и SDA (данные). Сигналы SCL и SDA должны подключаться к ножкам микроконтроллера PD0 и PD1 соответственно, см. рисунок: Использовался исходный код библиотек от Adafruit, предназначенных для Arduino. Библиотеки были основаны на классах C++, но я для собственного удобства перенес код на стандартный язык C. При тестировании кода пришлось подбирать адрес подчиненного устройства I2C, который соответствовал моему индикатору. Значение адреса может быть разным: 0x3C, 0x3D, 0x78, 0x7A. В моем случае он оказался 0x78. Исходный код проекта можно скачать по ссылке [3]. [Ссылки] 1. Макетная плата AVR-USB32U4. |