Preface:
I haven't attempted an Arduino project in a long time. My original forum account didn't even exist anymore. I remember I had an Arduino Mega that I was using with several gizmos: RFID readers, Linear Actuators, and even Motors. In my last project with a Motor I believe I had a DC Brushless motor that I was controlling with a MOSFET. I could send a PWM signal to the MOSFET to adjust the voltage to the Motor and change the speed. It's been a while, and things have changed, among them I see that people now use some integrated chips, Drivers, to drive their motors.
Problem:
Very simply, I want to create a circuit to control my irrigation system, powered by this 12v 3A DC Diaphragm Pump and be able to adjust the speed at which it pumps using an Arduino MKR WiFi 1010 all powered from the same 12V 60W power supply. I've been doing some research to try to get an idea how to do this, but I am really unsure if it is possible to use variable voltages with a Diaphragm pump, and what to use to drive a pump with those specs. I also always get confused how to know if I will need some resistors and how to power it all from the same supply. I don't have the parts yet so changes/recommendations are welcome.
How about filling a reservoir then letting gravity water the plants?
Unfortunately that is not an option as this is a small garden on an apartment balcony. Hanging a container of water is too dangerous. I also do not have running water which is why I will be pumping.
It should work great if you get the hardware and software tuned in! Since it is unidirectional a single MOSFET will work, a N-Channel being the easiest to implement. See if you can get something in a logic level with a 30 Amp or greater range in a avalanche rated MOSFET. If so connect the drain to the motor, the other end of the motor goes to the 12V. The source connects to the ground of the battery which is also connected to your arduino, the motor cannot be connected to the arduino. Put something in the 10K range to ground of your favorite PWM pin and then connect that with a 50 Ohm resistor to the gate of the MOSFET. Power the Arduino with the 12V battery connected to Vin. The reason for the hefty MOSFET is for me it is generally cheaper to use silicone instead of heatsink. Most of what you did in the past should apply. Have fun!