Hello all, i have a heatexchanger for my hot water in the house, it used to be controlled by a Grundfoss AVTQ thermostat but that wore out and its kinda expensive and also fiddely to adjust.
Instead i was thinking id build a little arduino setup, reading flow on the tap water as start signal, and temperature of "used" externally supplied hot water to regulate a little stepper motor operating a valve controlling the flow of hot water to match specified temperature.
I have soldered a couple of Freeduino v1.16 Freeduino V1.16 Board, 100% Arduino compatiable
For a school project and verified control of their little LED light, but never really done anything with them.
My thought was using one of those. plus this flow sensor Dn20 g3/4 copper water flow sensor pulse output 1.75mpa 2~45l/min flowmeter Sale - Banggood.com-arrival notice-arrival notice
To tell the system to start working
Then this thermistor 5pcs 10kohm 1% 3435 0.5m ntc thermistor accuracy temperature sensor cable cylinder probe high sensitivity temperature sensor wire Sale - Banggood.com
To tell temperature of water thats been true the heater (the circulating water that has to go back to the power/heatplant)
And finally this little stepper Geekcreit 5pcs 5v stepper motor with uln2003 driver board dupont cable Sale - Banggood.com-arrival notice-arrival notice
To control a regular turnstyle valve opening or closing the flow of hot water, to match set temperature.
Problem is other than i know the very basics of parts to use i cant really tell if all that matches up to run without buying more bits (ie an engine shield) and i guess i dont really know how to program the arduino other than enuff to set the light blinking frequency.
Im not really asking for a full blown tutorial, as i will offcause try to pick up the programming skills i need by myself once i get to that stage.
But i would very much like verification that i have all i need to get to that stage, before i move on with it all.
May I suggest the DS18B20 one wire temperature sensor instead of a thermistor. They are much easier to interface.
Are you sure that that stepper will have enough torque? It would be better to measure the torque required and choose a motor based on that.
The key to your success will be controlling the water flow, as some valves can require a LOT of torque. You can achieve that with a dc motor and gearbox.
It may be worth stripping the thermostat to see how it controls the water flow, as it would seem it would need less energy than a rotary valve.
The rest is relatively straightforward - but interesting.
I agree - dont use thermistors to measure temperature.
WEll reason for the thermistor is that it roughly fits where the old gas filled thermostat went, offcause i could just make a pipe thing with the end shut and a wire type thing to measure the same if thats easier to work with.
The original AVTQ has a diaphragm thing operating on the pressure difference at flow (to tap) and on top of that the feed from the thermostat regulating it all. So in essence the same setup. Flow as such is not really needed as a number but rather just on/off as the actual temperature of the used heating water will directly rely on how much flows true either way.
Far as a valve any can be installed, im competent with metalwork and plumbing, so any turnstyle valve i can get will work, including the simple cross top type used on faucets. (3D printer to fix interface) It doesnt have to be a ball valve that operates on 1/4 turn and are rather heavy to turn.
I am a metalworker with CNC aswell as plumbing experience, its really the finer details of electronics and programming arduino that an issue.
At any rate thanks for the input. If you could elaborate on the thermistor thing id love it, just for the sake of knowing.
Thermistors require a load resistor of accurately known value and must use an algorithm with multi!e coefficients. Those coefficients must be determined by the response curve of the thermistor. The output of the thermitor must be digitized. Resolution may not be optimal. The algorithm needs to use floating point math which on most Arduinos is slow and not precise. Each sense needs an analog input (ADC). Calibration must be performed for best accuracy. Those reasons make using thermistors more difficult. Thermistor are worth the effort if temperatures to be measured are above where other, simpler, sensors work.
The DS18B20 sensors only need a pull-up resistor (value not critical) and return the temperature in, up to, 12 bit digital form. The sensor is good up to 125C (257F). Calibration not necessary. Many sensors may be interfaced using just one digital input (one wire bus).
Right, thermistors does seem too much trouble i realise now, i was sorta thinking id just set it to whatever number made it give the temperature i want, but that does seem too much hassle for 20C give or take a couple (far as i recall original specs) at any rate itll be a number between 15 and 60C so indeed wire it is.
The DS18B20 is available in a pre-sealed tube and flex assembly which would simplify the install.
Not much more cost than a bare sensor.
Have used them a couple of times for water temp guages, far superior to anything else.
Don't forget the 4k7 pullup as already pointed out.
https://www.ebay.com.au/itm/DS18B20-DS18S20-Waterproof-Digital-Temperature-Temp-Sensor-Probe-1M-2M-2-5M/123463285963?hash=item1cbefc3ccb:g:bVIAAOSwisxcLB2b
I guess that settles the thermal part, what about the motor? lets assume itll drive the valve as intended, do i need an engine shield or to have it seperetely powered etc?
I guess if i could find a flow indicator that was simpler itd make the setup less of a hassle, unlike the mechanical version i had, the motor driven valve will have basically full range from off to max, so temperature of spent heating water should be fine for control parameters.
Its a heat exchanger btw, not a convection thing. English isnt my first language.
assuming you have a temperature sensor
and assuming that you can measure flow
and assuming that you can control flow....
you only need to read the temperature, no matter what you chose, you will get some readings and there are lots of on-line references to get to deg C (or F)
the output needed to control the valve ?
that should be dependent on the motor and you have lots of choices. small motor, long arc and slow speed will get your small motor to work.
powerful motor and a short arc would give you faster speed, often you use what you have, then if it works, great. if you need more power or more speed, you have a starting point to get the next bigger motor.
the start of programming is typically just some form of step-by-step procedure.
faucet is turned on
water pressure drops
pressure sensor output drops
control output increases
valve opens
pressure increases
valve stops moving
flow value from flow sensor
heater gets power
water temperature is measured
either valve adjusts flow, or heater adjusts power
faucet is shut off,
flow stops
pressure peaks
power off to heater
valve closes.
===============
This is just an example, you would need to write all the steps for your system, add more details.
My experience with instant water heaters is that they do not do well at low flow. Your flow sensor would make your system work better than the low cost ones we use.
once you have the steps you think you want, draw a simple diagram. add in the parts and part numbers
from there the interface between parts is figured out.
in the step-by-step process, things make sense and the project moves forward.
bonielsen:
I guess that settles the thermal part, what about the motor? lets assume itll drive the valve as intended, do i need an engine shield or to have it seperetely powered etc?
You can't power a motor from an Arduino, so you will need external power and some external circuitry to control it. That might be a motor shield, but doesn't have to be.
I was thinking id need something to run the motor. The ones i picked out was i belive made for printers, but obviusly we can still discuss gears and if need be pick another motor.
I do need a parts combo thatll run to get going thou. My suggestion was theese:
But that is really just me picking cheap and seemingly simple. If i need a shield aswell please point out one that will work.
Id like to get a few excess motors and fairly accurate ones with a little torgue, as i plan to make my next project a remote controlled spotting scope.
Typically for this type of application you would want to use a modulating control valve. There is some good information on these here: Modulating Control Valves - How They Work
These are industrial valves and are NOT cheap... but the main issue you will have with quarter turn ball valve is that the flow rate curve is not the best for achieving good control. There is a good video at the bottom of that page from the link above. BUT... when you add the v-port ball... the pricing goes even higher.
Also, as someone else previously mentioned you WILL NOT be providing power to the actuator from the arduino... there will be a separate CONTROL SIGNAL that the aurdino sends to the actuator. This is typically one of 2 signal types. 4-20 mA or 0-10 VDC. many of these types of actuators will also have a feedback signal of the same type to indicate the ACTUAL position of the valve.
While I expect this type of valve is above what you want to spend, here is a Stainless steel V-port with universal voltage modulating actuator and for lead free brass valve (with a standard ball... not a V-port), the price is much cheaper.
I would start with the existing Grundfoss ? motor in the existing system. since you only need to duplicate what it is doing now, but with your own logic controller and signal controller, you would have a perfectly sized motor on the system now.
the low end heaters would have a minimum flow sensor. above that and you get full heat.
you open the faucet, it senses flow and you get full heat in the water.
if you open the faucet fully, you pass water faster over the heater. close it down some and the water slows.
same BTUs at the heater (or thereabout)
Some water heaters have temperature control of the heater and PWM the element to deliver BTU's to match flows.
trying to control flow with a valve seems to be a harder way to control temperature.