#15 Дисплей SSD1306 подключаем к Arduino. Выводим текст, рисуем фигуры.

.#15 Дисплей SSD1306 подключаем к Arduino. Выводим текст, рисуем фигуры.

В этом уроке расскажу, как работать с 0,96-дюймовый SSD1306 OLED-дисплем в среде Arduino IDE . Покажу как вывести текст и нарисовать фигуры . Как выводить текст на русском языке покажу в следующем уроке.

OLED-дисплей, который я буду использовать в этом уроке, — это модель SSD1306: 0,96-дюймовый с разрешением 128×64 пикселя, как показано на фото ниже.

0,96-дюймовый SSD1306 OLED-дисплем

OLED-дисплей не требует подсветки, что приводит к хорошему контрасту в темный период времени. Кроме того, его пиксели потребляют энергию только тогда, когда они включены, поэтому OLED-дисплей потребляет меньше энергии, по сравнению с другими дисплеями.

Дисплей поможет вам автоматизировать ваше производства, а полиэтиленовый рукав поковать вашу продукцию. Где полиэтиленовый рукав купить ? На сайте МТ-ПАК ТОРГ.

SSD1306 OLED-дисплем в среде Arduino IDE

Модель, которую я использую, имеет четыре контакта и взаимодействует с любым микроконтроллером, используя протокол связи I2C. Есть, которые используют протокола связи SPI. Есть модели, которые поставляются с дополнительным выводом сброса.

Технические параметры дисплея SSD1306:

  • Технология дисплея: OLED
  • Разрешение дисплея: 128 на 64 точки
  • Диагональ дисплея: 0,96 дюйма
  • Угол обзора: 160°
  • Напряжение питания: 2.8 В

Дисплей OLED SSD1306 Описание подключения.
Поскольку OLED-дисплей использует протокол связи I2C, подключение очень простое. Как подключить к Arduino UNO или Arduino NANO смотрите в таблице ниже.

Pin

Arduino UNO или Arduino NANO

Схема подключения SSD1306 к Arduino UNO

Схема подключения SSD1306 к Arduino UNO

Установка библиотеки SSD1306 OLED

Существует несколько библиотек, доступных для управления OLED-дисплеем. В этом уроке я буду использовать две библиотеки Adafruit: библиотеку Adafruit_SSD1306 и библиотеку Adafruit_GFX .

Для установки этих библиотек выполните следующие действия.
1. Откройте Arduino IDE и перейдите в раздел Скетч Подключить библиотеку управление библиотеками.

Должен открыться менеджер библиотеки.

2. Укажите “ SSD1306” в поле поиска, выберете из списка и установите библиотеку от Adafruit SSD1306

Должен открыться менеджер библиотеки.

3. Аналогично установите вторую библиотеку, для этого в поле поиска укажите “ GFX

Аналогично установите вторую библиотеку, для этого в поле поиска укажите “GFX”

4. После установки библиотеки перезагрузите среду разработки Arduino.

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

В вашей среде разработки Arduino, выберите Файл Примеры Adafruit SSD1306 и выберете тип вашего дисплея. В моем случае это 128х64_i2c.

Вот код примера для моего дисплея SSD1306

Вот код примера для моего дисплея SSD1306

Если ваш OLED дисплей не имеет pin сброса, вы должны установить переменную OLED_RESET в значение -1, как показано ниже.

Не забудьте выбрать нужную плату и COM порт в меню Инструменты.

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

Если ваш OLED-дисплей ничего не показывает:
Убедитесь, что OLED-дисплей правильно подключен к Ардуино.
Также вы должны изменить OLED-адрес в следующей строке, например на 0x3D, если это необходимо. В моем случае адрес 0x3C.

Вывод текста на дисплей

Библиотека Adafruit для OLED-дисплея поставляется с несколькими функциями для вывода текста. В этом разделе вы узнаете, как писать и прокручивать текст с помощью функций библиотеки.
“Hello, world!” OLED-дисплей
Следующий код отображает Hello, world! сообщение на дисплее.

После загрузки кода вот, что вы получите в вашем дисплее.

Следующий эскиз отображает Hello, world! сообщение на дисплее.

Рассмотрим скетч подробнее.

Импорт библиотек
Во-первых, вам нужно импортировать необходимые библиотеки. Библиотека для использования I2C и библиотеки Adafruit для вывода информации на дисплей: Adafruit_GFX и Adafruit_SSD1306

