Table of Contents
OLED-дисплеи стали популярным выбором для проектов на базе Arduino благодаря своей компактности, низкому энергопотреблению и высокой контрастности. Эти дисплеи позволяют отображать текст, графику и даже анимацию, что делает их универсальным инструментом для визуализации данных. Одним из самых распространенных способов подключения OLED-дисплеев к Arduino является использование интерфейса I2C, который требует всего два провода для передачи данных.
OLED-дисплеи с поддержкой I2C часто имеют небольшой размер, что делает их идеальными для портативных устройств. Кроме того, их простота подключения и управления позволяет быстро интегрировать их в любые проекты на базе Arduino. Давайте разберемся, как это сделать шаг за шагом.
Подключение OLED-дисплея к Arduino через I2C
Для подключения OLED-дисплея к Arduino через интерфейс I2C потребуется четыре провода: два для питания (VCC и GND) и два для передачи данных (SDA и SCL). Дисплей подключается к соответствующим пинам на Arduino: SDA к A4, SCL к A5. Если используется плата с другими обозначениями, например, Arduino Nano, SDA и SCL могут быть выведены на отдельные контакты.
Перед началом работы убедитесь, что библиотека для работы с OLED-дисплеем установлена в среде Arduino IDE. Наиболее популярной является библиотека Adafruit SSD1306, которая поддерживает большинство OLED-дисплеев с разрешением 128×64 или 128×32 пикселей. Также потребуется библиотека Adafruit GFX для работы с графикой.
После подключения проводов и установки библиотек можно приступить к написанию кода. В начале скетча необходимо инициализировать дисплей, указав его адрес и размеры. Например, для дисплея 128×64 с адресом 0x3C код инициализации будет выглядеть так:
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
}
void loop() {
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Hello, World!");
display.display();
delay(1000);
display.clearDisplay();
}
Таким образом, OLED-дисплей готов к использованию. Интерфейс I2C позволяет легко подключать несколько устройств к одной шине, что делает его удобным для проектов с ограниченным количеством пинов.
Программирование управления экраном на Arduino
Для управления OLED-экраном через интерфейс I2C на Arduino необходимо использовать библиотеку, например, Adafruit_SSD1306. Эта библиотека упрощает взаимодействие с дисплеем, предоставляя готовые функции для отображения текста, графики и других элементов.
Настройка библиотеки и инициализация экрана
Сначала установите библиотеку через менеджер библиотек Arduino IDE. Затем подключите OLED-экран к Arduino, соблюдая распиновку: SDA к A4, SCL к A5 (для Arduino Uno). В коде инициализируйте экран, указав его размеры и адрес I2C:
#include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
В функции setup() выполните инициализацию:
void setup() {
if(!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.display();
}
Отображение информации на экране
void loop() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Hello, OLED!");
display.display();
delay(1000);
}
Для отображения графики используйте функции drawLine(), drawRect() или drawCircle(). После внесения изменений вызовите display.display(), чтобы обновить экран.








