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

8

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

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

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

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

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

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

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

Ответы:

8

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

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

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

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

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

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


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

MOSFET Motor Driver - отсюда - раздел 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.

Технический паспорт ULN2803


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

Рассел МакМахон
источник
7

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

Ничего, кажется, не так уж далеко.

Нет, не сейчас. :)

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

Используйте транзисторы или полевые транзисторы.

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

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

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

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

Ник Гаммон
источник
4

Взгляните на простую схему в этом PDF от Arduino Playground. Он показывает один транзистор для управления маленьким реле.

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

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

Энди
источник
3

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

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

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

user14178
источник
1
Вы совершенно правы, оптоизоляторы - отличный способ. Другой способ сделать это немного менее изолированным, но все же удобным - использовать операционный усилитель (операционный усилитель) в качестве буфера. Они также называются операционными усилителями «folloer». Обратите внимание, что вы можете сделать это с любым стандартным операционным усилителем, вы просто прокладываете схему определенным образом. en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Дан,
3

Давайте посмотрим, как некоторые основные, они, кажется, являются основой для многих вопросов:

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

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

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

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

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

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

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

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

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

Радоваться, веселиться,

Гил

Гил
источник