Инициализация OLED-дисплея
Затем, вы определяете свою ширину и высоту дисплея. В этом примере я использую OLED-дисплей 128×64. Если вы используете другие размеры, вы можете изменить это в переменных SCREEN_WIDTH и SCREEN_HEIGHT

Затем инициализируйте экранный объект, с шириной и высотой, определенными ранее с помощью протокола связи I2C (&Wire).

Параметр (-1) означает, что ваш OLED-дисплей не имеет pin сброса. Если ваш OLED-дисплей имеет пин сброса, то он должен быть подключен к GPIO. В этом случае вы должны передать номер GPIO.
В setup () инициализируйте последовательный монитор на скорости передачи данных 9600 бод для отладки.

Serial.begin(9600);

Инициализируйте OLED-дисплей с помощью метода begin() следующим образом

Этот фрагмент выводит сообщение на последовательный монитор, если вы не можете подключиться к дисплею.

Так же, вам может потребоваться изменить адрес OLED. В моем случае адрес 0x3C.

Рассказывал об этом выше.

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

Очистить дисплей, установить размер шрифта, цвет и написать текст.

После инициализации дисплея очистите буфер дисплея с помощью метода clearDisplay().

Перед написанием текста, вам нужно установить размер текста, цвет и где текст будет отображаться в OLED.

Установите размер шрифта с помощью метода setTextSize().

Установите цвет шрифта с помощью метода setTextColor().

WHITE устанавливает белый шрифт и черный фон.

Определите позицию, с которой начинается текст, используя метод setCursor(x, y). В этом случае, вы устанавливаете текст, чтобы начать с координат (0,10).

Наконец, можно отправить текст на дисплей с помощью метода println (), как показано ниже.

Затем, вам нужно вызвать метод display (), чтобы фактически отобразить текст на экране.

Наконец, можно отправить текст на дисплей с помощью метода println (), как показано ниже

Библиотека Adafruit OLED предоставляет полезные методы для легкой прокрутки текста.

startscrollright(0x00, 0x0F): прокрутка текста слева направо
startscrollleft(0x00, 0x0F): прокрутка текста справа налево

Следующий скетч реализует методы прокрутки текста:

Нарисуйте фигуры на OLED-дисплее

Библиотека Adafruit OLED предоставляет полезные методы для рисования пикселей, линий и фигур. Давайте рассмотрим эти методы.

Чтобы нарисовать пиксель на OLED-дисплее, можно использовать метод drawPixel(x, y, color), который принимает в качестве аргументов координаты x и y, где появляется пиксель, и цвет. Например

Чтобы нарисовать пиксель на OLED-дисплее

Нарисовать линию

Используйте метод drawLine(x1, y1, x2, y2, color) для создания линии. Координаты (x1, y1) указывают начало линии, а координаты (x2, y2) указывают, где заканчивается линия.

Нарисовать линию

Нарисуйте прямоугольник

DrawRect (x, y, width, height, color) обеспечивает простой способ рисования прямоугольника. Координаты (x, y) указывают на верхний левый угол прямоугольника. Затем вам нужно указать ширину, высоту и цвет.

Вы можете использовать fillRect(x, y, width, height, color) для рисования заполненного прямоугольника. Этот метод принимает те же аргументы, что и drawRect.

Нарисуйте прямоугольник

Библиотека также предоставляет методы для отображения прямоугольников с закругленными углами : drawRoundRect () и fillRoundRect (). Эти методы принимают те же аргументы, что и предыдущие методы, плюс радиус угла. Например

Библиотека также предоставляет методы для отображения прямоугольников с закругленными углами

Или заполненный со скругленными углами прямоугольник:

Чтобы нарисовать круг, используйте метод drawCircle(x, y, radius, color). Координаты (x, y) указывают на центр окружности. Вы также должны передать радиус в качестве аргумента. Например

Чтобы нарисовать круг

Таким же образом, чтобы построить заполненный круг, используйте метод fillCircle() с теми же аргументами:

Нарисуйте треугольник

Используйте метод drawTriangle(x1, y1, x2, y2, x3, y3, color) для построения треугольника. Этот метод принимает в качестве аргументов координаты каждого угла и цвет.

Нарисуйте треугольник

Используйте метод fillTriangle (), чтобы нарисовать заполненный треугольник:

