ARDUINO WAVGAT AVGA328P vs SSD1306_128X32

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
Всем привет, помогите побороть непонятную хре... плата AVGA328P и дисплей SSD1306_128X32 скетч //GyverDrink VICLER_MOD #define VERSION 6.9, при подключении дата кабеля в плату экран работает , но если источник питания от юсб то все включается кроме экрана, если не отключая от питания нажать на плате ресет то все работает, как побороть этот прикол?
 

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
Можно как то обойти этот момент, типа программно чекать загорелся ли дисплей и если нет
Как подключен экран?
Мб можно как то обойти, типа кинуть + на мини юсб Ардуино, или программно чекать дисплей, если не работает ребутнуть мк? Как реализовать? В голове только одно решения, сделать физическую кнопку на задней панели( опыта не хватает
 

Un_ka

★★✩✩✩✩✩
13 Июл 2020
243
77
других форумов.
У меня тоже Wavgat lgt328... зависает иногда, когда работает с шиной i²C. Я думаю можно сделать задержки в полсекунды до и после инициализации дисплея и посмотреть даст ли это какой-нибудь результат.
А можно ссылку на код или сам код?
 

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
У меня тоже Wavgat lgt328... зависает иногда, когда работает с шиной i²C. Я думаю можно сделать задержки в полсекунды до и после инициализации дисплея и посмотреть даст ли это какой-нибудь результат.
А можно ссылку на код или сам код?

менял библиотеку энкодера , там где пины вместо инпут пуллап на инпут и все места где еепром . апдейт на .врайт, так как этот мк не понимает команды гет и апдейт
 

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
От зависание можно попробовать избавиться снизив скорость шины i2c
изменение частоты не помогло, я так понимаю что если проблемы с зависанием тогда нужно занижать частоту, но я понизил до 600 из 900 возможных, на всякий случай.
 

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
Собрал все провода что бы уместить в корпус, частично прихватил соплями, теперь дисплей не стартует и при подключении дата кабеля ардуино, возможно где то наводки, но:
ВОТ РЕШЕНИЕ МОЕЙ ПРОБЛЕМЫ: при старте дисплея добавил задержку в 1сек.
delay(1000); <--------
Wire.begin();
Wire.setClock(WIRE_SPEED * 1000L);
disp.begin(&Adafruit128x64, 0x3C);

я понимаю что лучше не использовать delay() но я еще не силен в таймере от гайвера или как то еще реализовать. как я понял что старт дисплея выполняется только 1 раз при включении и от delay() ничего страшного не будет.
 

Андрей(Del13)

✩✩✩✩✩✩✩
4 Ноя 2020
21
1
При старте, в сетап, в delay нет ничего плохого. Это разово выполняется и не тормозит цикл
Здесь можно. У библиотеки wite.h для lgt328.... функции блокирующие т.е. while("невыполнимые условия при некоторых обстоятельствах").
вот мой корпус, если интересно, только клею, еще будет деревянный носик и покрыто все бесцветным лаком
0-02-05-5b32c2c102b3126d450b44dc7d61ce2355f524c758ed24656703b91743a081e1_b93013e9.jpg