Ардуино зависает. Помехи?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем orehov_alex, 29 май 2019.

  1. orehov_alex

    orehov_alex Нерд

    Приветствую всех. Делаю лабораторный макет на базе навигационного модуля. Начну по порядку: имеется плата Arduino Uno, к ней подключен модуль GY-86 по схеме: VCC - 5v, GND - GND, SCL - A5, SDA - A4. Сама плата через USB подключена к ноутбуку. Плата и модуль закреплены в металлическом корпусе, в свою очередь корпус жестко закреплен на малогабаритной поворотной установке МПУ-1 через поворотный кронштейн. Сама МПУ работает от 220 В. Все, больше никаких элементов в схеме нет.

    Так вот, в чем проблема: нужно снять показания например с гироскопа - все подключаю, заливаю готовый скетч, запускаю плоттер, убеждаюсь что показания с модуля начали считываться, запускаю поворотную установку и... через раз плоттер зависает, приходится перезагружать Ардуино, перевтыкать USB-кабель. Если не с первого раза, то зависает после нескольких переключений направлений вращения на МПУ или при смене угла наклона на кронштейне.

    Опытным путем я установил, что проблема скорее всего в поворотной установке, которая при включении создает какой-то сильный электромагнитный импульс, намертво вешающий неэкранированную плату на расстоянии до нее порядка 40 см. С металлическим корпусом ситуация конечно лучше, но 100% защиты он не дает. К сожалению, конструкцию менять уже нельзя, все должно располагаться там же, где находится сейчас, т.е. располагать датчик в полуметре от поворотной установки не вариант. Да и чего-то более современного на замену этой МПУ я на кафедре уже не найду.

    Что посоветуете:
    Усиливать экранирование? То есть менять или дополнительно экранировать корпус (в данный момент используется ПКУ 15-21 без кнопки, нормальных стальных корпусов без отверстий в местных магазинах я не нашел), отдельно экранировать провода?
    Быть может есть какие-то способы уменьшить чувствительность датчика и платы к помехам? Проблема в неправильном подключении платы?
    Разбираться с тем как подключена МПУ к сети и почему она дает такие большие помехи? Может провода от старости истлели или с заземлением проблемы?

    В общем, помогите советом или покажите куда думать. Честно скажу, ранее дел с Ардуино практически не имел, в электрике также не силен, все проблемы приходится решать по мере их поступления. Если необходимо, то скину схемы подключения или фото макета для понимая ситуации.
    Надеюсь на адекватные советы. Спасибо!
     
  2. фото сборки
     
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Плата питается от USB?
    Какая длина кабеля USB и от платы к датчику?
    С другим кабелем пробовал? Возможно, проводки в нем очень тонкие.
     
  4. parovoZZ

    parovoZZ Гуру

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

    носимые радиоустройства вообще не заземеляются. И ведь им помехи пофигу. Откуда вы это всё берёте? С какого забора читаете?

    Нарисовать схему, разрисовать пути возвратных токов интерфейсов. Отделить грязную нулевую шину от чистой.
    3 метра USB - это очень смело.
     
  5. orehov_alex

    orehov_alex Нерд

    Схема чего? Соединения датчика и платы? Платы и ПК? Как отделить? Можете объяснить простыми словами и поподробнее?
    Хм, провода что ли поменять?

    Установка вращается, и стандартный метровый кабель попросту намотается на нее спустя несколько оборотов. Да и вообще как я уже выяснил длина кабеля в моем случае никакой роли не играет.
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    Судя по фото, причина не в USB (он, кстати, хороший - с экраном и фильтрами).
    Думай как экранировать Arduino, плату датчиков и кабель между ними.
     
  7. parovoZZ

    parovoZZ Гуру

    что такое импеданс линии понимаем?

    что отделить? Надо соединить. Но сделать это правильно - в точках наименьшего потенциала. Тогда и помехи перетекать не будут.
     
    9xA59kK нравится это.
  8. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Внутри главного цикла вставьте подпрограмму "мигалка светодиодом", например с интервалом 1 секунду, и выведите светодиод на корпус коробки. Это позволит следить за Ардуиной без участия компа. Выведите заодно индикатор питалова на корпус коробки. - Например в моём ноуте весьма херовые УСБ разъёмы. Чуть пошевелишь кабель - жди любых фокусов. Будете видеть состояние питалова. Такие вещи полезны для локализации проблем.
     
    Последнее редактирование: 29 май 2019
  9. Daniil

    Daniil Гуру

    состояние ардуинки.
    Это полезно, чтобы ещё раз убедиться, что мк зависает.
    ТС, что импульс по питанию, конечно, может выбить мк из нормального состояния.
    Выше вам советовали разобраться с землями. Попробуйте землю силовой части и землю мк объединять строго около БП.
    Топология земли должна выглядеть как "звезда".
    Таким образом импульсы не должны "доходить" до мк.
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Есть копеечные штуки типа плавного пуска лампы накаливания. Не знаю как они устроены - может диммер, может NTR терморезистор. Они уменьшают пусковые токи. Поставьте на движок. Не забудьте подобрать по мощности. Хоть програмёр я еще тот, рискну вякнуть - В программе избегайте команд бесконечного ожидания ответа от периферии. Если что-то не отвечает за положеное время - выход и сообщение об аварии. Например - бог его знает как ведет себя гироскоп при вибрациях. Может не отвечает. Главное чтоб гл. цикл не зависал.
     
    Последнее редактирование: 29 май 2019
    Daniil нравится это.
  11. orehov_alex

    orehov_alex Нерд

    Нет, не понимаю. Я же написал, что в электронике не силен.
    Вот это:
    Спасибо за совет, попробую завтра подключиться с другого ноутбука и заодно понаблюдать за индикаторами.

    Около какого БП конкретно вы имеете ввиду?

    Всем спасибо за ответы, завтра попробую с кем-нибудь более прошаренным чем я переварить информацию.
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Из картинки следует, что поворотником ардуина не управляет ? Просто лежит на нем ? Положите изолирующую прокладку между ардуинной коробкой и корпусом поворотника. Может меньше помех будет. А лучше - виброгаситель типа микропорки.
     
    Последнее редактирование: 30 май 2019
  13. Daniil

    Daniil Гуру

    Нужна схема.
     
  14. orehov_alex

    orehov_alex Нерд

    Да, все правильно. МПУ (поворотник) управляется автономно, а Ардуино просто зафиксирована на ней и измеряет угловую скорость и некоторые другие значения. Плата и модуль находятся внутри корпуса. Он, в свою очередь, установлен на МПУ через деревянный кронштейн. То есть, прямого контакта корпус с МПУ, по идее, не имеет. Можно ли расценивать эту фанерку как изолирующую прокладку или нужен другой материал?

    Схема соединения датчика и платы? Даташита конкретно на GY-86 я в не нашел, так что ориентировался на подключение аналогичных датчиков. Затем плата просто питается от USB. Вот и вся схема.
     

    Вложения:

    Последнее редактирование: 30 май 2019
  15. orehov_alex

    orehov_alex Нерд

    И еще такой вопрос: сильно ли влияют все эти эксперименты с помехоустойчивостью на платку и модуль? Может ли на них что-нибудь отвалиться или сгореть?
     
  16. может, но маловерятно
     
  17. orehov_alex

    orehov_alex Нерд

    Мда, не воодушевляет.

    Возможно я плохо объяснил ситуацию, но на всякий случай еще раз поясню: поворотная установка и платка Ардуино с самим датчиком электрически никак не соединены между собой. Параметры вращения задаются конкретно на этой установке, Ардуино ничем не управляет, она просто проводит измерения при включенной вращающейся установке и передает их на плоттер.
     
  18. без фото и кода тут нечего обсуждать
     
  19. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Вы запитали плату от 3,3 вольта. Можно от 5В. На плате гироскопа есть понижающий стабилизатор.
    ПС. Попробуйте запитать от 5 вольт с Ардуины. Носом чую - дело в питании гироскопа.
     

    Вложения:

    • MPU9250.pdf
      Размер файла:
      945,6 КБ
      Просмотров:
      296
    Последнее редактирование: 30 май 2019
  20. KindMan

    KindMan Гуру

    Так ардуина зависает или плоттер?
    Если ардуина, то давайте код посмотрим. У меня ещё ни разу ардуина не "зависала" от помех, просто перезапускается.