Причины, по которым нельзя подключать реле непосредственно к цифровому контакту Arduino

Изучив различные схемы управления реле через Arduino, я заметил, что в большинстве случаев транзисторы используются для переключения отдельного источника питания в катушку реле, а не для непосредственного питания реле 5-вольтовым выходом от вывода ввода-вывода Arduino. Например, у меня есть 5-вольтовое реле DPDT, а также небольшой двигатель постоянного тока. Я хочу управлять обоими непосредственно с моего Arduino UNO (SMD - клон) с процессором Atmel328? Было бы целесообразно продолжить?

Если нет (скорее всего):

  1. Может ли кто-нибудь дать подробное объяснение, а также важные предостережения о текущих лимитах и прочем?

  2. Как можно управлять такими компонентами, не рискуя Arduino? Каковы некоторые общие средства для достижения этой цели?

  3. Какие другие устройства могут нанести вред плате Arduino (или любому блоку микроконтроллера) аналогичным образом?

Я всего лишь новичок, который хочет быть предельно осторожным. Спасибо.

, 👍9

Обсуждение

Хотя недавно, когда я впервые столкнулся с Arduino, я использовал контакты ввода-вывода непосредственно для питания игрушечного двигателя постоянного тока и изменения его направления путем включения и выключения реле DPDT таким же образом. Кажется, пока все в порядке., @DorkOrc


5 ответов


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

10

Выводы процессора имеют строго ограниченные возможности привода тока.

  • Номинальные значения могут варьироваться в зависимости от того, нужен ли вам высокий или низкий привод.
  • Некоторые процессоры поставляют только несколько мА, и самое большее, что вы обычно официально получаете, - это диапазон от 20 до 30 мА.

  • Обычно существует общий предел тока для процессора, и только несколько контактов могут обеспечить пиковый ток одновременно.

  • Выводы процессора имеют значительное эффективное сопротивление, и высокое напряжение будет "падать" при увеличении тока, а низкое напряжение будет расти при увеличении нагрузки. Штифты МОГУТ быть специфичными с максимальным током короткого замыкания, но в этот момент высокий штифт будет вытянут низко, а низкий штифт будет вытянут высоко, поэтому ток короткого замыкания имеет ограниченную применимость.

Даже если у вас есть, скажем, 25 мА на контактный процессор, доступная мощность невелика. Скажем, 25 мА · 4В (падение 1В на 5В Vcc) = 100 МВт. Большинство двигателей потребуют большего, и только очень маленькие двигатели будут хорошо работать, когда питаются только от контакта.

Электродвигатели и катушки индуктивности будут генерировать значительно высокие напряжения при прерывании тока - напряжения в десятки вольт могут легко привести к возникновению 100+ вольт. Прямое подключение двигателя индуктора к выводу процессора - это приглашение к разрушению. Мерфи часто делает мне одолжения.


Транзистор (биполярный или МОП-транзистор), который будет управлять типичными двигателями хобби, стоит 10 центов (или свободен от утилизированного оборудования) и позволяет буферизировать и "усиливать"ток привода вывода порта. Использование транзистора или другого буфера-чрезвычайно хорошая идея, если у вас есть один или несколько процессоров и вы не хотите, чтобы они умирали полуслучайно.

Драйвер двигателя MOSFET - отсюда - раздел 8.

Напряжения и номера деталей приведены для их примера - выберите по своему вкусу.
Биплоар NPN может быть использован с добавлением входного резистора к базе транзистора.

Двунаправленный драйвер - если вы хотите, чтобы драйвер мог управлять высокой и низкой нагрузкой, эта схема будет работать. отсюда
Входным затвором в данном случае является внутренний драйвер процессора. Два затвора MOSFET подключаются непосредственно к выводу процессора. Vdd обычно должен быть не выше процессора Vmax_drive_out. Чуть выше можно сделать работу с подходящим дизайном. С помощью этой схемы (или аналогичной) можно управлять нагрузками гораздо более высокого напряжения плюс одним дополнительным транзистором.


Буфер, такой как ULN2803 (и другие члены семейства), будет управлять 8 каналами x 500 мА/канал, и несколько из них могут быть распараллелены.


ULN2803-это, по сути, 8 транзисторов "Дарлингтона" с эмиттерами, подключенными к общему заземлению, 8 коллекторов "открытого коллектора" (несоединенных) и 8 обратных диодов для борьбы с скачками напряжения (используйте опционально). (Существует семейство ULN280x с несколько иными входными характеристиками).

Это устройство обеспечивает разумно оцененное средство обеспечения 8 x 500 мА выдвижных драйверов. Нагрузка, подключенная с выхода к V+, включается, когда входной вывод приводится в движение высоко. После того, как вы использовали один из них несколько раз, вы обнаружите, что они тривиально просты в использовании и очень полезны. (Существует также семейство ULN200x с 7 каналами в упаковке).

YouTube "как это сделать" видео


Привод шагового двигателя

Также здесь


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

Миллион примеров

Digikey - доступен в 1-х годах при желании $0.72/1, $0.29 в 1000-х.

<b>Спецификация ULN2803</b>


Продается в Sparkfun - можно было бы гораздо дешевле, но они доступны

,

8

