Arduino Uno и помехи от моторов

Тема в разделе "Arduino & Shields", создана пользователем DmitryDzz, 27 ноя 2011.

  1. DmitryDzz

    DmitryDzz Нуб

    У меня Arduino Uno и 2A motor shield от DFRobot. Если использую один источник питания и для Ардуино, и на двигатели через мотор шилд, управление чудит: двигатели крутятся не туда, не с той скоростью, не крутятся и т.п. Стоит разделить питание (использовать 2 источника), например, подключить Ардуино к USB, всё начинает прекрасно работать. Я отработал пару-тройку тупиковых теорий: поднимал и ток и вольтаж источника питания, вылизывал софт - не помогло. Сейчас пришёл к выводу, что это наводки от моторов. Я использую четырёхколёсную Амперковскую тележку. Моторы её, по два включены параллельно.
    Хотел бы проконсультироваться у бывалых радиолюбителей :) Очень уж не хочется ставить второй источник питания.
    1. Прав ли я в своём выводе?
    2. Поставить ли конденсаторы на двигатели? Не будут ли они мешать ШИМу? Какие? 0.1мкФ?
    3. Мне показалось, что просится дроссель на питание Ардуино. И вот что я нашёл:http://robocraft.ru/files/ArduinoSeverinoSchematic.png. Здесь между 7 и 20 ногами АТМеги как раз стоит дроссель. А вот на Ардуино я этого дросселя не нашёл. Ни живого на плате, ни нарисованного тут: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf.
    Решал ли кто подобные проблемы? Кстати, похожая вещь описана здесь: http://habrahabr.ru/qa/6507/. Но подтверждения решения нет :(
     
  2. DmitryDzz

    DmitryDzz Нуб

    ой. Что-то я ссылки не осилил... :oops:
    Ссылки исправил.
     
  3. Dmitriy Kunin

    Dmitriy Kunin Гик

    Нет четырёхколёсной тележки под рукой, не сочтите за труд, оторвите пару моторов, оставьте два передних или задних и отпишите результат...

    зы. С ссылками лучче не умничать, а делать Ctrl+c --> Ctrl+v Форум такой подход отрабатывает грамотно.
     
  4. DmitryDzz

    DmitryDzz Нуб

    Нашёл такое решение: http://forum.rcdesign.ru/f107/thread144847.html. Мне понадобится другой DC/DC преобразователь, но мысль ясна. Наверняка будет работать. Но уж больно "тяжёлое" и дорогое решение. Как из пушки по воробьям.
     
  5. DmitryDzz

    DmitryDzz Нуб

    Дмитрий, спасибо за отзыв, ужасно не хочется :) Я не предполагал такого подвоха и весь монтаж на пайке. К тому же сегодня в тележку я умудрился впихнуть аж две аккумуляторные сборки по 12 В в параллель (20 шт АА влезло!) и добраться до моторов решусь только от безысходности :)
    Но мысль интересная, спасибо. Левые и правые двигатели соединены параллельно. Думаете, сильные помехи от увеличения тока на двигателях? Кстати, сегодня я поставил 104-е конденсаторы на каждый двигатель. Не помогло.
     
  6. Dmitriy Kunin

    Dmitriy Kunin Гик

    Вы оптимист, я практик...
    В мою бытность специалиста по автомобильному звуку, подобные решения помогали максимум в 15% случаев.
    Надо искать источник помехи.
    У меня был случай, когда в устройстве на PIC контроллере я несколько месяцев искал неконтакт по питанию, три разъёма перепаял, перекомпиляция и перепрошивка решила проблему "неконтакта"...
     
  7. Dmitriy Kunin

    Dmitriy Kunin Гик

    Весь сентябрь эксперементировал с движками и ниразу не нарвался на что-либо подобное, но и в параллель не включал. Сейчас я не дома и пары моторов у меня нет, да и моторшилдов тоже.
     
  8. nailxx

    nailxx Официальный Нерд Администратор

    Well, well. Действительно, есть достаточно упоминаний о наводках моторов на микроконтроллер. И, видимо, не спроста: не бывает дыма без огня. Но! Лично у меня всё хорошо работало при запитке только от блока питания (1200 мА, импульсный, с витрины) или только от 5 Ni-MH батареек в очень похожем сценарии. У вас отличие только в модели Motor Shield?

    И, кстати, в чём проблема отключить 2 мотора для эксперимента? Просто выньте их из клемника на Motor Shield. Вы же их не припаяли туда?!
     
  9. DmitryDzz

    DmitryDzz Нуб

    Да, у меня чуть другой Motor Shield, остальное такое же. Правда ещё USB Host Shield, телефон с Android и управление с компьютера по WiFi ;) И кто-то тут оказался с очень тонкой душевной организацией...

    Я пробовал другой Motor Shield: от Freeduino. Результат был тот же.
    Вынуть из клемников попробую, но на одном клемнике уже два двигателя, включённых параллельно. Думаю, проблема именно в параллельном включении.
     
  10. Dmitriy Kunin

    Dmitriy Kunin Гик

    Расскажу одну историю :)
    Случилось так, что у моего клиента, кошка отгрызла хвост мышке, мышка в отличие от кошки была очень породистая - Microsoft, но это её не спасло и она сдохла.
    Клиенту была куплена радио мышь, той-же породы, а старую я забрал себе и придя домой, организовал вскрытие трупика и замену провода, провод взял от непородистой мышки, как потом было замечено не экранированный...
    [​IMG]
    Теперь если позвонить, на лежащий, вот так, на столе мобильник, мышь отваливается как usb устройство и либо сама, через некоторое время находится, либо лезу под стол вынимать-вставлять usb разъем.
    Короче, пока под руку не попадется мягкий шнурок и я его не перепаяю ( пару лет не нашелся :)), мобильник на стол я не кладу...
    Супер источник помех!
     
  11. DmitryDzz

    DmitryDzz Нуб

    Думаю, надо отписаться как мои дела :)

    Как и грозился, проблему наводок от двигателей я решил DC-DC преобразователем. В Терре ( http://www.terraelectronica.ru) приобрёл TEN 8-1221. Вещь оказалась полезная во всех отношениях. Преобразователь обладает замечательным фильтром, грязные входные 12В (параллельно двигатели) он превращает в +5В и -5В по 0.8А, которые я превратил в +5В и +10В. 10В пошли на питание Ардуино, а 5В разгрузили стабилизатор Ардуино и кормят 2 моих сервопривода (у меня ещё и сервы в модельке). Если понадобится, можно и шину USB Host-а запитать. Но тут пока Ардуиновские 5В справляются.
    Должен предупредить: ложка дёгтя - это цена решения. Во-первых, преобразователь обошёлся почти в 900 руб., а во-вторых его КПД 83%, т.е. 17% греют комнату.
     
  12. Alex

    Alex Нуб

    У меня Arduino Uno и motor shield. Но не тот, который вы сейчас продаёте, а слабенький.

    Платформа при движении уходит влево, озадачился энкодером. Взял щелевой оптический датчик tsct-1202 (фотодиод светит на фототранзистор, закроешь щель - нет сигнала, откроешь - опять есть).
    датчик подключил на 2-й пин, это нулевое прерывание, хотел считать обороты.

    Так вот, при включении мотора за 5 секунд происходит от 500 до 1500 срабатываний длительностью от 0 до 30 миллисекунд. Срабатывание происходит как при постоянно закрытой щели, так и при постоянно открытой. Почему и как бороться?

    Питание от алкалиновых батареек, от USB, от аккумуляторов GP , от Кроны - все одинаково, только число срабатываний отличается. Мотор не на полную, на 150.

    можно, конечно, купить еще и 5 Ni-MH батареек, но где гарантия, что это поможет ?

    PS
    пока мотор не включен - считает правильно
     
  13. DmitryDzz

    DmitryDzz Нуб

    Двигатель не от стабилизатора Ардуино питается? Это я так, на всякий случай...
    Если в своём коде уверены, то, мне кажется, очень похоже на мой случай. Если не затруднит, попробуйте для проверки запитать двигатель любым отдельным источником питания - батарейка, адаптер телефона, что угодно. Если всё нормализуется, будем думать дальше :). Конденсаторы на моторы, экранирование, фильтр, раздельные источники для электроники и двигателей, или DC-DC преобразователь, как поступил я.
     
  14. Alex

    Alex Нуб

    В последних опытах питание моторов от платы motor shield, к самой motor shield питание отдельно не подводилось.
    Сейчас подвел +5В от отдельного блока питания к "дырочке" с надписью VIN на motor shield, а минус источника питания - к "дырочке" GND.
    Результат тот же.

    Кстати, а можно же 2-й пин просто соединить с GND без всяких датчиков, это же значит постоянный 0 на вход, так? Я проделал это сегодня, и, если включить мотор, то срабатывает прерывание.

    Некоторое время назад я собирал на макетке схему как на картинке, и все равно прерывания срабатывают. При этом сама ардуина была подключена к USB, а батарейный блок - как нарисовано.

    Получается, что motor shield тут не виноват, засада живет в самой ардуине.
    Может у меня бракованная плата? или я попортил чем нить ?
     

    Вложения:

    • encoder 2.png
      encoder 2.png
      Размер файла:
      65,6 КБ
      Просмотров:
      2.152
  15. Pioneer_21

    Pioneer_21 Нуб

    у меня тупо такая же проблема. уже год не могу найти решение. делаю автоматику на ворота с двумя актуаторами. уже вместо герконов в актуаторах поставил оптопары, вместо импульсников поставил трансформаторные блоки питания, сделал кучу экспериментов в итоге буру соедения GND с пином который считает обороты (по прерыванию) и он падла всеравно срабатывает. Как это обойти. У меня Arduino Mega 2560
     
  16. Alex

    Alex Нуб

    Я тогда решил свою проблему увеличив количество конденсаторов на моторах и более аккуратной пайкой этих кондёров
     
  17. KellaKilla

    KellaKilla Нерд

    Что то подробное было описано на хабре- там делались новые мозги для больших станков и проект сначала готовился для Arduino, но потом перешли на Nukleo ( если память не изменяет) именно из за помех. Нашел: http://habrahabr.ru/post/256981/
     
  18. EvilGrym

    EvilGrym Нуб

    Проблема шума от сервопривода на Ардуино решается с помощью UBEC. Цена- копьё, китайцы в помощь. По состоянию на 05.01.2017 цена вопроса 145рублей на али экспрессе.
    Не шумящая Схема подключения сервопривода на Arduino на вложенной картинке.
     

    Вложения:

    Последнее редактирование: 6 янв 2017