Проект Ардуино. USB+внешний источник питания - работает нормально. Нет USB - все сходит с ума

У меня есть эта схема:

введите описание изображения здесьЭто простой проект - система фокусировки для взятого объектива и анаморфотного адаптера. У меня три горшка. Первую использую как манипулятор. Второй используется для получения положения сервопривода непрерывного вращения (JX DC6015 Mod) - двигатель №1. Третий потенциометр используется для управления положением другого сервопривода непрерывного вращения (JX DC6015 Mod) — двигателя №2. Есть также несколько кнопок и диодов для калибровки. Мотор №1 вращает снятый объектив, а мотор №2 вращает адаптер.

Что ж, давайте посмотрим на схему. Еще у меня там диод 1N4007 и цоколь 47мкФ. Я использую эту схему, потому что схема даже не включилась, когда я попытался запитать ее от батареи. Теперь хоть включается. Но оставим это на мгновение в стороне.

Основная проблема заключается в том, что все работает идеально, когда я использую внешний адаптер переменного тока (или аккумулятор) с USB-разъемом Nano, подключенным к моему ноутбуку. Как только я отключаю кабель USB, система сходит с ума. В случае, если он подключен к адаптеру AC-DC, он просто начинает вращать сервоприводы на несколько оборотов по часовой стрелке, а затем назад. В случае, если он питается только от батареи, сервоприводы просто очень быстро вращаются против часовой стрелки или по часовой стрелке и никогда не останавливаются.

Мне кажется, что у меня проблема с петлей GND. Я попытался развязать свои потенциометры, добавив по 3 колпачка на каждый потенциометр, соединяющий сигнальный контакт с GND, но дела пошли еще хуже. Это не работало даже с USB, подключенным к Arduino. Сервоприводы вращались по часовой и против часовой стрелки, меняя направление очень быстро.

Я попробовал два других контроллера Arduino, но все было так же.

Я проверил все GND. Все они связаны вместе.

Затем я решил попробовать изолировать VCC и GND от сервопривода, поставив NME0505SC между источником питания и Arduino. Но и это не помогло.

Что можно сделать, чтобы он работал только от одного источника питания?

Fritzing должен быть в состоянии дать вам принципиальную схему, а не схему подключения, которую вы опубликовали. Схема предпочтительнее на этом сайте, но в этом случае могут быть полезны обе.
Попробуйте подключить Nano от зарядного устройства USB для телефона. Если это работает так же, как при подключении к ноутбуку, то я подозреваю, что Nano не может терпеть шум питания двигателя.
Но мне нужно, чтобы он питался только от одного источника. Стоит ли пробовать RC фильтр. Но я не знаю частоту этого шума. Я нашел проект обработки, делающий осциллограф из Arduino. Я попытаюсь измерить шум на 5V Arduino и посмотреть, изменится ли он при запуске сервопривода.
Попробуйте предложение, которое @transistor сделал первым. Это простой способ сузить проблему. «Осциллограф», сделанный из Arduino, может работать недостаточно хорошо, чтобы вы действительно увидели проблему. Кроме того, вы только что собрали его из кусочков. Как вы будете уверены, измеряете ли вы проблему с вашей схемой или отслеживаете проблему с помощью осциллографа?
Предложение @transistor очень очевидно. Как я писал в своей теме, он отлично работает, когда Arduino подключен как к источнику питания USB, так и к адаптеру переменного тока. Вопрос как заставить его работать только от одного блока питания?
Наиболее очевидная проблема, которую я вижу, это то, что вы не подаете достаточное напряжение на контакт питания VIN. В документации для Arduino Nano указано, что VIN должен быть 7-12 В постоянного тока, и вы подаете 5,6 В постоянного тока (батарея) - 0,6 В постоянного тока (через этот диод), оставляя только 5 В постоянного тока на VIN. Таким образом, вы не соответствуете характеристикам отсева для встроенного линейного регулятора напряжения 5 В постоянного тока, и поэтому вы не получаете регулируемое питание 5 В постоянного тока на плате, и поэтому плата ведет себя хаотично.
Я использовал повышающий преобразователь постоянного тока для Arduino. Это не помогло. Для меня это кажется контуром заземления или проблемой шума. Но тогда изолятор должен решить ее, не так ли? Я обнаружил, что у кого-то была похожая проблема, и решил ее, добавив колпачок 1nf к разъему двигателя постоянного тока. У меня пока нет таких колпачков, чтобы проверить, но постараюсь достать к понедельнику, а там посмотрим.
Слушайте @JimFischer. Arduino использует встроенный стабилизатор 1117 на линии Vin со значительным падением напряжения. Дайте ему как минимум 7+ В или стандартный сетевой адаптер 12 В AC-DC, а не какой-то неизвестный «повышающий DC-DC».
Я полагаю, что вы неверно истолковали понятие «проблема шума контура заземления». Проблема контура заземления возникает, когда используются ДВА заземления для ДВУХ разных источников. И, по вашему мнению, когда используются два источника, именно здесь у вас нет проблем, что противоположно тому, что иногда происходит с контурами заземления.
Считайте, что это не случай. Поменял сервоприводы JX 6015 на Доман с почти такими же характеристиками и все работает нормально. Единственное, у Домана плавная регулировка скорости только по часовой стрелке и почему-то всего три скорости против часовой. Доман не соответствует требованиям моего проекта. Так что дело не в напряжении, а в шуме.

