Отличается ли цифровая запись (номер контакта, LOW) от контакта заземления

Я использую симулятор Tinkercad, но произошла необычная вещь. Когда я подключаю один провод двигателя постоянного тока к контакту 9 с помощью digitalWrite(9,HIGH), а другой провод к земле, двигатель работает со скоростью 5555 об/мин.

void setup()
{
  pinMode(9, OUTPUT);
} 

void loop()
{
  digitalWrite(9, 1);
}

Но вместо этого, если я подключу другой провод к контакту 13 (скажем) и установлю digitalWrite(13,LOW), двигатель будет работать со скоростью 3846 об/мин.

void setup()
{
  pinMode(9, OUTPUT);
  pinMode(13, OUTPUT);
} 

void loop()
{
  digitalWrite(9, 1);
  digitalWrite(13,0);
}

Кто-нибудь может это объяснить?

, 👍0

Обсуждение

У Tinkercad, вероятно, нет возможности показать дым, исходящий от вашего Arduino, что произойдет, если вы попытаетесь заземлить двигатель через контакт, установленный на НИЗКИЙ уровень. ** НЕ ДЕЛАЙТЕ ЭТОГО. ** Как уже упоминалось, он не может справиться с током, а двигатель - это «грязная» нагрузка, которая может выталкивать отрицательное напряжение на контакт через процесс, называемый «противо-ЭДС». (Это вызвано индуктивными катушками в двигателе. Когда вы отключаете питание от индуктора, разрушающееся магнитное поле вызывает выброс тока, текущего в обратном направлении.), @Duncan C

Спасибо, в следующий раз воспользуюсь драйвером, @Akash Karnatak

Вы можете управлять обычным двигателем постоянного тока с помощью мощного полевого МОП-транзистора и «обратноходового диода». Драйвер двигателя является излишним, если у вас нет сервопривода или шагового двигателя., @Duncan C


2 ответа


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

5

Да, это другое.

Во-первых: Никогда не запускайте двигатель напрямую от контактов ввода-вывода — вы повредите Arduino. Настоящая Arduino может не только не обеспечивать достаточного тока, но и двигатели генерируют много противо-ЭДС, которая убьет Arduino.

Во-вторых, контакт не подключается напрямую к GND или VCC — он подключается через полевой МОП-транзистор, который выполняет переключение. Этот полевой МОП-транзистор имеет сопротивление в открытом состоянии, что вызывает падение напряжения на нем, определяемое током, подаваемым или протекающим через контакт.

Подробнее о выводах GPIO можно прочитать здесь.

,

Спасибо, в следующий раз воспользуюсь драйвером, @Akash Karnatak


2

В реальном мире любой вывод пропускает ток к Gnd через встроенный N-канальный полевой МОП-транзистор. Они благополучно поглотят 20, 25мА. Если ваш двигатель пропускает более 40 мА, вы рискуете повредить контакт и, вероятно, весь чип.

Аналогичным образом любой контакт может подавать на нагрузку одинаковый ток, скорее всего, через P-канальный полевой МОП-транзистор с одинаковыми ограничениями по току.

Используя оба вместе, у вас есть один ток источника транзистора, один ток стока транзистора, поэтому у вас есть удвоенный предельный ток Rds (сопротивление MOSFET во включенном состоянии) для нагрузки, следовательно, симулятор может заставить двигатель работать медленнее из-за меньшего тока быть доступным.

,