Можно ли перегрузить цифровые контакты для Arduino?

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

По сути, это был самоуправляемый автомобиль, похожий на Roomba, который включал в себя несколько светодиодов (напоминающих бытовую технику), три датчика расстояния, ЖК-экран, датчик движения, аудиоусилитель с динамиком и модуль SD-карты для хранения данных. wav, модуль Bluetooth для подключения к MIT App Inventor и драйвер двигателя, управляющий двумя электродвигателями. Это длинный список модулей, поэтому потребовалась Arduino Mega. При сборке всех этих модулей и построении кода я выполнял прерывистые тесты, которые изолировали бы предотвращение препятствий и вождение, включение приборов (светодиодов), а также отправку и получение данных из приложения для телефона. Каждый аспект проекта работал изолированно, пока я не объединил все.

Когда все было объединено, вместо того, чтобы просто двигаться вперед, пока не будет обнаружено препятствие, как запрограммировано, машина будет трястись и не реагировать на стены или препятствия. Кроме того, ЖК-экран был сильно затемнен, в отличие от того, когда Arduino работал от питания ноутбука. Особенно, когда телефонное приложение требовало включения нагрева или переменного тока, включались соответствующие светодиоды, но вся система, казалось, реагировала на первоначальную нагрузку, необходимую для чтения файла .wav и воспроизведения соответствующего звука, что усугубляло дрожание.

Итак, мой вопрос заключается в следующем: при всех этих модулях, подключенных к Arduino, возможно ли, что количество модулей, которым требуется некоторый ввод с цифровых контактов, выявило ограничение по току? Все эти проблемы усугубились, когда питание ноутбука было заменено 9-вольтовой батареей. Я смог подтвердить, что проблема была не в коде, поскольку я просто закомментировал основные части, но оставил все контакты инициализированными. Кроме того, если есть ограничение по току, есть ли способ объяснить, почему? Спасибо, что прочитали мой длинный пост и оставили отзыв.

, 👍1

Обсуждение

какую батарейку на 9 В вы используете?, @jsotola

Аккумулятор один из этих блочных аккумуляторов на 9 В, которые также часто используются в дымовых извещателях? Вы не можете использовать эти батареи, так как они не в состоянии обеспечить достаточный ток. Они предназначены для маломощных приложений. И как питаются все модули и моторы? Все через контакт Arduino 5V?, @chrisl

Это блочная батарея на 9 В, я провел небольшое исследование и нашел простой разъем, который, по-видимому, был сделан для Arduinos. На самом деле, я подумал, что, возможно, изначально он не давал достаточного тока, поэтому я подключил две из этих 9-вольтовых батарей параллельно друг другу, надеясь увеличить выходной ток. Все модули, которые я перечислил, питаются через контакт 5 В, который я подключил к макетной плате, а цифровые контакты выполняют все функции управления и передачи данных., @Jared M

блочная батарея 9 В состоит из шести элементов AAAA ... попробуйте использовать шесть элементов AA или шесть элементов C, @jsotola

Надеюсь, вы не подключаете все это к встроенному регулятору напряжения 5 В. С более высокими токами от элементов AA / C и множеством датчиков, двигателей и т. Д., Он будет довольно горячим или даже отключится., @KIIV

На протяжении всего этого эссе я думал: «Это 9-вольтовая батарея… это 9-вольтовая батарея…» … и это было так., @Majenko


1 ответ


Лучший ответ:

2

Как упоминалось в комментариях, вы не можете питать своего робота от блочной батареи 9 В. Они предназначены для проектов с низким энергопотреблением (например, детектор дыма) и не могут обеспечить достаточный ток для правильного управления даже только двигателями. Использование 2 из них не очень помогает. Вам нужно перейти на другой тип батареи. Если вы хотите остаться с щелочными батареями, вы можете использовать шесть батареек AA или C-элементов, как предложил jsotola. Но вы можете перейти на подходящую батарею LiPo/LiIon (в сочетании с подходящим модулем зарядного устройства). Это даст вам достаточно энергии для всех ваших потребностей, и при этом будет перезаряжаться.

Другая проблема: кажется, что вы обеспечиваете питание всех компонентов (датчиков и двигателей) через контакт 5V Arduino. Но особенно с двигателями вы можете легко достичь ограничения тока регулятора напряжения на Arduino. При прохождении через него большего тока, чем рекомендуется, регулятор уйдет в аварийное отключение (с настоящим Arduino; с дешевыми клонами регулятор расплавится и разрушится).

Вместо этого необходимо убедиться, что потребляемый ток не превышает максимальный ток регулятора напряжения (также зависит от подаваемого напряжения). По крайней мере, двигатели должны быть запитаны параллельно Arduino, чтобы ток двигателя не протекал через Arduino. Непонятно, как вы управляете моторами. Если используете моторный шилд, то ищите на нем клемму для внешнего питания. У большинства моторных щитов они есть. В зависимости от батарей, которые вы будете использовать в будущем, а также от двигателей и щита, вы можете напрямую подключить напряжение батареи к шилду. Либо нужно купить дополнительный (импульсный) регулятор напряжения, снижающий напряжение аккумулятора до 5В. В этом случае убедитесь, что регулятор может обеспечить необходимый ток плюс некоторый зазор над головой.

,

Спасибо за ваш вклад, я включил информацию о драйвере двигателя, а не о самих двигателях. Двигатели имеют собственный основной источник питания, массив из 4 батареек типа АА. Это цифровые контакты Arduino, которые управляли драйвером двигателя., @Jared M