Управление насосом Arduino через MOSFET

Я хочу включить насос, который работает от 12 В и потребляет ток не более 1,7 А, с помощью моего Arduino Uno.

Для этого я купил МОП-транзистор RFP30N06LE и, следуя этим инструкциям, все это подключил.< /п>

Я подключил красный провод от насоса к VIN Arduino и подключил к Arduino блок питания 12 В, 2 А. Однако, когда я устанавливаю выходной контакт в положение HIGH, насос качает слабо, и МОП-транзистор сильно нагревается.

Когда я подключаю насос напрямую к VIN и GND, он работает как положено, поэтому Arduino может обеспечить необходимый ток. Я думаю, что в МОП-транзисторе есть что-то, чего я не правильно понимаю. Я измерил VGS при напряжении 4,5 В, поэтому МОП-транзистор должен выдерживать ток. Есть ли что-то, что мне не хватает?

Вот проводка:

Это (очень простой) эскиз, который я использую, чтобы все это протестировать:

#define PIN_PUMP_ON 7

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

void loop() {
  digitalWrite(PIN_PUMP_ON, HIGH);
  delay(1000);
}

, 👍0

Обсуждение

Можете показать фото проводки? или схема. Можете ли вы показать эскиз, который вы используете? Будьте осторожны с 12В. Никогда не подавайте питание на двигатель через контакт VIN. Используйте напряжение 12 В для питания платы Arduino и двигателя. Используете ли вы макет, все пойдет не так. Макетная плата не выдерживает большой ток двигателя. Мосфет очень хороший, он не должен нагреваться., @Jot

следовал этим инструкциям .... нет, вы этого не сделали .... в инструкции не сказано о подключении двигателя к Arduino Vin, @jsotola

Добавил эскиз и схему подключения. В чем проблема с использованием VIN? Согласно документации Arduino, его можно использовать для доступа к 12 В, которые я подаю через разъем питания: «Вы можете подавать напряжение через этот контакт или, если напряжение подается через разъем питания, получить доступ к нему через этот контакт»., @pumper

Между вилкой питания ствольного разъема и VIN находится диод. Какой ток может выдержать этот диод, зависит от Arduino Uno или клона, но 1,7 А — это слишком много. Вы также пропускаете ток земли двигателя через плату Arduino через контакт GND. Мне это тоже не нравится., @Jot

Я ожидаю, что диод выпустит свой волшебный дым через несколько секунд после включения двигателя., @Jeff Wahaus

Более высокое напряжение VGS может снизить сопротивление RDS. Попробуйте добавить подтяжку к 12 В на затворе. Добавьте обычный NPN-транзистор, чтобы позволить Arduino понизить напряжение на затворе до земли и выключить двигатель. Этот транзистор необходим, потому что контакты Arduino не выдерживают напряжение 12 В. См. [этот ответ для хорошей схемы](https://electronics.stackexchange.com/a/281995/43978), @Gerben

Код voidloop() { digitalWrite (PIN_PUMP_ON, ВЫСОКИЙ); задержка(1000); } не выключает насос — для выключения на выводе после задержки должен быть записан НИЗКИЙ уровень., @CrossRoads


3 ответа


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

4

Vin рассчитан на ток не более 1 А из-за защитного диода от обратной полярности, подключенного последовательно от цилиндрического разъема к выводу Vin. Вы попытаетесь подать через него ток 1,7 А, и вы можете выкурить это. Разъем Vin также рассчитан только на 1А.

Подключите двигатель напрямую к источнику питания. Земля Arduino также должна быть подключена к источнику питания. R2 ограничивает ток вывода Arduino IO до безопасного уровня. R1 отключает МОП-транзистор во время загрузки Arduino. Диод рассеивает ток, генерируемый двигателем, когда МОП-транзистор переходит из состояния «включено» в состояние «выключено». RFP30N06LE рассчитан на полное включение при Vgs 5 В и Rd 47 миллиом, поэтому эту деталь можно использовать.

Питание Arduino от того же источника, что и двигатель, может вызвать проблемы. Если вы можете питать Arduino от USB или от отдельного аккумуляторного блока, а не от того же напряжения 12 В, которое питает двигатель, это, вероятно, даст лучшие результаты, особенно если напряжение 12 В вообще падает при больших нагрузках двигателя. Это может привести к перезагрузке Arduino.

schematic

,

1

Перемонтируйте питание двигателя так, чтобы оно не использовало контакты питания Arduino или GND. Подключайте затвор MOSFET к выводу Arduino только с помощью подходящего резистора. Сток MOSFET должен идти непосредственно к заземлению источника питания. Таким образом, вы не готовите свой Arduino. Реле вместо МОП-транзистора не позволит сопротивлению МОП-транзистора снизить мощность вашего двигателя.

3 больших контакта под разъемом питания Arduino (2 GND и 1 +V) можно использовать для питания двигателя, просто припаяйте непосредственно к ним для +V двигателя и GND для стока MOSFET. Это обходит диод Arduino.

,

Почему вы говорите не соединять землю ардуино и питание двигателя? Я видел другие проекты с высокой силой тока для Arduino, в которых специально предлагалось сделать именно это, например, питание длинной цепочки RGB-светодиодов WS2812b. Есть ли здесь какие-то другие критерии (например, двигатель), которые я не понимаю?, @Kelly S. French

Если вы подключите землю непосредственно к контактам цилиндрического разъема, это предотвратит протекание тока через печатную плату Arduino., @Jeff Wahaus

Я нашел ссылку на ситуацию, которая меня смутила, см. пункт № 7 в этом ответе: https://arduinoprosto.ru/q/34531/42061 о запуске двигателя с отдельным источником питания, но соединении заземлений обоих запасы. Может быть, это должен быть отдельный вопрос?, @Kelly S. French


0

Ни при каких обстоятельствах не подключайте двигатель к VIN на Arduino. Двигатель потребляет слишком большой ток.

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

,