Okay, I've made a few "control things with a transistor or SSR" circuits, but haven't quite done this so I've got a part-sourcing question...
I've got a friend who teaches meteorology and he needs a speed controller for a potter's wheel that's being used as a "spin tank". We opened it up and it looks like the motor is a DC motor (1/4 hp) and the speed control is a linear sliding potentiometer. I'd like to replace that with a speed control circuit, but I'm not clear what the best solution is.
Is this a candidate for PWM? If so--what transistor/mosfet would be appropriate here? Should I run over with a DMM to measure the actual voltage/current through the motor at min/max speed prior to selecting?
Wasn't sure on this one. Looks like a fun "overkill" project (we'll need to build a speed sensor too, and then maybe a PID controller for the speed since the power output would depend on the variable mass of the tank, and there's no need for any of this since it works just fine as it is, but why take what works fine when you can overbuild a ludicrous solution for twice the price?)
We opened it up and it looks like the motor is a DC motor (1/4 hp) and the speed control is a linear sliding potentiometer.
Are you sure it's DC? My hunch is it's AC. I'm assuming the potter's wheel is just plugged in to a regular outlet, or does it have another box that could conceivably be converting the AC to DC? Any markings on the motor?
--
The Rugged Audio Shield: Line In, Mic In, Headphone Out, microSD socket, potentiometer, play/record WAV files
If it is a DC motor then you need to dig into the machine a bit farther and find out what the motor controller board is. From there you can find out what kind of signals the board can use. Some boards want a 0-5V or 0-10V signal, others are made to work only with a potentiometer. Find the controller board and then se if you can find a datasheet on the board.
Photos would be useful... It might be the potentiometer directly controls the field windings for instance, it might be an induction motor or whatever - need all the details please.
Part of the problem is that I don't know what details I need. Here is a photo of the board and potentiometer. Sorry that I don't have a better one (and have forgotten which wires go to what)-- I'll try to head up later and document better.
The wheel is a Brent IE potter's wheel; they're fairly spendy, but I can't find loads of information on them. This page does seem to specify "1/4 hp permanent magnet DC motor". What appears to be a sliding potentiometer labeled "22126k" appears on this page as "pot slide 600k" (admittedly it's only 7 lines below "Bat brace for Batmobile", so I'm not sure it's the right part...). The pot itself has blue and red "trim" wheels (I presume to adjust idle setting).
Since it has the word "accel" on the silkscreen, I'm guessing the board incorporates some spin-up logic so that it doesn't torque the heck out of the system on powerup, but I could do that from within the arduino circuit. OR, is there any way to get the Arduino to just replace the variable pot and just use the existing board as a speed control?
I can't seem to find much information on the board (I've seen it referred to as a "D-30 control board" but that's not helpful obviously, and the "476032160" on the chip isn't helping me much either).
What other information could I get that would be useful?
Okay, I thought of more useful information to get and have gotten it!
The board, it turns out, is a commercial speed control, a KBLC-240DS from KB electronics; datasheet here, manual here. It's a decent ($100ish) DC speed controller, and all it wants for control is a potentiometer connected between jumpers P3 and P2.
I got in there and tried to measure voltages, and it looks like it's supplying about 17V between the high and low, with the high-to-wiper drop giving about 11.6v (fast speed) to 8.2v (slow speed).
With the existing board providing a lot of features (acceleration, fusing, overload protection, current rectification, etc), I'd sure like to just replace the pot with something the Arduino can control, but I'm not clear on how to do that. I keep envisioning some sort of "pwm pin through a transistor and RC circuit to give a fairly stable voltage between..." what? High and wiper? Low and wiper?
Feels like the right SORT of solution, though. Any suggestions?
dxw00d, good idea--that may be the way to go. Although I did see this in the manual:
"All models can be ocntrolled with an isolated analog reference voltage (0-7VDC) in lieu of the main speed potentiometer. The voltage is connected to P2(+) and F-" (P2 is the "high" terminal of the potentiometer, but F- is the negative terminal of the motor field, which surprised me) ... "The control output voltage will linearly follow the input voltage. The source impedeance of the input should be 10K ohms or less... if the input signal is not isolated, or is a current signal (4-20mA), the KBSI-240D or SI5 Barrier Terminal Board Signal Isolator must be used. It will allow direct connection to process controllers and microprocessors."
All this sounds positive, but the last bit throws me a bit. The two suggested items are signal isolators (KBSI-240D, SI5), and I'm not sure if they'd be necessary.
Also--found a note here describing how to attach the external power source. We attempted to connect a bench power supply in that manner, but didn't seem to have any results except an exciting spark (and a blown fuse). Any idea what we may have missed?
Grr... got off the phone with the controller board and they were fairly unhelpful; the problem is that the stock controller (which works with voltage following, etc) was modified for this application and the tech support said "can't be done" and I should buy a stock controller.
Now, I don't particularly believe this, because we're basically looking at a voltage drop across a potentiometer being the driver, but I'm worried about frying something. Maybe I should try a pot, but I don't know of a 600k electronic pot.
Ha! I love the "low tech high tech" idea, but in this case it would be a little more irritating to hack the pot (it's a linear slider, so you'd have to build other stuff to mount it, etc) and I'm going to stick with the "I2C-controlled 1M digital pot" idea. What I'm currently stuck on is the speed sensing; I've tried a reed-switch-and-magnet but it doesn't seem terribly reliable, so my next best idea is a photogate using the spokes of the wheel as interruptors. Ah, learning. Gotta love it.
If the pot is used as a variable voltage divider, providing 0-7v into the controller input, then its value is unlikely to be critical and you could use a different value. Only thing to watch out for is if it has a fixed resistor connected in series with one end to limit the range (e.g. to provide 0-7v from a 12v supply), then you will have to adjust the value of that series resistor too.
For measuring the wheel revs I suggest a US1881 Hall sensor and 2 magnets, arranged so that the sensor sees alternating N and S poles as the wheel rotates.
I like the hall idea, but I actually found a phototransistor and IR led combo which is making a dandy photogate (I'm having a couple of interrupt deconfliction issues, but it appears to be working pretty well). The wheel that the motor turns via belt has three large cast "spokes", so that should do just fine in terms of RPM sensing.
dc42: The weird thing about this is that the pot isn't being used as a variable voltage divider. Instead of the pot being connected as high-wiper-low, it appears to be high-wiper, with low disconnected, a variable resistor rather than a voltage divider. I know--I'm not sure what I think of that either.
Worse, while the high-to-low voltage (where the pot should be connected) is only about 18v, each pole is at over 100V with respect to case ground! This resulted in a mighty spark when a lead contacted the case of the power supply I was using (and borked the power supply's low-end output section; think I need a fuse replacement).
So I'm not sure exactly how comfortable I am with this digital potentiometer, but it's the cheapest way forward that I see, so I'm going to give it a go. I just may let the blue smoke out of my Arduino if I'm not careful.
GRR. ARG. The 1M pot I found has a max A-B voltage of 7v, and I'm pretty sure the voltage across the points I need to muck with is 18V. I may be back to having to think about how to deal with this. Incredibly annoying and there really should be a better way; I'm just not sure I know how to do it yet. GRR. I wish I knew better how this thing was being controlled.
Okay, so after thinking about this a little longer, I'm wondering if anyone can throw around some new ideas.
The voltage drop across the pot (which is, again, being used as a rheostat rather than a voltage divider) tends to be 11v-8v or so (the higher the voltage drop, the slower the motor). The current, if I've measured it right, is actually quite small, about 0.04-0.05 mA, so it sounds like it's just being used to change the voltage to the wiper and not really modifying current much.
So we're not dissipating a ton of power. If I'm right and it's a voltage sensing issue, is there a way to cleanly provide a voltage drop with the Arduino? A PWM-controlled transistor or some such? Any other ideas?
I'd try an opto isolator and smoothing capacitor driven by a PWM pin. See attached. The reason for the slightly strange way in which the Arduino drives the opto isolator is so that while it is powering up, the opto is turned on, thereby turning the motor off.
Okay, I went the optoisolator-with-two-opamps route. I now have a cute li'l circuit (HCNR201 for the opto, and 2xLM358 for the opamps) which will take 20V from the motor control for the output supply and 5v from the arduino on the input side, and happily amplify an input signal by 4x.
...I just can't seem to connect it to the motor control board in any way that makes sense. If I connect it to the high pin of the potentiometer and the "ground", the voltage drops from 20V to virtually nothing as soon as I plug in the VCC to the output opamp. I did find a good solid 20V source that doesn't drop, but it's a teeny hole in the board and since the "20V" is "mains voltage to mains voltage minus 20V", holding a wire in place is a "chargeable offense." I still haven't figured out a way to get a signal to the wiper terminal in any way that makes the motor turn.
This is getting really frustrating. I'm learning a lot, but I have to admit that by now that's starting to be small consolation!
Further addendum. After the "tingle of discovery" where once again I found that both of those terminals, though only 18V apart, were about 100V with respect to case ground... well, I found a good +20 terminal on the board and now I can tweak the input voltage of my optoisolator and make the darn thing do my bidding. FINALLY! Now I just need to burn the optoisolator board and get the thing connected so I can tweak the circuit.
It's going to be a little interesting tweaking the PID controller output to set an output voltage, but at least all the parts are known now; I think this is actually going to work! Hoo, almost certainly not worth the effort, but it's getting there.