Используйте метод fillTriangle (), чтобы нарисовать заполненный треугольник:

Инвертирование

Библиотека предоставляет дополнительный метод, который можно использовать с фигурами или текстом: метод invertDisplay (). Передайте true в качестве аргумента, чтобы инвертировать цвета экрана, или false, чтобы вернуться к исходным цветам.

Если вы вызываете следующую команду после определения треугольника

Вы получите черный треугольник, а фон будет подсвечен.

Библиотека предоставляет дополнительный метод, который можно использовать с фигурами или текстом

Код для рисование всех фигур
Загрузите следующий скетч в Arduino, который реализует каждый фрагмент кода, который я рассмотрел ранее, и выведет все фигуры.

Планировал добавить вывод русского текста на дисплей SSD1306, но урок получился и так большой. Поэтому вывод русского текст будет в следующем уроке.

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока. И до встречи в следующем уроке.

Понравилась статья? Поделитесь ею с друзьями:

Digispark подключаем светодиоды ws2812. Программируем в Arduino IDE

Digispark подключаем светодиоды ws2812. Программируем в Arduino IDE

Простые 3D модели для печати. Для новичков в 3D-печати.

Простые 3D модели для печати. Для новичков в 3D-печати.

Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

Парикхмахер_Tiz

#33 Парикхмахер_Tiz (11 августа, 2022 в 17:37)

Terryfub

#21 Terryfub (14 июля, 2022 в 17:20)

Добрый день! Рады видеть вас на страницах официального сайта об азартных играх!

В настоящее время в результате высокой конкуренции среди казино вынуждены выдавать гемблерам хорошие условия сотрудничества, для получения больше новых игроков в своих казино.
При этом каждый азартный клуб старается дать что-то особенное в своих условиях сотрудничества.
Так например, ускоренный процесс вывода выигрышей.
Новичку этот процесс является наиболее важным. Поэтому успешные игроки выбирают онлайн казино с мгновенными выводами.
Дополнительно, важным фактором являяется наличие у интернет казино широкого выбора игровых автоматов.
Наличие такого фактора может говорить о том, что выбранная интернет площадка не является мошейническим сайтом.

Если вы решите самостоятельно проводить поиск онлайн казино, неприменно смотрите на комментарии выбранного игрового сайта.
Поэтому, мы рекомендуем вам казино: a href=https://mobile-appx.com/mobile-appx.com/a.

Давайте рассмотрим подробнее данную площадку.
Главным приемуществом является наличие встроенного функционала букмекерской конторы.
огромный спектр бонусов, таких как бонусы от размера депозита, дает возможность выиграть большой выигрышь!
Приличная комбинация вышеописанных функциональных возможностей позволяет начинающим игрокам без больших вложений, и начать выигрывать уже сегодня.
Для начала вам требуется найти игровую стратегию. На сайте a href=https://mobile-appx.com/mobile-appx.com/a вы выбрать оптимальную стратегию на любой вкус!
Дополнительно, на сайте представлен раздел блога, где опытные игроки делятся идеями, помогая новичкам совершать свои первые победы.
К примеру, мы не советуем сразу играть на высоких ставках, так как это предполагает большие риски проигрыша.

Дополнительно, стоит обращать внимание на наличие эффективной технической поддержки пользователей в на игровой площадке.
a href=https://mobile-appx.com/www.mobile-appx.com/a всегда заботится об своих гемблерах и оказывает помощь в течении 10-15 минут.

Приходи к нам на сайт и зарабатывай уже сейчас!

Франшиза

#20 Франшиза (14 июля, 2022 в 11:34)

Желаете открыть свой бизнес в России с минимальными вложениями?

Тогда портал a href=https://topfranshiza.comtopfranshiza.com/a — это то, что вы ищите!
Сотни дешовых франшиз на любой вкус, и не только!
Удобный интерфейс, прямой контакт с правообладателями, франшизы только от проверенных поставщиков.
Заходи и начни свое дело уже сегодня, вместе с a href=https://topfranshiza.comtopfranshiza.com/a

forexinvestdycle

#19 forexinvestdycle (14 июля, 2022 в 05:54)

CasinoX

#18 CasinoX (14 июля, 2022 в 00:09)

Доброго дня! Рады видеть вас на страницах официального портала об азартных играх!

