Не работает oled дисплей ардуино

Digitrode

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

OLED-дисплей 0,96 дюймов и Arduino: как подключить и начать работу

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

В этом материале мы расскажем, как вы можете использовать этот OLED-дисплей с платой Arduino за несколько простых шагов.

Органический светоизлучающий диод или OLED – это светодиод (LED), в котором излучающий электролюминесцентный слой представляет собой пленку из органического соединения, которое излучает свет в ответ на электрический ток.

Благодаря такой технологии можно создавать действительно компактные дисплеи. И в этом примере мы будем использовать популярный Oled-дисплей SSD1306, который подключим к Arduino Nano.

Модель SSD1306 представляет собой монохромный 0,96-дюймовый дисплей с разрешением 128 × 64 пикселей. у него всего четыре контакта, и он взаимодействует с Arduino по протоколу связи I2C. Чтобы подключить дисплей к Arduino, нужно осуществить проводку в соответствии со следующей схемой соответствия контактов.

Теперь вам нужно загрузить библиотеку adafruit ssd1306, и для этого вы можете сделать две вещи: найдите ее на Github (https://github.com/adafruit/Adafruit_SSD1306) и загрузите ее zip-файл, а затем распакуйте его в папку библиотек (library).

Но есть более простой путь. Вы можете найти библиотеку ssd1306 в диспетчере библиотек и скачать ее оттуда. После загрузки библиотеки перезапустите Arduino IDE.

Теперь откройте пример скетча ssd1306 128×64 i2c из меню примеров adafruit ssd1306.

Загрузите этот скетч на свою плату Arduino, и ваша установка отобразит работу скетча hello world. Если ваш OLED не работает, убедитесь, что OLED-дисплей правильно подключен к Arduino, или измените адрес OLED в строке, как показано далее.

Источник

Arduino.ru

Не могу подключить дисплей OLED 128×64 по IIC

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

Не могу подключить дисплей по IIC

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

точнее что не получается ,

не можете найти как подключать ?

через какую библиотеку ?

или все подключено но ничего не показывает ?

чтото кроме дисплея подключено ещё ?

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

По spi интерфейсу все нормально работает, а я пытаюсь по i2c, перепробовал все варианты подключения, методом тыка, скетч заливаю i2c scanner, пробовал и от adafruit стандартные скетчи, сканер ничего не находит, скетч от дисплея — ничего не показывает. Там на обратное стороне дисплея написано:

На фотографиях по ссылке видно.

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

Там на плате резисторы впаяны, они задают режим в котором он будет работать.
Если у вас работает spi- значит в данный момент времени он spi.

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

Спасибо, только первая ссылка не открывается.

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

Скажите, вам удалось заставить работать по llc этот дисплей?

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

Тоже такой дисплей прислали с АлиЭкспресс, хотя заказывал с I2C-интерфесом. Но должен заметить, что этот дисплей более универсален, чем тот, что только со SPI. Изначально дисплей работает со SPI и для переключения его в режим I2C, необходимо впаять перемычки R1 и R8. Далее, подключаем:
OLED Arduino Uno
GND GND
VCC +3,3v
D0 A5
D1 A4
RES через 10k к +3,3v и 1,0 mk на GND
DC на GND, адрес 0x3C; на +3,3v, адрес 0x3D
CS на GND
Подключаем дисплей, загружаем в Ардуино скетч для I2C и наслаждаемся результатом 🙂

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

Изначально дисплей работает со SPI и для переключения его в режим I2C, необходимо впаять перемычки R1 и R8.

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

Перемычки запаять проще — перепаивать smd резисторы, размером 0402 — тот еще гемор 🙂

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

Перемычки запаять проще — перепаивать smd резисторы, размером 0402 — тот еще гемор 🙂

Ну если для вас нет разницы, чем подтягивать линии SDA и SCL к питанию, резисторани номиналом 4,7к или перемычками, то да — проще !

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

Вначале так же делал: R3 переставил на R1, а на R8 поставил резистор 5,1k (какой был под рукой). Но на втором кристалле решил попробовать, как многие поступали: впаял перемычки, R3 оставил на месте и дисплей работает уже более 3 месяцев без проблем. Кстати, эти резисторы-перемычки не «подтягивают» питание — иначе, в случае с перемычками там бы было напряжение питания и сигнал бы не проходил, а являются своего рода ключами, сообщающими контроллеру в каком режиме работать. В реале, на контактах D0 и D1наблюдаются импульсы, амплитудой примерно 1,3в — от 2в до 3,3в. Как-то так.

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

Запускал этот OLED по SPI, проблем не было, решил все таки запустить его и по I2C, 4 провода это не 7 проводов.

Протестировал — черт, это работает 🙂

И видео тест скеча:

Да и не забывайте вот об этом:

в библиотеке от Adafruit по умолчанию 0x3D, в моем случае 0x3C.

кста подключал все к НАНО на 5 вольт, все работает (потом присмотрелся на OLED есть DC/DC — U2)

Источник

Как подключить OLED I2C дисплей к ARDUINO

Привет! Будучи любителем — энтузиастом электроники, я уверен, что всё что мы делаем – радиоэлектронные игрушки – самоделки, или большие проекты, все это от любопытства и лени. Любопытство стремится понять и постичь необъятное, не познанное, разобраться, как оно там работает, чего делает, как двигается. А лень изобретает, чтобы такого придумать, чтобы не вставать, не подходить, не поднимать, не запачкаться или еще чего ни будь важное.

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

Для тех, у кого тоже возникло подобное желание, — вот краткое руководство по подключению и проверке маленьких и не дорогих дисплеев OLED.
Далее речь пойдет об одной из широко доступных для радиолюбителей моделях OLED дисплеев, управляемых чипом SSD1306, с размером экрана 0,96-дюймов и разрешением 128*64 или 128*32 точки. Эти дисплеи идеально подходят для не больших радиолюбительских конструкций и самоделок.

Шаг 1: Основные понятия

Шаг 2: Комплектующие

Шаг 3: Подключение дисплея

Шаг 4: Сканер I2C

Каждое устройство на шине I2C имеет шестнадцатеричный адрес, поменять нельзя, он вшит намертво, каждый ответственный производитель должен где-то на корпусе или в инструкции указать его. Бывают модули с переключателями и перемычками, которыми можно изменить адрес, но… если устройства дешевые, до безобразия, то производитель может и не удосужиться заниматься такой мелочью, поэтому его придется определять самостоятельно.

Всего на шине может использоваться до 127 адресов — 119 для устройств и 8 адресов служебных. Общение ведется по этим адресам. Есть главный, он же Master, а есть ведомый, он же Slave, — Мастера запрашивают, ведомые отвечают, все просто.
Поскольку на нашем OLED-дисплей используется протокол связи I2C, а адрес может быть и не указан, мы сами попробуем узнать этот самый адрес.

Это можно сделать, загрузив коротенький скетч на свою плату Arduino с подключенным OLED. НО!
Не торопитесь сразу заливать скетч в Arduino! Давайте для начала загрузим «драйвера», т.е. подключим библиотеки, а для этого сразу перейдем к «Шагу №5», а затем вернемся и продолжим.

Шаг 4: Продолжение:

Шаг 5: Загрузка и подключение библиотек

Шаг 6: Тестирование дисплея

Откройте файл Adafruit_SSD1306.h в текстовом редакторе и найдите строки:

Должно получиться так:

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


Когда вы вдоволь насладитесь сей анимацией, можете переходить к следующему шагу.

Шаг 7: Пишем свое собственное сообщение

Для написания собственного сообщения, сначала создадим новый скетч в среде программирования ArduinoIDE.
В заголовке мы подключаем 4 библиотеки:

Затем пишем протокол сброса:

В VOID SETUP указываем шестнадцатеричный адрес нашего дисплея 0x3C, который мы узнали на «Шаге №4».
Затем, инициализируем дисплей и очищаем его:

Далее в VOID LOOP пишем основной код, то есть наше сообщение, которое хотим отобразить на дисплее.
Для этого описываем размер текста, цвет текста, позицию курсора, и наконец, выводим сообщение с помощью команды println:

Источник

Не работает oled дисплей ардуино

Купил такой дисплей (см. OLED.jpg) тут: http://ali.onl/16Oi

Хочу подключить его к ATmega48PA, нашёл пример работы на этом же сайте https://www.radiokot.ru/articles/77/
Там пример методом ногодрыга, что меня вполне устраивает, впрочем физически он подключен у меня на макетке на выход
аппаратной шины I2C так что я могу использовать оба варианта.

Выкладываю проект (см. ATmega48P + SSD1306.zip), сделан Atmel Studio 7 + схема Proteus 8.7

Для начала, почему он не хочет работать даже в Протеусе?

Подходящая ли протеуская модель?

Правильно ли подключены выводы в модели экрана, особенно к шине?

Если надо выложить дополнительно скрины пишите, выложу.

Вложения:
ATmega48P + SSD1306.zip [103.73 KiB]
Скачиваний: 494
OLED.jpg [136.72 KiB]
Скачиваний: 7293
Вернуться наверх
Реклама
ozonn
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 519
Рейтинг сообщения: 0

Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

#define CL_HI DDRA&=

Схема из Протеуса (на осциллографе самое начало передачи на экран ):

Вложения:
Схема из Протеуса.png [212.66 KiB]
Скачиваний: 7265
Вернуться наверх
Реклама

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

ozonn
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 519
Рейтинг сообщения: 0

Реклама

Connfly, один из ведущих азиатских производителей стандартных соединителей, и Компэл в рамках партнерской программы по развитию склада представляют установочные панели для микросхем. Панельки серии DS1001-01 выполнены в корпусе Dual In-Line и предназначены для многократного размещения и подключения DIP-интегральных схем в электронные устройства.

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Мне показалось, что так будет проще.

А есть примеры подключения такого экрана по TWI на C/C++ в Atmel Studio?

Реклама
Реклама

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

roman.com
Друг Кота

Карма: 1
Рейтинг сообщений: -111
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 4949
Откуда: .ru
Рейтинг сообщения: 0

Реклама

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Реклама

roman.com
Друг Кота

Карма: 1
Рейтинг сообщений: -111
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 4949
Откуда: .ru
Рейтинг сообщения: 0

Реклама

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Заработало с адресом 0b01111000 но глючно см. скрин (Глючный кот.png)
Выкладываю подправленный проект с которого сделан скрин (ATmega48P + SSD1306 (2).zip)

Каждый раз полоски в другом месте, один раз кот нарисовался нормально, почему так?

Цифры не выводятся вообще, почему?

Снижение частоты ,например, до 8мГц и 4мГц глюки не убирает.

Откуда на линии стробирования SCL берётся такая неравномерность битов
(промежутки плавно сокращаются в каждом байте, см. осциллограф на скрине)
это нормально ?

В железе ничего не работает, хотя если туда прошить другой проект, начинает нормально работать такой экран:
http://ali.onl/16RD (в режиме аппаратного I2C)

В на плате OLED экрана стоит стабилизатор на 3,3v и линии SCL SDA подтянуты к 3,3v резисторами по 10к.

Контроллер ATmega48PA питается от 5v, но должно же работать ?

Вложения:
Глючный кот.png [212.79 KiB]
Скачиваний: 6728
ATmega48P + SSD1306 (2).zip [102.28 KiB]
Скачиваний: 367
Вернуться наверх
dosikus
Друг Кота

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0

Albert_V
Друг Кота

Карма: 90
Рейтинг сообщений: 1856
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4120
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Задержки для I2C шины на 54 странице

Странно, как он у автора примера заработало, в коде задержек вообще нет, наверно Atiny2313 более тормозная.

Кстати, у меня подтягивающие резисторы шины I2C питаются шины +5v, а в реальном железе от +3,3V (они расположена на плате монитора, по 10к , там на входе стабилизатор на 3,3v т.к. реально монитор работает на 3,3v).

Если контроллер работает без сбоев(не включится на выход с высоким уровнем), то напряжение на линиях не превысит 3,3 вольта.

Последний раз редактировалось DENIS451 Вс окт 07, 2018 00:12:38, всего редактировалось 2 раз(а).

Albert_V
Друг Кота

Карма: 90
Рейтинг сообщений: 1856
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4120
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 1
Медали: 5

afz
Опытный кот

Карма: 12
Рейтинг сообщений: 155
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 729
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Добавил задержки, глюки без изменений.
Выкладываю новую версию проекта с задержками (см. ATmega48P + SSD1306 (3).zip)
Вроде тайминги I2C не где не нарушены, подозрительное место — ответ экрана, девятый строб в датаграмме
в конце посылки каждого байта. (надо скачивать проект и смотреть в Протеусе)

Листинг кода этого проекта:

#define CL_HI DDRC&=

Добавлено after 2 hours 1 minute 52 seconds:
Re: Не работает экран OLED 128X64 I2C на SSD1306, что не так?
Оказывается проект ATmega48P + SSD1306 (3).zip работает на реальном железе:

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

Видимо, глюк Протеуса, такое уже было с другим экраном http://kazus.ru/forums/showthread.php?p . ost1218538

Вложения:
ATmega48P + SSD1306 (3).zip [104.39 KiB]
Скачиваний: 412
Вернуться наверх
VladislavS
Говорящий с текстолитом

Карма: 11
Рейтинг сообщений: 288
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1596
Рейтинг сообщения: 1

Даю универсальный алгоритм, чтобы запустить управление любой хренью от любой хрени.
1. Качаем даташит на управляемую хрень. Изучаем интерфейс и протокол управления.
2. Качаем даташит на управляющую хрень. Изучаем доступные интерфейсы для подключения.
3. Подключаем одну хрень к другой хрени.
4. Реализуем протокол управления по даташитам.
5. Если не работает, подключаем логический анализатор или осциллограф и переходим к пункту 4.
6. Радуемся.

ozonn
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 519
Рейтинг сообщения: 0

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Такой вот парадокс человека который только недавно начал изучать микроконтроллеры, проще не то что проще, а то лучше успел выучить!

Допустим я хочу сделать приборную панель из 10 таких экранов для детского электромобиля, как их подключить к ATmega48PA
по I2C?

Вопрос ко всем, глюки протеуской модели экрана у всех такие же, или есть у кого нормально работает?

Albert_V
Друг Кота

Карма: 90
Рейтинг сообщений: 1856
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4120
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5

DENIS451
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 211
Рейтинг сообщения: 0

Начал писать вариант проекта с использованием уже аппаратной шины I2C (TWI), и столкнулся с проблемой,
( см. скрин I2C ступенька.png) монитор вдруг утерял способность нормально прижимать линию SDA к земле!

Почему так происходит, ногодрыгом ведь работало нормально?

Выкладываю весь проект: ATmega48P + SSD1306 (ap.).zip

Вложения:
ATmega48P + SSD1306 (ap.).zip [109.98 KiB]
Скачиваний: 224
I2C ступенька.png [241.74 KiB]
Скачиваний: 335
Вернуться наверх
Страница 1 из 2 [ Сообщений: 26 ] На страницу 1 , 2 След.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Источник

Читайте также:  Настроить mail imap android
Оцените статью