For our project, we decided to use an Arduino to activate solenoid valves, which control the water flow. We decided to use PSMN022-30PL mosfets to control the solenoid valves since they can handle the power draw from the mosfets and were in stock in the electrical stockroom. Since the arduino only has 14 IO pins, we needed a solution to expand the number of outputs we had. We are using SN74HC595N shift registers to expand the number of outputs that are available from the arduino. These shift registers can only output a few milliamps on the output pins so we needed to have a buffer between them and the mosfets that are controlling the solenoid valves. We are using ULN2803 Darlington transistor arrays as a buffer between the mosfets and the shift registers.