ARDUINO MICRO controlled fountain (brushless pumps)

May I introduce my second ARDUINO-project with own pcb (youtube-video at the end). With the pcb I am able to drive seven brushless pumps(with integrated electronics). The “problem” with such kind of pumps is that they don’t accept unfiltered pwm-signals as supply voltage. So I created a circuit where the pwm-signals of an ARDUINO-micro are level-shifted to 12V with a darlington array and afterwards filtered with a 1 uF ceramic capacitor and a 730 Ohm resistor (low pass filter). The signals are then led into the adjust-pins of seven "lm317"s. To work properly I needed to connect the adjust-pins also with 2500 Ohm resistors to gnd, but I found out that with two l293d instead of the used TDP62783 (darlington array) these resistors are not needed, but different resistor and capacitor values for adequate filtering!
The pums also have tacho signals which I connected via schottky-diodes to the ARDUINO (inputs with pullup). With the tacho-signals I am able to find out if pumps are stuck, are sucking air or are not connected.
Additionally I added one ACS712-05B current sensor (which measures the entire current of the circuit) that could be used to find out if pumps that don’t have tacho-signals are working properly. At the moment it is not used.
Besides that I integrated a lm386 audio-amp used to amplify the signal of an electret-mic to a level that is suitable for the ATEMGA’s ADC.

As the first project for the pcb I created a fountain consisting of a shortened wine barrel, seven brushless pumps, a pushbutton with led and pebbles (s. video).
There are seven animation-modes which can be selected via the pushbutton (the selected mode is stored in eeprom).
The speed of the pumps is checked permanently during operation.
The average power consumption is ~20W and max. consumption is 30W.

Mode 1:
Scripted animations (I wrote a animation program with PROCESSING on the PC that generates header files with the animation data which can be included into the ARDUINO-code).

Mode 2:
As mode 1, but with in-between constant water fountain-level stages to reduce dynamics.

Mode 3:
As mode 2, but with half the animation speed

Mode 4:
Peak-Meter (via electret-mic)

Mode 5:
Random water-fountain movement (up-down)

Mode 6:
As Mode 5, but with water fountain peak controlled by electret-mic.

Mode 7:
Low base fountain height with impulsive “water-shots”

As the "lm317"s have a bad efficiency which results in high heat (of the regulators and partially of the pcb) I will try to do a new version of the pcb with switching regulators (completely with smd components and maybe integrated Atmega328). With the new pcb I will do new different fountains (maybe also with animated led-light).

Feel free to comment!