I want to drive 22 Air Solenoid Valve using an Arduino (with a 12V 30A power supply).
What is the proper way of doing this? In the spec, it said the rated current is 200mA. I suppose it would require some kind of current limiting mechanism to drive. Can it be done with Mosfet and PWM? Or... should it be done in some other ways?
ma_hty:
What is the proper way of doing this? In the spec, it said the rated current is 200mA. I suppose it would require some kind of current limiting mechanism to drive.
If you have the 12v version of the device just power it with 12v and it will only draw 200mA. You will need something between the Arduino and the 12v - a transistor or mosfet because an Arduino pin has a max of 5v - and even if 5v was enough the Arduino pins can only supply about 20mA (40mA max).
There are diagrams for many different circuits here.
Would it be fine if I simultaneously drive 12 mosfets using Arduino digital pins directly? Mosfets on/off are done with voltage signal, I guess it should be just fine. Am I correct?
(I'm just an amateur to electronics, please forgive me for asking basic questions)
Whenever driving any inductive load, like a relay or solenoid, you must protect against
highly destructive inductive voltage spikes, or your circuit will rapidly fail.
This means using a backwards "freewheel" diode across the solenoid terminals. Every
relay or solenoid driving circuit you'll find has this (or occasionally an RC snubber circuit).
Most BJT switching devices and MOSFETs can handle 200mA easily.
Oh, should have mentioned, good to protect the Arduino with some gate resistors (150 ohm or so). MOSFETs are highly capacitive loads so you need to limit inrush current.