В настоящее время в результате большой конкуренции среди интернет казино вынуждены предоставлять информационным партнерам хорошие условия сотрудничества, для получения больше новых игроков на свои сайты.
При этом каждая азартная площадка старается дать что-то уникальное в своих условиях сотрудничества.
Одним из таких особенностей является упрощенный процесс вывода денег.
Для новичков этот процесс является весьма важным. Из-за этого успешные игроки заинтересованы в выборе игровые площадки с мгновенными выплатами.
Также, важным процессом являяется наличие у онлайн-казино общирного ассортимента игровых слотов.
Наличие такого фактора может говорить о том, что выбранная площадка не является мошейническим сайтом.

в случае примите решение самолично искать казино, обязательно обратите внимание на комментарии выбранного игрового портала.
Поэтому, мы рекомендуем вам казино: a href=https://casino-x.center/казино х регистрация/a

Давайте посмотрим подробнее данный игровой сайт.
Основным приемуществом является наличие интегрированного функционала букмекерской конторы.
Широкий спектр бонусов, таких как фри спины, дает возможность выиграть огромный выигрышь!
Хорошая комбинация вышеописанных функциональных процессов позволяет игрокам без огромных вложений, и начать выигрывать уже сейчас.
Для начала вам необходимо определить игровую стратегию. На сайте a href=https://casino-x.center/казино икс/a вы сможете найти оптимальную стратегию на любой вкус!
Также, на сайте представлен раздел блога, где опытные игроки делятся идеями, помогая новичкам совершать свои первые победы.
Так например, мы не советуем изначально играть на высоких ставках, так как это создает большие риски проигрыша.

Также, стоит обращать внимание на наличие качественной технической поддержки пользователей в казино.
a href=https://casino-x.center/casino x полная версия/a всегда заботится об игроках и оказывает помощь в течении 10-15 минут.

Заходи к нам на портал и зарабатывай уже сегодня!

Парикхмахер_Tiz

#16 Парикхмахер_Tiz (13 июля, 2022 в 06:50)

Кредитная_картаdum

#12 Кредитная_картаdum (10 июля, 2022 в 00:40)

CasinoX

#6 CasinoX (7 июля, 2022 в 00:45)

Доброго дня! Мы рады видеть вас на страницах нашего информационного ресурса об азартных играх!

Наданный момент в результате немалой конкуренции среди интернет казино вынуждены предоставлять гемблерам хорошие условия сотрудничества, для того чтобы получить больше новых игроков в своих казино.
При этом каждая азартная площадка пытается предоставить что-то неповторимое в своих условиях сотрудничества.
Так например, быстрый процесс снятия выигрышей.
Для новичков этот процесс является весьма важным. В следствии чего успешные игроки заинтересованы в выборе онлайн казино с мгновенными выводами.
Также, важным фактором являяется наличие у интернет казино большого выбора игровых автоматов.
Наличие такого фактора может говорить о том, что выбранная игровая площадка не является сайтом мошейников.

в случае вы решите самостоятельно искать онлайн казино, неприменно смотрите на комментарии выбранного игрового портала.
Чтобы сократить вам время поиска мы посоветуем вам: a href=https://casino-x.center/casino x полная версия/a

Давайте рассмотрим подробнее данный игровой клуб.
Весомым приемуществом является наличие интегрированного функционала букмекерской конторы.
Большой спектр бонусов, таких как фри спины, дает возможность поднять солидный куш!
Солидная комбинация вышеописанных функциональных процессов позволяет начинающим игрокам без огромных затрат, и начать побеждать уже сейчас.
Для старта вам требуется выбрать игровую стратегию. На сайте a href=https://casino-x.center/казино casino x/a вы выбрать оптимальную стратегию на любой вкус!
Также, на сайте представлен раздел блога, где опытные игроки делятся идеями, помогая новичкам совершать свои первые победы.
Например, мы не советуем изначально играть на высоких ставках, так как это создает большие риски проигрыша.

Дополнительно, стоит обращать внимание на наличие грамотной технической поддержки пользователей в казино.
a href=https://casino-x.center/казино х регистрация/a всегда заботится об своих гемблерах и оказывает помощь в течении 10-15 минут.

Прходи к нам на портал и зарабатывай уже сегодня!

Дмитрий

#2 Гость: Дмитрий (8 мая, 2020 в 22:54)

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


Источник: portal-pk.ru