цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Arduino и цветной OLED-дисплей SSD1331



Arduino и цветной OLED-дисплей SSD1331

Автор: Mike(admin) от 12-04-2019, 05:35

Технология дисплеев постоянно совершенствуется, начиная со времен ЖК-дисплея 16x2 и до устройств сегодняшнего дня, таких как дисплеи E-paper и OLED, мы стараемся сделать их еще лучше, с большим количеством цветов и меньшим энергопотреблением, помимо других дополнительных функций. Это делает их идеальным компонентом для пользовательского интерфейса в электронных проектах.


OLED-дисплей SSD1331

Монохромные OLED-дисплеи являются продуктом такого прогресса, но, несмотря на то, что они имеют низкое энергопотребление, достаточно яркие и простые в использовании, они все-таки монохромные, что означает, что эти экраны имеют один или несколько цветов. Поэтому цветной OLED-дисплей выглядит среди них блестящей жемчужиной, которая будет сиять в проектах с Arduino.


В сегодняшнем уроке мы будем использовать цветной OLED-дисплей 0,95 дюйма, SSD1331. Этот дисплей, как и все другие OLED-дисплеи, имеет низкое энергопотребление (потребляет всего 25 мА, когда все пиксели включены) и предлагает уровни яркости, превышающие доступные для ЖК-дисплеев. Он имеет разрешение 96 × 64 пикселей и может отображать более 65000 различных цветов. Он связывается через SPI, что означает, что, кроме VCC и GND, он будет использовать 5 выводов Arduino GPIO.


Чтобы продемонстрировать, как использовать этот дисплей в ваших проектах, мы создадим простой скетч, на котором будет отображаться кнопка подписки YouTube. Код будет объяснен, поэтому вам будет легко его модифицировать и адаптировать к потребностям ваших проектов.


Схема подключения для этого примера довольно проста, поскольку включает в себя только дисплей OLED и Arduino. Подключите OLED-дисплей к Arduino, как показано на следующей схеме.


Arduino и цветной OLED-дисплей SSD1331

Код этого проекта сильно зависит от библиотеки драйвера Adafruit SSD1331 OLED для Arduino. Библиотека была создана специально для использования с дисплеями, основанными на драйвере дисплея SSD1331. Мы создадим демонстрационный скетч для этого урока и подробно расскажем о функциях, чтобы вы могли узнать, как адаптировать все это для использования в ваших собственных проектах. В дополнение к библиотеке SSD1221 OLED мы также будем использовать библиотеку Adafruit GFX вместе с библиотекой Arduino SPI.


Как обычно, мы начнем с включения библиотек, которые будут использоваться в нашем скетче. После этого мы объявляем выводы Arduino, к которым подключены выводы OLED, а также объявляем переменные для хранения некоторых цветов, которые мы будем использовать.



#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
#define sclk 13
#define mosi 11
#define cs   10
#define rst  9
#define dc   8
// Задание цветов
#define  BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0  
#define WHITE           0xFFFF

Далее мы создаем объект библиотеки Adafruit SSD1331 с выводами DC, CS и RST в качестве аргументов.


Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);

Следующая функция void setup(). Мы используем функцию display.begin(), чтобы начать связь с дисплеем. После этого мы используем функцию display.fillScreen() для создания и переключения между несколькими фонами для отображения. Для отображения текста мы используем функцию display.print() с display.setTextColor() и display.setTextSize(), чтобы соответственно установить его цвет и размер шрифта. Все эти функции были использованы для создания кнопки подписки на Youtube.



void setup() {
  display.begin();
  display.fillScreen(RED);
  delay(300);
  display.fillScreen(GREEN);
  delay(300);
  display.fillScreen(BLUE);
  delay(300);
  display.fillScreen(BLACK);
  delay(1000);
  display.setCursor(20,5);
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.print("Hello");
  display.setCursor(8,25);
  display.setTextColor(RED);
  display.setTextSize(2);
  display.print("YouTUBE");
  display.fillRect(10,40, 75, 20, RED);
  display.setCursor(20,47);
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.print("Subscribe");
  display.drawRect(0,0,96,64,WHITE);
  delay(1000);
}

Далее идет функция void loop() для организации бесконечного цикла. Код под функцией цикла похож на код функции setup(). Мы создали два блока, один с черным фоном, а другой с красным фоном, используя функцию display.fillRect(). Затем мы написали текст «subscribe» на него, используя функцию display.setCursor() для позиционирования текста.



void loop() 
{
  display.fillRect(10,40, 75, 20, BLACK);
  delay(1000);
  display.fillRect(10,40, 75, 20, RED);
  display.setCursor(20,47);
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.print("Subscribe");
  delay(1000);
}

Как мы видим код программы довольно прост. Весь код для Arduino показан далее.



#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
#define sclk 13
#define mosi 11
#define cs   10
#define rst  9
#define dc   8
// Задание цветов
#define  BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0  
#define WHITE           0xFFFF
Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);
void setup() {
  display.begin();
  display.fillScreen(RED);
  delay(300);
  display.fillScreen(GREEN);
  delay(300);
  display.fillScreen(BLUE);
  delay(300);
  display.fillScreen(BLACK);
  delay(1000);
  display.setCursor(20,5);
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.print("Hello");
  display.setCursor(8,25);
  display.setTextColor(RED);
  display.setTextSize(2);
  display.print("YouTUBE");
  display.fillRect(10,40, 75, 20, RED);
  display.setCursor(20,47);
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.print("Subscribe");
  display.drawRect(0,0,96,64,WHITE);
  delay(1000);
}
void loop() 
{
  display.fillRect(10,40, 75, 20, BLACK);
  delay(1000);
  display.fillRect(10,40, 75, 20, RED);
  display.setCursor(20,47);
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.print("Subscribe");
  delay(1000);
}

В библиотеке SSD1331 Arduino есть несколько других функций, которые могут оказаться полезными для ваших проектов. Вы можете проверить все функции и их использование, прочитав про них в документации библиотеки.


Скопируйте код и загрузите его на Arduino Uno. Убедитесь, что все подключено, как описано в разделе схемы. Если вы выполните правильные шаги, вы увидите, что ваш экран покажет картинку, как показано ниже.


Arduino и цветной OLED-дисплей SSD1331



© digitrode.ru


Теги: Arduino, OLED, дисплеи




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий