
We've discussed the very handy TIP102 electronic switch circuit that is controlled by a digital port on EZB hare many times. I have built a few and am currently useing them in my B9 Robot.
I'm having odd issues with one of them. It's the one that turns the power on and off to my main high power Seiko servo that moves my B9's 5 pound or more bubble up and down.
Here's how I have it set up: I have the homemade switch connected to one of EZB's digital ports and set to turn on in EZB's INT Script. It then supplies 12vdc power to the servo "AFTER" the INT Script sends the first servo postion and Serov Speed. If I dont turn on the power after I send the first command the servo will jump (it's documented at the Servo's web site to do it this way also). I have the switch stay in the "On" postion till the robot is powered off.
Here's the problem: After sending commands over a period of time the switch will turn it's self off. The Digital Control I have installid in EZ Builder will appear to be in the active postion but the actual switch is off. I assume something is happening to the switch to cause it to open the circuit and stop the electrical connection. I've noticed it has happened at no certian events and seems ramdon. The only thing that seems constant is that I notice the servo is not working after several servo postion commands are sent somewhat quickly, one after the other and from different scripts.
I did notice one other thing; Once in a while I'll see the servo Power Switch's Digital Control in EZ Builder will be in the "Off" postion for no reasioin and this also shuts down the servo. I dont know if the two are related. I still have to search through all my servo Movment scripts to see if I have a command to turn it off but I dont think I do.
Any thoughts on what may be happening? Any input as always is welcomed!
Also, your regulators may be heating up to the point they break down. I used to know all of that stuff, but hey, I am retired and my brain retired with me.
my 2 cents
Link to latching relay
*tired*
One thing I could suggest is to include an LED in the circuit as a visual indicator of if it's on or off. You should be able to do this simply by putting the LED across Signal and Ground on the port to indicate the signal being high and the switch energizing. You could add another between Signal and Vcc (via a regulator on Vcc if using the V4) which would indicate the signal being low.
Do you have a schematic for the circuits? Or are they pretty much the standards TIP switch circuit?
Another thing I can think of is, if ARC reports the digital is "on" but the circuit isn't then possibly the transistor is failing or worst case, one of the other components.
It may also be some type of brownout issue, if the voltage drops under load or anything like that. If that's the case a capacitor to provide a small reservoir to avoid the voltage/current drops.
@Robot-Doc, a latching relay also just may do the trick. I like the idea of keeping the power curcuit and signal circuit separate. Also if I remember how a latching circuit works it requires no power to keep it either open or closed so the relay coil wont stay energized (I think, I may be wrong and I need to relearn that one).
@Rich, Your like our Spock around here.
I haven't had a lot of time since I posted last to play but I did look through my scripts last night after a 13 hr work day (I know... boohoo
I wouldn't have thought it is a bad component since the circuit still works. By bad component I meant something in the TIP circuit not something in the servo. So it's really limited to the resistor, transistor or diode, nothing that would cost the earth to replace.
Keep an eye on it, if it still does it after checking for any more Set() commands we can look a bit closer at the circuit. If you want I'm more than happy to search through the project for you and check for any Set() commands (I have a quick method but it involves messing around with the project file in something other than ARC and therefore could create problems for other people so am reluctant to share the method).
Good thing too. At this point most of my scripts are primitive and still need development. I would have been embarrassed to show them. Heck, most of them are still stand alone and not even in the Script Manager yet. I'm useing multiple scripts for different movements of the same motor. I'll enentually have one movement script for each motor and just send variables for speeds and positions for most movement (hopefully).
Thanks again to all that helped!
Glad it seems like it's solved now though. If it does happen again the offer is always there to check over the project for rogue Set() commands.
Thanks for sharing your super powers.
Just emailed you