I know now we should have done some research/calculations before purchasing parts. But now we are to the point of make it work or start over.
We purchased 3 lengths of the 2 inch track using one and a half lengths for each half of a 2 tracked tank
We also purchased hubs, idlers and 2 GHM-13 6mmshaft 12vdc 50:1 152rpm motors.
We are using 2 L293B h-bridges in parallel(for higher current) for bidirectional motor control.
For a power source we are using a 16.8vdc Li-po battery(made from cell phone cells).
We are regulating the logic level voltage at 5vdc with an LM294ct with a 100uF cap across GND and Vout. and The reccomended 0.47uF cap across Vin and GND. national.com/ds/LM/LM2940.pdf
We have soldered three 0.1uF caps on each motor, one from each lead to the motor housing and one between each the leads like they recommend here. pololu.com/docs/0J15/9
I have also added 0.1uF bypass caps at every Vcc and Vdd to gound right next to the chips.
We are using microchip pic16f886 microcontroller to provide the pulse width modulation and direction signals.
We have run into a few problems.
I think the motors are not strong enough to drive our platform at a low speed(50% pwm ~8.4 volts). We only need 1 - 2 mph, not the 3-5 mph we get at the full 16.8 volts.
When the track segments slap around the bottom sprockets while moving at a normal speed (70% PWM of 16.8 volts ~ 11.76v) on a flat ground or rocks we are still getting some transient spikes back into the breadboard where the microcontroler is causing false trips of our bumper limit switches. This does not happen if we run the motors while holding the tank off the ground.
It’s generally not accepted practice to parallel connect bipolar output as they don’t lend themselves to current sharing as FET’s do. Are you doing anything with the sense pins to ensure current sharing? No one really uses them for serious motor control applications anymore due to the bipolar output stage.
If you aren’t doing anything on the board to ensure current sharing it’s safe to assume one of the two are doing the majority of the work. This limits your current to around 2 amps, assuming you have a really good heatsink…
The GHM-13 can take 4 amps under a decent load with 6 amps at stall. I’m not sure you are really providing the motors current requirements due to the bipolar output of the chip.
Cell phone batteries… Really? What is the current delivery capacity of these phone batteries. A cell phone does not require a lot of current so it’s highly unlikely that the mfg of the phones are using LiPo’s that can actually deliver the required current. In other words a LiPo that can deliver a lot of current cost more to manufacture, so it’s very likely the ones you have are not capable of delivering the current required by the motors. It also sounds as if these were salvaged not purchased new?
You never mentioned the weight of the rover.
In my opinion the tracks slapping has nothing to do with transient spikes. It’s common to isolate the motor power supply fro the logic supply. Have you made any attempts in this area? I really think you are barking up the wrong tree concerning transient spikes. I suspect your motor driver circuitry first then your power supply second. I also wonder what is the surface area of the tracks, and the overall weight of the bot. These details will help determine the real problem.
You state you have added the diode protection then state you suspect back emf, the exact thing the diodes protect against. To rule this and the transient spikes out completely, separate the logic and motor supplies.
You state the motors can move the bot at full power, but not at a reduced power, PWM. This points to the H-Bridges… Throw a quality motor controller like the Dimension Engineering or Basic Micro units on there and see if it makes any difference.
And the batteries are Lithium ion not lithium polymer like I misinformed earlier.
My question has two parts.
1 - Why am i getting false triggers of the bumpers when the motor is under load.
2 - would replacing the 50:1 with lower geared motors help with the strength problem(won’t move below 6 volts on the motors)
Thanks for the video. In order to really help a full schematic would be required. Here are the problems I see.
I do not think the solderless breadboard can handle the current required for those motors.
You are not isolating the logic and the motor supplies.
Lithium Ion is much worse in current capability then LiPo.
With a good quality motor controller we don’t even use caps on the motors at all. With no issues. These are not high current, electrically “noisy” motors. They just are not. Look at the RC car motors and you will see a motor that needs to have noise suppression caps. These things draw 50 amps and are extremely noisy.
Put a volt meter on the supply for the logic and see what it does when you try to load the motors. I think your supply is “browning out” causing your micro to reset, or have difficulty reading inputs.
The weight is not an issue, and the problem happens when just going straight, so I do not suspect the problem is mechanical. We try to illustrate in our TriTrack assembly guide that you need to use idlers to support the weight, not the sprockets, so the whump whump whump when it moves is preventable.
The same motor with less gear reduction would be less powerful not more powerful. But this has nothing to do with your problems.
Again, it should be pretty easy to isolate the logic and motor supplies. Doing this will save you hours of head scratching. Just put a 9vdc battery to power the micro and see how it acts. I believe all your issues are with you power delivery system…
I think you said the limit switches are normally closed. In this setup a voltage dip in your power supply (caused by motor load and such), may be triggering the limit switch monitoring circuit the same as the switch neing opened. You may need to check the value you are using for detecting the switch being open.
I am an electronics student at Southern Utah University. More than anything I just want to understand what is going on.
Here is the latest:
I rebuilt the schematic into two parts separating the logic(microcontroller & bumpers) from the motors(hbridges and motors)
each half now has their own battery pack and 5volt regulation circuit.
These two pictures should help, I couldn’t figure out how to make two separate +5 nets so they are on different schematics. Imagine the 6 optoisolators between each wire comming from the microcontroler to the hbridge. On the microcontroler side picture a 220ohm resistor from the cathode of the LEDs in the optoisolator to ground. On the motor side of the optoisolators the emitors are tied to ground and the collectors are pulled high with 10kohm resistors and tied to their respective pins on the hbridges.
That failed, same results. No phantom triggers when held off the ground, on ground trips randomly…
Then a friend suggested taking the h-bridges and opto’s out of the equation. So I just hooked both motors up to the second battery pack and the other half of the power switch(it is DPST). And what do you know Failure… Same as all the other setups. I think this narrows the possible sources of the phantom trips to the motors radiating the EMF. This also means that my logic circuit is not able to quench the radiated EMF.
If the motors are radiating the EMF, then my capacitor setup must not be filtering a portion of the frequencies radiated.
Another friend suggested making a parallel set of caps 0.01uF, 0.1uF, 1.uf, and 10uF.
I looked around the lab and I couldn’t find any 10uF non-polarized caps, this was going to be my next attempt.
Also I have heard of Faraday cages or steel bands around motor housings…
I don’t want to spend money on pre-made solutions if I can build from the parts we have in the Lab.
You might put .1uF caps on each of the 5v regulators. Also .01uF.
I see 4 inputs from bumper switches, but no pull-ups to 5v. 1K, 2K or whatever should be used to keep it clean. You can even put .01 caps on the lines, sometimes it helps.
Does your 'bot use a metal chassis? Try a brad strap from motor bodies to ground. You can even use small coax cable shield braids (slip them off of RG174 or similar coax) over the motor wire runs.
this video basically says what the following text does.
we found it! One more test cut to the problem. We took out the bumper switches (yes we were tying them low with 10kohm resistors, they were normally closed[high]). We replaced the switches with jumpers so we could hold the logic board now completely physically separate from the motors and platform and everything to see how close we could get to the rover while it was cruizing on the lab floor. We quickly realized that it was working, and to make things even better we put the board back in the tank and away it went! No more phantom triggers!
We knew that a software debounce would slow douwn the interupt so we assembled an analog setup, a cap parallel with the switch then fed the top side of that through an inverting schmit trigger. Like they show here: ikalogic.com/debouncing.php
that was also a flop. We could not get the capacitor values to properly match the bounce.
Then Trenton made a setup with some NPNs and capacitors on the base which appeared to work on the o-scope but also failed on the on-floor interrupt test.
So were going to try opto-interupters or photo switches. This might take a few days to rig up but I think it will work much better.
For future reference the bouncy switches we were using look like this and probably have a semi weak spring inside the housing.
I used a similar setup for a foot contact sensor a long time back. Kept an analog pin held high with something like a 10k resistor, and when conact was made the analog pin was grounded. I checked for a low reading on the analog pin, and when detected, the program moved on to record the position and raise the leg back up. No debounce needed as when the low value was detected, the program moved on to do other things. You might write your program such that the state of the bumper switch is only monitored when the bot is traveling foward.
Yep, they’re just not noisy motors. You still have issues in the use of solderless breadboard for carrying a couple amps, and the paralleling of the bipolar output stages, but at least you solved the problem at hand. lol