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

 
» » 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, дисплеи



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

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

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