Підключення OLED дисплея SSD1306 128х32

Конструкції та програмування ARDUINO UNO
Відповісти
Аватар користувача
radioman
Site Admin
Повідомлень: 107
З нами з: 28 вересня 2020, 12:01
Дякував (ла): 6 разів
Подякували: 4 рази

Підключення OLED дисплея SSD1306 128х32

Повідомлення radioman »

У багатьох проектах на Arduino є потреба у виведенні інформації на дисплей. Для невеликих об'ємів цілком достатньо OLED дисплея SSD1306 128х32 з розміром екрану 0.91" :
кут огляду:> 160 градусів
роз'єм: 4-pin
GND: загальний
VCC: напруга живлення (3.3-6V)
SDA: Шина даних
SCL: Шина тактування даних
рівні вхідних сигналів: 3.3V / 5V

Для підключення дисплея до Arduino Uno по Wire (I2C) використовують наступні контакти:

OLED - Arduino UNO
--------------
GND - GND
VCC - 5V
SCL - A5
SDA - A4
Підключення OLED дисплея SSD1306 128х32 до Arduino UNO
Підключення OLED дисплея SSD1306 128х32 до Arduino UNO
Для роботи дисплея у скетчі спочатку необхідно задати тип десплея

Код: Виділити все

//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
підключити бібліотеки

Код: Виділити все

// #include <Adafruit_GFX.h>	// графічна бібліотека, що забезпечує основний набір (точки, лінії, кола тощо)
#include <Adafruit_SSD1306.h>	// бібліотека для монохромних OLED на основі драйверів SSD1306
та створити об'єкт "дисплей"

Код: Виділити все

#define OLED_RESET 7
Adafruit_SSD1306 display(OLED_RESET); 
Запишемо setup

Код: Виділити все

void setup() 
{
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);	// ініціалізація дисплея по інтерфейсу I2C, адреса 0x3C
  display.clearDisplay();			// очистка дисплея
  display.setTextSize(2);			// встановлюємо розмір шрифту
  display.setTextColor(WHITE);			// встановлюємо колір шрифту
 }
І саму "програму":

Код: Виділити все

void loop() 
{
  display.setCursor(0, 0);		// встановлюємо курсор в позицію X = 0; Y = 0 (лівий верхній кут)
  display.print ("Hello!");		// записуємо в буфер дисплея необхідний текст
  display.display();			// виводимо на екран
  delay(2000);				// 2 секунди затримки
  display.clearDisplay();		// очистка буфера дисплея
  display.display();			// "виводимо на екран" (очищаємо дисплей)
  delay(1000);				//  1 секунди затримки
}
Для виведення на екран двох строчок перепишемо функцію loop:

Код: Виділити все

void loop()
{
  display.setCursor(0, 0);	// встановлюємо курсор в позицію X = 0; Y = 0
  display.print ("Hello,");	// записуємо в буфер дисплея першу строку
  display.setCursor(0, 18);	// встановлюємо курсор в позицію  X = 0; Y = 18
  display.print ("world!");	// записуємо в буфер дисплея другу строку
  display.display();		// виводимо весь текст на екран
  delay(2000);			// 2 секунди затримки
  display.clearDisplay();	// очистка буферадисплея
  display.display();		// "виводимо на екран" (очищаємо дисплей)
  delay(1000);			// 1 секунди затримки
}
PS. В архіві скетчі з виведенням текстової інформації на OLED дисплей SSD1306 128х32 по по Wire (I2C) для Arduino UNO
LED_UNO.7z
Скетчі для виведення текстової інформації на OLED дисплей SSD1306 128х32
(1.08 Кіб) Завантажено 6 разів
Відповісти