Проблема с i2c oled

Тема в разделе "Arduino & Shields", создана пользователем daniyalsaidov, 9 апр 2021.

  1. daniyalsaidov

    daniyalsaidov Нуб

    Добрый день уважаемые форумчане!
    Недавно начал познавать замечательный мир Ардуино и подобных контроллеров, и загорелся заменить сгоревший микрконтроллер аквариумного LED светильника.
    Собрал на макетке вариант без мосфета и терморезистора - всё отлично работало, свет регулировался, таймер работал.
    Дополнил схему включением вентиляторов мосфетом с терморезистором и нарисовал схему впайки всей сборки на плату, впаял, и тут вылезла проблема: дисплей работает от нескольких до 10 секунд, а после крашится с полосами и без какой-либо реакции на ребут платы или управлением энкодером. При составлении схемы я выпаял пины RST, чтобы провести линию 5V под платой (может ли это повлиять?)
    Долго упорно проверял косякий пайки или повреждения, ничего не нашел
    По факту это первый мой более-менее серьезный проект, так что не отбрасываю возможности детский болезней.
    Схему и фотографию спаянной схемы прилагаю
    Энкодер и дисплей приведены к коннекторам на шлейфах от мат. платы.
    [​IMG]
    IMG_20210406_210446_1.jpg
    IMG_20210406_210453.jpg
    Из того что я еще попробовал:
    Выпять полевой транзистор - не помогло
    выпаять часы реального времени - не помогло

    Пробовал дополнительно подтягивать SDA SCL резисторами 10К к VIN - не появился прямой контакт между VIN и A1 и VIN и A4, после удаления резистора ведущего к NTC - прошло.

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

    Что использовано:
    NTC 10K;
    Arduino NANO;
    0.91 128x32 I2C OLED;
    Модуль DS3231;
    Модуль энкодера EC11;
    IRF520;
     

    Вложения:

    • menu.ino
      Размер файла:
      14,3 КБ
      Просмотров:
      98
  2. vvr

    vvr Инженерище

    фоточки это хорошо.
    а где схема ?
     
  3. Urban Geek

    Urban Geek Нуб

    Очень все непонятно написано. Дисплей изначально не работал или перестал после установки на плату?
    Так и не понял где какой контакт появился, но это явно лишнее. Подтяжка на этих дисплеях уже распаяна.

    Что прошло то? Начал нормально работать? Если работает после отключения термодатчика, значит в этой области и надо искать косяки.

    А вообще да, без схемы что-либо обсуждать не имеет смысла. Дисплей то понятно, на I2C висит, вы изобразите хотя бы как и куда подключены энкодер, NTC и транзистор.
     
  4. daniyalsaidov

    daniyalsaidov Нуб

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

    прямой контакт между VIN 5V - A4 и VIN 5V - A1, не знаю как назвать правильно но мультиметр в режиме прозвонки звенит при присоединении к этим контактам. После того как выпаял NTC - перестали звониться.

    Вот схемка без драйверов LED, которые управляются по ШИМ
    Schematic_daniyal_led_controller_2021-04-29.jpg
     
  5. Рокки1945

    Рокки1945 Гуру

    По схеме -
    R3 - 100 Ом , R4 - 100 КОм
    на А1 с делителя с точки где соединяются R2 и R1
    вентилятор - не помню уже надо диод ставить или нет
     
  6. b707

    b707 Гуру

    по схеме - термистор включен неверно, так на А1 всегда будет 5в
    Тразистор слева толи нарисован вверх ногами. толи включен неправильно - не могу понять
    Какой хоть мосфет - N или P
     
  7. Рокки1945

    Рокки1945 Гуру

    У как всё запущено :)
     
    parovoZZ нравится это.
  8. daniyalsaidov

    daniyalsaidov Нуб

    Перепроверил по плате, это я так криво нарисовал схему, исправил, R2 соединяет 5V с A1 и R1
    По поводу мосфета, выпаял тот что входит в сосатв MOSFET module(IRF520N, судя по всему - N) и подключал ровно в те же пины, у всех мосфетов одинаквая очередность контактов?
    Вот модуль с которого я его выпаял. При этом, если его полностью отсоединить (удалить R3 и полностью изолировать мосфет) проблема зависания экрана сохранятеся.
    Hf679826acd7e4a96ad13a912cd2cc61bK_1024x1024.jpg 57_28cf2ef5-5153-401c-a46f-8114dc712b9a_1024x1024.jpg

    Я на схеме допустил ошибку - R3 100 Ом, R4 10 КОм, уже исправил.
    Schematic_daniyal_led_controller_2021-04-29.jpg
     
  9. Рокки1945

    Рокки1945 Гуру

    сделайте отладку - оставьте в схеме только экранчик и прогоните стандартный скетч из стандартной библиотеки - если всё нормально шагайте дальше в том числе и по скетчу
    Update - там кстати кондёрчик бы не помешал - как у Вас с питанием?
     
    Последнее редактирование модератором: 30 апр 2021
  10. b707

    b707 Гуру

    а что запущено-то? :)
    Поинтересовался у ТС, какой у него мосфет - а то может как с термистором, ошибка в схеме
     
    Andrey12 нравится это.
  11. Urban Geek

    Urban Geek Нуб

    А почему у вас пины на ардуино RESET и +5V соединены вместе? Попробуйте их разъединить и запитать энкодер от +5v
     
  12. Рокки1945

    Рокки1945 Гуру

    По схеме - там кстати обычного дешманского 30 вольтового хватит за глаза - если ток не больше 1 Ампера
     
  13. daniyalsaidov

    daniyalsaidov Нуб

    Я пробовал отпаивать по одному из элементов, проблема сохранялась...я думаю что у меня какой-то косяк в разводке, но не понимаю какой.
    Питание разведено и на 12V - и 5V через USB, проблема проявляла себя вне зависимости от того как подключена плата, НО!
    Насчёт кондера я думаю попробовать, потому что DC-DC 12V питается от мощного БП 36V 6A (не знаю играет ли это роль)

    оба пина RST выпаяны из ардуино, это сделано чтобы можно было провести линию 5V сквозь плату.
     
  14. Urban Geek

    Urban Geek Нуб

    Да, 100 вольт и 10 ампер жирновато для управления светильником:)
     
  15. daniyalsaidov

    daniyalsaidov Нуб

    Я понимаю, но не может же это служить источником проблем?
     
  16. Urban Geek

    Urban Geek Нуб

    Конечно же нет, ИМХО источник проблемы 100% в монтаже. Поэтому я и не люблю эти паечные макетки, много раз я и сам на подобные грабли наступал. Вроде хочется сделать все побыстрее, а в итоге убиваешь кучу времени на поиск ошибок в этих "соплях":( Причем ошибка как правило лежит на поверхности, просто её не видно за всем этим обилием пятаков и перемычек.
    Мой вам совет: Разбирайте всю плату назад, и собирайте в том виде когда все работало, протестируйте её ОТ и ДО, а потом со свежим взглядом начинайте заново переносить на макетку, в последовательности ARDUINO -> OLED -> NTC. Сначала проверьте ардуину с одним только дисплеем, потом подключите датчик и еще раз проверьте, если все в порядке паяйте остальной обвес.
    И кто-то выше высказывался по поводу конденсаторов, полностью поддерживаю! Баночка в 220~470mF по питанию лишней не будет в любом случае.
     
  17. Andrey12

    Andrey12 Гик

    Дисплеи штука интересная. Я может сейчас и кощунство какое скажу, но попробуйте поменять библиотеку дисплея на Adafruit - https://github.com/adafruit/Adafruit_SSD1306. там есть пример для 128х32 погоняйте его, если все будет хорошо то ее и оставьте.
    У этих дисплеев все должно быть строго, не тот адрес строки, колонки или код символа которого нет в библиотеке указал и все улетаешь в чёрточки полоски на дисплее. Та библиотека что вы используете вполне может это не отслеживать, да и мало ли еще какие в ней косяки может совсем не аппаратная у вас ошибка, добавили кода и она вполне может перестать работать :-(
     
  18. Рокки1945

    Рокки1945 Гуру

    Такой транзистор - разве может от 5 вольт управляться ...
     
  19. daniyalsaidov

    daniyalsaidov Нуб

    В общем идея звучит хорошо, но меня смущает лишь то что на макетной плате точно такая же сборка и скетч отлично работает, а спайка отваливается секунд через 5-10
    Я уже всё выпаял, думаю зачистить полностью макетку от припоя(может есть какой лайфхак как сделать это быстрее?) и монтировать по одному девайсу и проверять как посоветовали тут ранее.
    Этот транзистор идёт в виде MOSFET module и спокойно управляет нагрузкой в 12V 0.32A в виде двух вентиляторов на макетке. У меня есть еще AOD4184A, но он SMD и не сильно отличается от текущего