Рекомендуемый выход (источник или приемник) от вывода ввода-вывода составляет 20 мА. Абсолютный максимум составляет 40 мА. Ваша катушка реле, скорее всего, будет потреблять больше энергии, особенно когда она изначально заряжается. Это повредит ваш выходной вывод. Тогда он в конце концов потерпит неудачу.

Кажется, пока все в порядке.

Нет, еще нет. :)

Как можно управлять такими компонентами, не рискуя Arduino? Каковы некоторые общие средства для достижения этой цели?

Используйте транзисторы или МОП-транзисторы.

Какие другие устройства могут нанести вред плате Arduino (или любому блоку микроконтроллера) аналогичным образом?

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

Было бы целесообразно продолжить?

Было бы целесообразно обратить внимание на то, что я написал выше, и прочитать много-много статей в Интернете о том, как управлять двигателями и реле от Arduino. Вы не первый, кто пытается это сделать.

,

5

Взгляните на простую схему в этом PDF-файле с игровой площадки Arduino. На нем изображен один транзистор для привода небольшого реле.

Как говорит Рассел в своем ответе, ULN2803 или аналогичный-это чип, который позволит вам управлять несколькими небольшими реле, что аккуратнее, чем использование нескольких транзисторов, если вы этого хотите.

(Также обратите внимание на диод "D1" в цепи, которую я подключил - вам это нужно, чтобы защитить транзистор от повреждения индуктивными всплесками, генерируемыми при выключении реле. В некоторые микросхемы типа ULN встроен этот диод, поэтому вы не всегда видите его на схемах.)

,

5

Чтобы действительно защитить ваш arduino, стоит надеть фоторазъемник на контакт и управлять вашей схемой таким образом. Тогда никакой случайный индуктивный заряд или короткое замыкание не смогут повлиять на arduino.

Их также называют оптоизоляторами или оптопарами.

http://forum.arduino.cc/index.php?topic=143954.0

,

Вы совершенно правы, оптоизоляторы - отличный способ. Другой способ сделать это, немного менее изолирующий, но все же удобный, - использовать операционный усилитель (ОУ) в качестве буфера. Их также называют операционными усилителями "фоллоер". Обратите внимание, что вы можете сделать это с любым готовым операционным усилителем, вы просто прокладываете схему определенным образом. https://en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation, @Dan


4

Давайте посмотрим на некоторые базовые вопросы, которые, по-видимому, лежат в основе многих вопросов:

Конденсатор при включении питания потребляет огромное количество тока, который уменьшается по мере зарядки. Эта кривая также называется постоянной времени RC (это близко, но не точно "http://www.electronics-tutorials.ws/rc/rc_1.html" даст лучшее объяснение).

При выключении конденсатор разряжается с экспоненциальной скоростью (RC постоянная времени) в зависимости от величины напряжения заряда и нагрузки. Это делает их хорошими для удержания энергии в течение короткого времени, когда питание выходит из строя.

При первом включении индуктор ничего не притягивает, но ток увеличивается экспоненциально, пока его напряжение не достигнет напряжения питания.

При выключении индуктивное поле в индукторе схлопывается, вызывая обратную полярность. Напряжение будет расти неограниченно до тех пор, пока обычно что-то внешне не ограничит его. Чем быстрее он выключается, тем быстрее время нарастания и напряжение. Энергия перестанет течь, когда индуктивный заряд будет рассеян. Угадайте, куда идет этот ток, когда индуктивная нагрузка, такая как реле, подключена к выводу порта?

По этой причине вам нужно поставить диод (обычно называемый диодом маховика) поперек индуктивной нагрузки. Google для: "кривая заряда индуктора/конденсатора" вы найдете много хороших графиков, объясняющих это. Этот диод не нужен, если вы используете соответствующий номинальный МОП-транзистор (UIS). Информация о UIS (Незамкнутый индуктивный шип) содержится в техническом паспорте MOSFET. Если вы посмотрите на схему, то увидите, что катод + подключен к самой положительной стороне источника питания. В этой конфигурации он не будет проводить ток до тех пор, пока напряжение не изменится на противоположное (когда индуктивная нагрузка выключена).

Еще одним распространенным заблуждением является то, что вы можете максимально загрузить микропроцессорный ввод-вывод. Это плохой дизайн. Они дают вам максимум на пин, на порт и на чип. При комнатной температуре вам, вероятно, это сойдет с рук на некоторое время.

Предположим, у нас есть порт с нагрузкой 40 мА. Выход составляет 0,005 от силовой рейки. Используя закон Ома, мы рассеиваем 20 милливатт мощности на одном выводе. При такой скорости загрузки перегрев устройства не займет много времени из-за внутреннего рассеивания мощности.

Когда выходной вывод меняет состояние, он потребляет больше тока, потому что ему приходится заряжать или разряжать свою внутреннюю и внешнюю емкость, "больше тепла", больше скорости, ‘больше тепла’.

Если вы посмотрите некоторые спецификации, они дадут вам максимальную температуру, это для соединения на матрице, а не для температуры корпуса. Пластик-плохой проводник, поэтому тепло, тонущее в упаковке, мало что дает. Теперь рассмотрим это вместе с температурой окружающей среды. Оценки даются обычно с устройством при температуре 25С, угадайте, что происходит, когда становится теплее.

Получайте удовольствие,

Джил

,