The electronic water descaler operates by wrapping coil of wire around the incoming water mains to pass a magnetic field through the water. The theory is that it causes the calcium in the water to stay in solution and so inhibit it from adhering to pipes, taps, baths and kettles.
This softener generates a sweeping frequency from 2 - 20 KHz, It gives better results in some hard water.
The 100uH coil and 4x 1uF drive the coil on the pipe with a current of about 1A at 10V, this allows high efficiency with less heat and less cost of running.
Power supply to the Arduino Nano is 7V to 10V , 200mA.
The 4420 buffers is a mosfet driver. IC's that can be used are: TC4420, MCP1406, MAX4420. These are very similar and pins are identical.
The coil on the water pipe is made of 5 meter long insulated wire of 24 to 20 gage. The wire is turned around the copper or plastic water pipe (it can not be steel pipe) in a single layer. On a pipe of 20mm diameter it will form 55 turns.
This softener generates a sweeping frequency from 2 - 20 KHz, It gives better results in some hard water.
The 100uH coil and 4x 1uF drive the coil on the pipe with a current of about 1A at 10V, this allows high efficiency with less heat and less cost of running.
Power supply to the Arduino Nano is 7V to 10V , 200mA.
The 4420 buffers is a mosfet driver. IC's that can be used are: TC4420, MCP1406, MAX4420. These are very similar and pins are identical.
The coil on the water pipe is made of 5 meter long insulated wire of 24 to 20 gage. The wire is turned around the copper or plastic water pipe (it can not be steel pipe) in a single layer. On a pipe of 20mm diameter it will form 55 turns.
B4X:
Sub Process_Globals
Public Serial1 As Serial
Private freq As Byte
Private out As Pin
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
RunNative("pwm", Null)
out.Initialize(11, out.MODE_OUTPUT)
run
End Sub
Sub run
Do While True
Delay(200) 'duration of each frequency
freq=freq+10
If freq>244 Then freq=10
RunNative("frequency", Null)
Loop
End Sub
#if C
void pwm (B4R::Object* o) {
//timer2 settings
OCR2A = 127;
TCCR2A = 0b1000011; //toggle output, fast PWM mode
TCCR2B = 0b1011; // fast PWM mode, prescale 1:64
}
void frequency (B4R::Object* o) {
OCR2A=b4r_main::_freq;
}
#End if