Hey guys
I like to do challenging things... this time I'd like to control a bunch of motors (can be stepper motors or normal ones, because i don't need precision) to control existing heater valves.
Since they are distributed in every room of my house, and I'm already deploying a 1-wire network for thermal monitoring, it would be great to control them through 1-wire network
Unfortunately I didn't find anything useful in the forum.
I think a DS2413 would be perfect to do this. It has two outputs, so I can make it moving in both directions. There's no feedback but to reset the position I would just rotate it for a given time.
However I'm an electronic n00b, I don't ask to design the circuit from scratch, but maybe you can guide me to the right way
which DC motor do you recommend, that you already had experience? I can go to a R/C shop for motors and gears. It's preferable a famous brand part which is easier to find, but not high-end
Which MOSFET do you suggest?
How can I achieve reverse direction using the two DS2413 channels?
the ds2413 is just a digital switch and if used, there would be no need for an Arduino unless you're driving a servo or something like that. You'd need some logic to use the switches for forward/reverse directions. You'd have to set some kind of limit system to know when the valve turned to max or min. Not very good because you need some smarts there and the DS2413 is just a switch.
Why not use one of the 1-wire devices which store data values and then have an Arduino on location to read the value stored and handle all the control from there? The Arduino operates in a loop just checking to see if the stored position value has changed and if it has, move the motor or servo accordingly. The Arduino could have its own thermistor sensor too and could operate in somewhat of a thermostat mode.
There are many links on driving motors and temp sensors and probably one or two for talking on the 1-wire network too.
FYI, that valve is probably going to need some good amount of torque to turn so any motor you use is going to need some gearing to help or else you'll have to have a very large motor connected. A bellcrank/lever system might work depending on how much valve movement you require.
the ds2413 is just a digital switch and if used, there would be no need for an Arduino
Dougl
I thought you would need an Arduino to drive the digital switch, you can't use it on it's own you need to manipulate the data line to get it to switch on. The point is that the motor is remote from the controller.
Agent Smith,
Yes it is a good idea to use this especially as you have the infra structure in place. The problem with using just time to turn on the motor is that you can never get it right. So you will either under drive and not open and close the valve or over drive and put the motor into stall condition and thus over drive the motor.
Back in 1973 as a student I made a motor that turned on and stayed on until the motor had rotated through 180 degrees and hit a stop. It did this by firing the set line of a flip flop to turn on the motor. Then it monitored the current until it detected the stall current and that triggered the reset on the flip flop and turned the motor off. That is the sort of thing you need or else some sensor like an optical sensor that will detect the rotation limits.
Look at motor drivers and you will see that using two line for direction and movement of a motor is standard.
Dougl
I thought you would need an Arduino to drive the digital switch, you can't use it on it's own you need to manipulate the data line to get it to switch on. The point is that the motor is remote from the controller.
it was originally said that the a 1-wire network was already there to monitor temp. So if a controller is already talking on the 1-wire bus to the temp sensors, that same controller can talk to that switch device and open or close the switch. That's the whole point of a 1-wire bus, many devices on one simple bus with a controller on the end.
Because there is really no power on the 1-wire bus, it should be obvious to the original poster that they'll need some power there to run the motor and they'd need some electronics to set the direction and sense the stop points at the very least. This kind of setup should be discussed on the 1-wire forums and not the Arduino forums if someone were to ask me.
But if the original poster was to consider putting an Arduino at every valve control point then this is the right place to ask about it.
Yeah Grumpy has understood my idea... The Arduino in my project would be only one, that act as a 1-wire Master and LCD controller.
My apologize, I wasn't aware of a 1-wire forum, though it's still Arduino-related
Grumpy, do you think it's so unreliable to control it just measuring how much time it takes from point A to B, and reset the position from time to time to avoid too much overdriving?
Or maybe I could make a simple protection circuit like your student project. More or less the valve has a 300° rotation.
The problem is that DS2413 only provide two on-off switches. I should use a DS2450 with some sensor attached to its analog input, but the setup would be too complex.
Dougl, you're right about torque requirements. I think to put a large gear as shown in the picture (sorry for the quick 3D sketch..). About power, I could power it through Power Over Ethernet, since I'm using a CAT5 cable. As all the motors are controlled by the Arduino, I could power one motor at a time to avoid overloading the powerl line.
Dougl, you're right about torque requirements. I think to put a large gear as shown in the picture (sorry for the quick 3D sketch..). About power, I could power it through Power Over Ethernet, since I'm using a CAT5 cable. As all the motors are controlled by the Arduino, I could power one motor at a time to avoid overloading the powerl line.
I missed the part about the 1-wire bus being controlled by an Arduino. I guess I also missed the part about the 1-wire bus being carried over a CAT5 cable and I don't know what Power over Ethernet has to do here but apparently you already have some ethernet devices there too and you're thinking of implementing PoE to apply and extract power. Hopefully you'll find that PoE uses only two wires because since you're already using one pair for the 1-wire bus(if you're doing passive 1-wire), that leaves only one pair left for power. Personally, I would not invest in all the PoE stuff and just run power over those wires and use whatever connectors I have around.
FYI, I just looked up some specs on PoE and you can't do it if you already are using 1 pair in the Cat 5 for the 1-wire bus. PoE requires two pairs of wires just for power. Plus, the spec says the max load is only 400mA and that's going to be a pretty small motor to pull only >.5 A. So you'll have to forego your PoE plans and pull another Cat 5 cable or something else to power the motors and electronics.
Sorry Dougl it seems while tinkering my mind goes too fast and miss some pieces hehe. I agree 400 mA aren't enough
I have to tell I referred to POE in a wrong way... I would just use some of the CAT5 cable wires to deliver power and the 1-wire bus, the cable won't be shared with a real Ethernet network
Probably I found the perfect companion, all I need is to use that H-bridge. There's only a problem: the circuit in the project uses three outputs: one for on/off power, the other two for changing direction.
Some time has passed since last post here, but now I got progress on this project and need a little feedback:
Right now I'm able to:
control a DC motor through Arduino and L298 h-bridge
turn on and off LEDs through 1-wire DS2406 switches
Now I have to interface the three control wires of L298 (Enable, Input A, Input B) to two DS2406s.
Here I found some circuit examples:
I understand that DS2406 doesn't give high or low signals like Arduino pins, but "sinks" voltage.
How do I connect these to the L298?
Can I avoid to use three DS2406 by hooking the Enable wire to the two Input wires with a couple of diodes?
but "sinks" voltage.
How do I connect these to the L298?
Just wire them up and add a pull up resistor. So when it is sinking current the L298 will see a logic zero. When it is not sinking current the L298 will see a logic 1 - because of the pull up.
Can I avoid to use three DS2406 by hooking the Enable wire to the two Input wires with a couple of diodes?
Do you need to control these, why not have the enable wired permanently high? You can connect one output to sevral inputs without needing diodes.
I made pull up resistors connected to the two DS2406 and they work as expected: I see 0.4V when they're high and 0V when they are low.
Now I hit a wall I overlooked: the L298, and also the SSR I want to drive, needs at least 3V @ 3 mA to go high.
Which is cheapest and easiest way to increase this voltage? The power supply voltage of the whole thing is 6V.
I already have BC547B transistors but I suppose they aren't suitable here.
I have found some circuits called voltage doubler that uses capacitors and diodes, but it doesn't seems a neat solution for driving a SSR that only loads 3mA... HELP!!