Ответы (3)

В дополнение к моему комментарию относительно требования, чтобы напряжение на Arduino Nano В я Н контакт питания всегда должен быть 7–12 В постоянного тока, вот несколько дополнительных рекомендаций по устранению неполадок.

  1. При устранении неполадок с источником питания не используйте вольтметр . ВСЕГДА используйте цифровой запоминающий осциллограф (DSO) (предпочтительно) или аналоговый запоминающий осциллограф с достаточным запасом памяти (если у вас нет DSO), чтобы наблюдать зависимость напряжения источника питания от времени в течение разумного периода времени, например, 200 – 500 миллисекунд.

  2. Используя DSO, наблюдайте за нерегулируемым напряжением на выходе Nano. В я Н контакт ввода питания. Гарантировать В я Н никогда не падает ниже минимального входного напряжения регулятора, которое для Arduino Nano составляет 7 В постоянного тока (см. спецификацию для Arduino Nano). Убедитесь, что это нерегулируемое напряжение не создает неприемлемых проблем, таких как: большие скачки напряжения; большая пульсация; напряжение периодически выходит за пределы диапазона 7–12 В пост. тока и т. д.

  3. Используя DSO, наблюдайте за напряжением на выводах питания Nano 5 В постоянного тока и 3,3 В постоянного тока, ВО ВРЕМЯ РАБОТЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. Убедитесь, что напряжение на выводе питания 5 В постоянного тока находится в диапазоне 4,95–5,05 В постоянного тока (см. техническое описание LM1117 ), а напряжение на выводе питания 3,3 В постоянного тока находится в диапазоне 3,267–3,333 В постоянного тока (см. техническое описание LM1117 ). Проверьте наличие больших скачков напряжения, падений напряжения, чрезмерной пульсации и т. д. — т. е. всего, что ненормально на шине питания постоянного тока, что может привести к «зависанию» Arduino или окружающих схем: спонтанные сбросы, аналоговые -сбои цифрового преобразования и т.д.

Один последний комментарий. На веб-странице Arduino Store для Arduino Nano указаны противоречивые значения требуемого диапазона напряжения для VIN. В разделе «Технические характеристики» указано, что требуемый диапазон VIN составляет 7–12 В постоянного тока, что мне кажется разумным (правильным). Но в разделе «Документация> Питание» утверждается, что требуемый диапазон VIN составляет 6–12  В постоянного тока. Эти 6 В постоянного тока НИЖЕ заявленного 6,2 В постоянного тока LM1117IMPX-5.0 (см. техническое описание LM1117 ), что является рискованным делом для серийного продукта. Если VIN даже немного падает ниже 6,2 В постоянного тока, вы получаете «неопределенное поведение» регулятора напряжения Nano LM1117IMPX-5.0.

Как вы думаете, почему он хорошо работает с другим сервоприводом?
@AntonZimin, Джим Фишер (и я) не «думаю». Мы уверены, что ваша проблема в недостаточно провисшем блоке питания. Другой сервопривод работает, потому что он, вероятно, имеет меньший пусковой ток при управлении, и источник питания меньше проседает. Это работает случайно. Вы можете назвать это «шумом». Но если температура окружающей среды изменится или аккумулятор немного разрядится, он снова перестанет работать. Зафиксируйте входное напряжение или регулятор. По крайней мере, удалите ваш последовательный диод.
@AntonZimin, не тратьте слишком много времени, пытаясь угадать, в чем может быть проблема. Используйте тестовое оборудование, и в частности DSO, для проведения полезных измерений/тестов, которые могут с уверенностью сказать вам, что происходит на контакте ввода питания Nano VIN, а также на выводах питания 3,3 В и 5 В. Мы можем целый день пытаться строить догадки и гадать, в чем может заключаться проблема, но обычно это пустая трата времени. Пятнадцать минут тестирования с DSO могут сказать вам, работают ли регуляторы напряжения Nano номинально или нет.
Когда я удаляю диод, он даже не включается, если я пытаюсь запитать его от батареи. Я пытался подать на Arduino отдельное питание 12 В со всеми подключенными заземлениями, и оно выключилось через 10 секунд из-за перегрева.

