Blaine Johnson – Water Fountain

Introduction

       The Water Fountain is 9 independently controlled water valves, all tied to a common  fountain pump. The control is provided by the arduino. I setup the valves to be in a straight line 1.5 inches apart from each other.  I also place the device above a container the serves as the reservoir.  I made this device to serve as a test bed for my senior project, which will be a water fountain that dances to music. The device is setup to pulse the valves on and off in a sequence starting at one end, and moves down the row of valves and then back, it repeats this loop indefinitely. 

Members

Blaine Johnson

Description

       The 9,  12 volt dc solenoid valves, all tied to a common fountain 120 volt ac fountain pump. The control is provided by the arduino that sends 5 volt dc to the valve driver circuit. The driver circuit is in place to interface the low current 5 volt dc output of the arduino, to the high current 12 volt dc valve. I also have a potentiometer as an analog input into the arduino. This input changes the pulse width and effectively changes the timing of the sequence.

       I place a diode in reverse direction, in parallel with the valve coil, this helps to minimize the reverse current that is expected when switching an inductive load at a high rate. Another diode is place directly at the output of the arduino, this serves to protect the arduino from a reverse current/voltage situation in the case of a component failure. There are several resistors in the driver circuit, a 10k resistor is placed after the diode at the arduino output, this is called a pull down resistor, it’s function is to bring the output down to 0 volts when the output is off. Without the pull down resistor, it is possible to inadvertently trigger the driver circuit on. I also place another 10k resistor in series with the output from the arduino, this is to limit the current from the arduino. Now after the ouput makes it through the diode and the series resistor, it makes it to the npn transistor base. Now when the base has positive voltage, it act like a relay and creates a current path from the collector to the emitter. This current path is for the valve coil. The coil already is given 12 volts positive on one side, all it needs is for the other side to be connected to ground for current to flow. So, that is the job of the transistor, to provide a path(from the collector to the emitter) for the coil, and it creates this path when the arduino gives a 5 volt output to the base of the transistor.

      The nozzles are made from common squeeze type condiment apparatus.  I drilled the nozzles with a small drill bit. The mounting of the valves/nozzles was accomplished with a piece of lexan (plexi-glass). I bend both sides at an angle to make it more rigid. Then, I drilled and taped the holes for the valve/nozzles at 1.5 inch centers. I screwed the valves in and wired then up.
 

Circuit Diagram

Code

_9Valve

const int analogInPin = A0;

int outputValue = 0;

int delay1 = 0;

int delay2 = 0;

void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

}

void loop() {

// read the analog in value:

outputValue = analogRead(analogInPin);

delay1 = outputValue/4;

delay2 = 50;

digitalWrite(2, HIGH);

delay(delay1);

digitalWrite(2, LOW);

delay(delay2);

digitalWrite(3, HIGH);

delay(delay1);

digitalWrite(3, LOW);

delay(delay2);

digitalWrite(4, HIGH);

delay(delay1);

digitalWrite(4, LOW);

delay(delay2);

digitalWrite(5, HIGH);

delay(delay1);

digitalWrite(5, LOW);

delay(delay2);

digitalWrite(6, HIGH);

delay(delay1);

digitalWrite(6, LOW);

delay(delay2);

digitalWrite(7, HIGH);

delay(delay1);

digitalWrite(7, LOW);

delay(delay2);

digitalWrite(8, HIGH);

delay(delay1);

digitalWrite(8, LOW);

delay(delay2);

digitalWrite(9, HIGH);

delay(delay1);

digitalWrite(9, LOW);

delay(delay2);

digitalWrite(10, HIGH);

delay(delay1);

digitalWrite(10, LOW);

digitalWrite(10, HIGH);

delay(delay1);

digitalWrite(10, LOW);

delay(delay2);

digitalWrite(9, HIGH);

delay(delay1);

digitalWrite(9, LOW);

delay(delay2);

digitalWrite(8, HIGH);

delay(delay1);

digitalWrite(8, LOW);

delay(delay2);

digitalWrite(7, HIGH);

delay(delay1);

digitalWrite(7, LOW);

delay(delay2);

digitalWrite(6, HIGH);

delay(delay1);

digitalWrite(6, LOW);

delay(delay2);

digitalWrite(5, HIGH);

delay(delay1);

digitalWrite(5, LOW);

delay(delay2);

digitalWrite(4, HIGH);

delay(delay1);

digitalWrite(4, LOW);

delay(delay2);

digitalWrite(3, HIGH);

delay(delay1);

digitalWrite(3, LOW);

delay(delay2);

digitalWrite(2, HIGH);

delay(delay1);

digitalWrite(2, LOW);

}

Reflection

       I was pleased with the results of the project. I was able to get a good response time out of the valves (approx. 20 ms). I was hoping to be able to control the height of a water column consistently. I found that with this style of valve, it is not capable of this type of control. Perhaps I would use a different type of valve to get that effect. This valve was able to pulse a ball of water up at different heights, so all and all I was happy with it. Moving forward with my senior project, I plan on using an open source computer program (vixen, vixenlights.com) to create a sequence(s) that goes to a chosen song(s). I plan on using the arduino as a data handler. After I create a sequence to a song, the computer program with play the song and send the sequencing data (tells each valve whether its should be on or off in that moment) out the serial port (usb) to the arduino. The arduino will then decipher the data and know which outputs to turn on and which to turn off. We (senior design project group) will also be deciding on the orientation of the valves (keep in line or make circle. Also, we will be looking into the types of effects that we will incorporate (short bursts, maintaining different heights, adding servos for motion of the nozzle, ect.).  We will also need to decide whether to make it bigger( bigger pump, valves and assembly).

01
sdrshn
October 8th, 2012 10:05 pm

ca we use simple cooler water pump for this fountain rather than (solonied) valve????

Leave Your Comment

Name*
Mail*
Website
Comment