- 2. Характеристики
- 3 Рейтинг
- 4. Функциональный обзор
- 10. Эксплуатация устройства
 
 
- Библиотеки
 
 
 
- Операторы- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
 
- Данные- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
 
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
 
 
- Функции
 
 
- Устройства- Датчики
- SSD1306
 
- Модули
 
SSD1306
 SSD1306 — это популярная однокристальная микросхема-контроллер для управления OLED-дисплеями, которые используют технологию органических светодиодов (OLED) для излучения света. Контроллер SSD1306 обеспечивает буферизацию памяти и управляет всей работой дисплея, требуя минимальных ресурсов от подключенного микроконтроллера, например, Arduino или Raspberry Pi. Такие дисплеи, как 0.96-дюймовый с разрешением 128x64 пикселей, используют интерфейс I²C для подключения и могут выводить текст, графику и фигуры благодаря специализированным библиотекам.
SSD1306 — это популярная однокристальная микросхема-контроллер для управления OLED-дисплеями, которые используют технологию органических светодиодов (OLED) для излучения света. Контроллер SSD1306 обеспечивает буферизацию памяти и управляет всей работой дисплея, требуя минимальных ресурсов от подключенного микроконтроллера, например, Arduino или Raspberry Pi. Такие дисплеи, как 0.96-дюймовый с разрешением 128x64 пикселей, используют интерфейс I²C для подключения и могут выводить текст, графику и фигуры благодаря специализированным библиотекам.
 
 
Основные характеристики и функции:
 Технология: 
 OLED-дисплей, где каждый пиксель является светоизлучающим прибором на основе органических соединений. 
 
 Контроллер: Микросхема SSD1306, которая управляет дисплеем и буферизацией памяти.
 
 Разрешение: Чаще всего встречаются дисплеи 128x64 или 128x32 пикселей. 
 
 Интерфейс: Используется популярный двухпроводный интерфейс I²C, что упрощает подключение к различным микроконтроллерам. 
 
 Питание: Обычно требуется напряжение 3.3–5 В. 
 
 Функциональность: Библиотеки для SSD1306 позволяют выводить текст, рисовать фигуры и отображать графическую информацию.
Преимущества:
 Экономичность: Дисплеи на основе SSD1306 потребляют мало энергии, что делает их подходящими для проектов с ограниченным питанием. 
 
 Высокий контраст: OLED-технология обеспечивает высокую контрастность и яркое изображение, которое хорошо видно даже при ярком свете. 
 
 Простота подключения: Стандартный I2C интерфейс и наличие готовых библиотек упрощают разработку и интеграцию в проекты с Arduino и другими платформами.
Применение:
 Миниатюрные дисплеи SSD1306 широко используются в проектах по электронике и робототехнике, например, в Arduino-проектах для отображения данных с датчиков, температуры, состояния устройства и создания простых графических интерфейсов.
Подключение:
 Для подключения OLED-дисплея SSD1306 к Arduino Nano используйте I²C интерфейс:
 соедините выводы GND, VCC, SDA и SCL модуля с соответствующими выводами Arduino Nano – GND, 5V, A4 (SDA) и A5 (SCL) соответственно. Питание можно подать как от 5V, так и от 3.3V
 
 
Необходимые библиотеки
Для работы с дисплеем SSD1306 в Arduino IDE вам понадобятся библиотеки, такие как Adafruit_SSD1306 и Adafruit_GFX.
Шаги в Arduino IDE
Установка библиотек: В Arduino IDE перейдите в «Скетч» -> «Подключить библиотеку» -> «Управлять библиотеками». Найдите и установите Adafruit_SSD1306 и Adafruit_GFX. Загрузка скетча: Загрузите пример скетча из установленной библиотеки или напишите свой код, который будет выводить изображение на дисплей
Скетч:
#include <Wire.h>
 #include <Adafruit_GFX.h>
 #include <Adafruit_SSD1306.h>
 
 // Размеры дисплея
 #define SCREEN_WIDTH 128
 #define SCREEN_HEIGHT 64
 
 // Создаём объект дисплея (адрес по умолчанию 0x3C)
 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
 
 void setup() {
   // Инициализация
   if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
     // Если дисплей не найден
     for(;;); // Остановиться здесь
   }
 
   display.clearDisplay(); // Очистка
   display.setTextSize(1); // Размер шрифта
   display.setTextColor(SSD1306_WHITE); // Цвет текста
   display.setCursor(0,0); // Позиция курсора
   display.println("Hello, Arduino!");
   display.println("SSD1306 OLED");
   display.display(); // Вывод на экран
 }
 
 void loop() {
   // Тут можно обновлять экран
 }
 
 Скетч с графикой:
