Дисплеи OLED SH1106, обсуждение

Vik_k

✩✩✩✩✩✩✩
1 Авг 2019
2
0
1106.jpg
вот оно. на той плате понятно два адрес 0х3С и 0х3D.
Перемычки то есть, но хотелось бы знать наверняка. Перерыл весь интернет, неужели ни кому не понадобилось подключать более одного дисплея к ардуино?
 

Zuker

★✩✩✩✩✩✩
10 Янв 2024
67
14
А как сделать буфер на стороне дисплея, как была "затравочка" из описания ?))
Вот нашел , что человек сделал некий вывод без буфера на SSH1106/SH1106 - но в какую библиотеку это добавлено? как понять?
Вывод без буфера на SH1106/SSH1106
Алярм! Ссылочка больше недоступна. Как можно допилить библиотеку гайвера, чтобы SH1106 работал без буфера по SPI?
Нашлась минимальная библиотека без буфера только для I2C-4-контактов (жрет всего 1% памяти) https://github.com/notisrac/SH1106Lib
Для SPI-7-контактов есть разве что u8glib. Но она жрет уже 20%.
 
Изменено:

Dreman

★✩✩✩✩✩✩
25 Апр 2024
12
16
tesanoff.klah.ru
Кстати, комментарий не со всем в тему, но если нужен 1.3" дисплей, то в природе существует вот это: https://sl.aliexpress.ru/p?key=ClOiGym
Там 1306, со всеми сопутствующими плюшками. Я лично проверил и купил себе в запас пару таких экранов.
 
  • Лойс +1
Реакции: Zuker

Krion

✩✩✩✩✩✩✩
6 Янв 2025
1
0
Такой же дисплей попался, писали что 1306, но оказалось 1106. Подошла библиотека #include <OLED_SH1106.h>, брал отсюда
https://duino.ru/oled-sh1106.html/sketch/ или 1106
 

Zuker

★✩✩✩✩✩✩
10 Янв 2024
67
14
@Dreman, заказал 2 шт, действительно 1306. Но есть большой минус - оба экрана заметно мерцают, даже при яркости 255. Впервые вижу такое на OLED. Брак!?
 

Azalis

✩✩✩✩✩✩✩
8 Окт 2019
18
0
Посмотреть вложение 50637
вот оно. на той плате понятно два адрес 0х3С и 0х3D.
Перемычки то есть, но хотелось бы знать наверняка. Перерыл весь интернет, неужели ни кому не понадобилось подключать более одного дисплея к ардуино?
Есть библиотека https://www.google.com/url?sa=t&sou...//github.com/ThingPulse/esp8266-oled-ssd1306/ для 1106 и 1306 но она под esp8266. Там последний пример с двумя экранами
 

VitalyXXL

✩✩✩✩✩✩✩
15 Янв 2021
4
0
@Эдуард Анисимов,Так то оно так .... Только вот беда с ними . Если подключаем по SPI и ещё нужно работать с Serial1/2 портом - на процессоре ESP32 ....конфликтуют . Уже все возможные драйвера пробовал ,.... А с дисплеем по I2C - всё ОК : чтение данных из UART1/2 правильное .Все байты достаёт как надо . Не режет буфер . Как только tftf.init() - всё ,из UART то 9 байт то 10 то15 ... вместо стандартного (с другого устройства) пакета в 24 байта ....Приходится сейчас переписывать код под OLED I2C дисплей . Очень сильно функционал урезается ищ-за разрешения , отсутствия цвета и .... размера .
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,451
989
59
Марий-Эл
@VitalyXXL, Был на форуме вопрос по конфликтам в ESP. Там это решили.
И что это за чип такой, где всё друг с другом конфликтует? Если драйвера не подходят, значит нужно написать свой.
 

VitalyXXL

✩✩✩✩✩✩✩
15 Янв 2021
4
0
Чип - HLW8032 . Измеритель для AC-сети . Выплёвывает на скорости 4800 24 байта . их разбираю - читаю где ток , напряжение и т д . Там стандартная библиотека HLW8032 . Есть в Ардуино на GitHUB . Работает правильно . И всё что с экраном по SPI тоже работает правильно . Вместе - не хотят .Я всё лишнее поубирал и выяснил , что при добавлении tft.init() сразу в порт идёт что-то неправильно .

Если не затруднит и вспомните как где кто решил эту проблему ,буду благодарен :)
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,451
989
59
Марий-Эл
@VitalyXXL, Если каждая библиотека по отдельности работают, а вместе не хотят.
Это идёт переинициализация портов.
Одна библиотека проинициализировала порты. Подключается вторая библиотека и переинициализирует их по своему. Первая библиотека перестаёт работать.
Решилось переключением SPI на другой порт.
 

VitalyXXL

✩✩✩✩✩✩✩
15 Янв 2021
4
0
Другой порт ? Я не силён в тонкостях "железа" ESP32.... Но как может SPI-библиотека вредить UART-ам . и наоборот ... ? С точки зрения инициализации и задействованных ресурсов . Выводы ESP32 никак не "пересекаются"
В моём коде дисплей ST7789 подключен на выводы GPIO,указанные явно .
Так сделано устройство:
DS - GPIO32
RESET - GPIO33
SDA - GPIO25
SCL - GPIO26
CS - -1 для дисплея без CS, или GPIO13 для плат с наличием CS ;

тестировались оба вида TFT-дисплеев . работают одинаково правильно
Соответственно , в коде есть #define с указанием этих выводов .
Тестирование устройства показало что всё инициализируется и работает как нужно.

Для Serial1 (или Serial2 , не важно ) - используются другие ноги , нежели по дефолту :

RX (приём данных ) - GPIO27
TX (передача данных , но нам она не нужна , мы только принимаем поток данных ) - GPIO14

при инициализации UART - скорость , контроль данных , вводы TX/RX задаются верно ; приём и разбор данных осуществляется без проблем . В точном соответствии с протоколом обмена HLW8032 . Что примеры из соотв.библиотеки , что из моего кода .
Разумеется , имеется согласование уровней 5в микросхемы HLW8032 и нашего 3.3в ESP32 . Иначе и данные не проходили бы (в лучшем случае)

Среда разработки - IDE Arduino 2.0 или Platformio - программа ведёт себя одинаково : по отдельности - всё работает . вместе - нет . как только "включаю" дисплей ( tft.init() ) данные в UART либо не доходят либо неверные .... дисплей при этом работает нормально .
Порядок инициализации тоже не влияет .
что

HLW.begin(....);
затем
tft.init();

что наоборот :
tft.init();
HLW.begin();

ничего не меняет в работе .

Как это победить ... ума не приложу
Если нужно , вечером могу скинуть кода программы для тестирования ....
 

VitalyXXL

✩✩✩✩✩✩✩
15 Янв 2021
4
0
Разумеется . Выбрал незадействованные для других дел выводы ... Всё-ж раздельно работает . и SPI-Дисплей и UART принимает данные ... Если бы ноги были неверно выбраны - не заработало бы :)
Тут уже 200 раз перепроверял .
Вопрос именно в конфликте UART и SPI при одновременной работе ...
китайцы , мать их :(