Некоторые дополнительные мысли и предложения по устранению неполадок.

Мысли

  1. В Интернете есть множество статей, в которых обсуждаются проблемы шума источника питания, вызванные соединением аналоговых схем, цифровых схем и компонентов с электрическими шумами, таких как двигатели постоянного тока. В этих статьях обсуждаются различные стратегии снижения шума источника питания в схемах со смешанными доменами. Попробуйте выполнить поиск в Интернете по ключевым словам « заземление смешанных сигналов » или « +заземление смешанных сигналов макетной платы » для статей, связанных с макетными платами. Например: см. статью Уолта Кестера в Analog Dialog под названием «Заземление и развязка: изучите основы сейчас и избавьте себя от горя позже! Часть 1: Заземление» .(nb Воспользуйтесь ссылкой для загрузки, чтобы получить версию этой статьи в формате PDF. Веб-страница обрезает часть информации в конце статьи.)

  2. В вашем исходном сообщении не упоминается значение сопротивления вашего потенциометра. Имейте в виду, что эти три потенциометра подключены параллельно к контактам питания 5 В постоянного тока и GND Nano. Например, если каждый потенциометр имеет резистивное (сквозное) сопротивление дорожки 100 Ом, эквивалентное сопротивление этих трех потенциометров, включенных параллельно, составляет 100/3 = 33,3 Ом, что будет непрерывно потреблять около 150 мА от 5-канального датчика Nano. Контакт питания В постоянного тока. Плохо.

  3. Убедитесь, что ваши потенциометры подключены правильно, чтобы сквозные клеммы сопротивления «дорожки» каждого потенциометра были подключены к контактам Nano 5 VDC и GND. Убедитесь, что клемма стеклоочистителя каждого потенциометра не подключена ни к контакту 5 В постоянного тока, ни к контакту GND на Nano.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Предложения по устранению неполадок

  1. Удалите все периферийные схемы с макетной платы и Arduino Nano, т. е. удалите светодиоды, потенциометры, кнопочные переключатели и серводвигатели.

  2. Подключите источник питания 12 В постоянного тока к контактам VIN и GND Nano и запустите свой код на Nano. Используя DSO или вольтметр постоянного тока, контролируйте вывод питания 5 В постоянного тока Nano в течение не менее пяти минут. Убедитесь, что встроенный в Nano линейный регулятор напряжения LM1117IMPX-5.0 не перегревается и не выключается, что может привести к падению напряжения на выводе 5 В постоянного тока Nano до (приблизительно) нуля.

  3. Отключите источник питания 12 В постоянного тока от контактов VIN и GND Nano. Переустановите ТОЛЬКО три кнопочных переключателя. Используя процедуру из шага 2, отслеживайте напряжение на контакте питания 5 В постоянного тока Nano в течение пяти минут.

  4. Предполагая, что на шаге 3 проблем не обнаружено, выполните следующие действия. Измените исходный код, чтобы включить три светодиода и никогда не выключать их. Оставьте кнопочные переключатели на месте и повторите шаг 3 для трех цепей светодиодов, т. е. в шаге 3 замените «три кнопочных переключателя» на «три цепи светодиодов». Убедитесь, что плата не перегревается при непрерывной работе светодиодов в течение пяти минут.

  5. Предполагая, что на шаге 4 проблем не обнаружено, оставьте на месте кнопочные переключатели и светодиоды и выполните шаг 3 для трех потенциометров. Используйте то же программное обеспечение, что и в шаге 4, которое включает светодиоды, но не выключает их. Убедитесь, что плата не перегревается при непрерывной работе этой комбинации цепей в течение пяти минут.

  6. Предполагая, что на шаге 5 проблем не обнаружено, оставьте на месте кнопочные переключатели, светодиоды и потенциометры и выполните шаг 3 для двух серводвигателей. Используйте то же программное обеспечение из шага, которое включает светодиоды, но не выключает их. Убедитесь, что плата не перегревается при непрерывной работе этой комбинации цепей в течение пяти минут.

Я добавил диод Шоттки и конденсатор 2200 мкФ перед vin, и это решило проблему. Это правда была проблема с питанием, но я не стал повышать напряжение, просто поставил большой колпачок, и он отлично работает с переменным током. Что касается батареи, то, похоже, я должен попробовать другую или удвоить ее.