#include <Wire.h>
 #include <Adafruit_GFX.h>
 #include <Adafruit_SSD1306.h>
 
 #define SCREEN_WIDTH 128
 #define SCREEN_HEIGHT 64
 
 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
 
 void setup() {
   if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
     for(;;); // Стоп, если дисплей не найден
   }
 
   display.clearDisplay();
 
   // Линия
   display.drawLine(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, SSD1306_WHITE);
 
   // Прямоугольник
   display.drawRect(10, 10, 50, 30, SSD1306_WHITE);
 
   // Закрашенный прямоугольник
   display.fillRect(70, 10, 40, 20, SSD1306_WHITE);
 
   // Окружность
   display.drawCircle(30, 50, 10, SSD1306_WHITE);
 
   // Закрашенный круг
   display.fillCircle(90, 50, 10, SSD1306_WHITE);
 
   // Текст
   display.setTextSize(1);
   display.setTextColor(SSD1306_WHITE);
   display.setCursor(5, 55);   display.println(F("Arduino Nano"));
 
   display.display(); // Выводим всё на экран
 }
 
 void loop() {
   // Тут можно сделать анимацию или графику
 }
--------------------------------------------------------------------------
 
Основные команды для работы с дисплеем SSD1306
Управление экраном
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C) – инициализация дисплея (адрес обычно 0x3C или 0x3D).
- display.display(); – отрисовка на экране того, что нарисовано в буфере.
- display.clearDisplay(); – очистка экрана (очищает буфер, нужно вызывать display.display(); чтобы изменения появились).
- display.invertDisplay(true/false); – инвертирование цветов (белое ↔ чёрное).
- display.dim(true/false); – уменьшение/увеличение яркости (работает не на всех дисплеях).
Работа с текстом
- display.setTextSize(n); – размер текста (целое число: 1, 2, 3 …).
- display.setTextColor(SSD1306_WHITE); – цвет текста (обычно SSD1306_WHITE или SSD1306_BLACK).
- display.setCursor(x, y); – установка позиции курсора (в пикселях).
- display.println("Текст"); – вывод текста + перевод строки.
- display.print("Текст"); – вывод текста без перевода строки.
Примитивы (графика)
Линии
- display.drawPixel(x, y, цвет); – рисует 1 пиксель.
- display.drawLine(x0, y0, x1, y1, цвет); – линия.
- display.drawFastHLine(x, y, длина, цвет); – горизонтальная линия.
- display.drawFastVLine(x, y, длина, цвет); – вертикальная линия.
Прямоугольники
- display.drawRect(x, y, w, h, цвет); – прямоугольник.
- display.fillRect(x, y, w, h, цвет); – закрашенный прямоугольник.
- display.drawRoundRect(x, y, w, h, радиус, цвет); – прямоугольник со скруглёнными углами.
- display.fillRoundRect(x, y, w, h, радиус, цвет); – закрашенный вариант.
Круги
- display.drawCircle(x, y, радиус, цвет); – окружность.
- display.fillCircle(x, y, радиус, цвет); – закрашенный круг.
Треугольники
- display.drawTriangle(x0, y0, x1, y1, x2, y2, цвет); – треугольник.
- display.fillTriangle(x0, y0, x1, y1, x2, y2, цвет); – закрашенный треугольник.
Битмапы (изображения)
- display.drawBitmap(x, y, data, w, h, цвет); – вывод картинки (монохром, данные в PROGMEM).
Цвета
Так как дисплей монохромный, доступно только:
- SSD1306_WHITE – белый пиксель.
- SSD1306_BLACK – чёрный пиксель.





