|
|
Knightrous
Site Admin
Joined: 15 Jun 2004
Posts: 8511
Location: NSW
|
The Specs
I'm not sure how accurate these will be, but I believe it should live close to them.
50amp continous rating (3 x IRF1405 MosFets heat sinked, with 60 Amp Relays for reverse/braking)
Breaking
Polarity Protection
Failsafing (Checks Signals and will only use signals within the specified limits, not perfect)
12v or 24v Operation
12v regulated supply to relays to prevent burning out the coils on 24v
Battery Eliminator Circuit (Currently permanently on, but before any real 'production' this will be changed to on or off)
I'm probably off on somethings and some of the design is 'bad engineering' but it works.
The Source Code
The bare running code, YET TO BE TESTED.... I believe Ajax has tested it on a small scale, but his code is somewhat different to mine.
----------------------Source Code--------------------
;-------------------------------------------------------------;
;Team Distructive Technologies
;PicAxe 08M PWM Speed Controllers with Relay Reverse
;Written by Aaron Knight, with lots of help from Ajax & Spockie
;Copyright 2005 Aaron Knight
;Note: This is NOT a professional speed controller!
;-------------------------------------------------------------;
;-RC Channel Definitions
symbol fail_low = 90 ;0.9ms - failsafe below here
symbol low_on = 130 ;low activate point
symbol low_off = 135 ;low deactivate point
symbol neutral = 150 ;where motor is off
symbol high_on = 165 ;high deactivate point
symbol high_off = 160 ;high activate point
symbol fail_high = 210 ;2.1ms - failsafe above here
;-Preset Motor Parameters
symbol dutystep = 22 ; Manualy calculated
symbol min_duty = 145 ; Set for lowest start speed of motor
symbol period = 249 ; 249 = 4Khz 255 = 3.9Khz
symbol maxdutycycle = 1000
;-PicAxe Pin Definitions
symbol reciver = 1 ; Pulsein from Reciever
symbol motor = 2 ; PWM Output for Motor
symbol relay1 = 0 ; Relay 1 activate
symbol relay2 = 4 ; Relay 2 activate
;-PicAxe Register Definitions
symbol chan1 = b0
symbol temp1 = b1
symbol temp2 = b2
symbol direction = b3 ; 0 = Stop 1 = Forward 2 = Reverse
symbol dutycycle = w3
let direction = 0
;-------------------------------------------------------------;
main:
pulsin 1,1,chan1
if chan1 >= temp1 and chan1 <= temp2 then main
if chan1 > low_off and chan1 < high_off then motor_off
if chan1 <= low_on then cycle2
if chan1 >= high_on then cycle1
if chan1 >= high_off and direction = 1 then motor_off
if chan1 <= low_off and direction = 2 then motor_off
goto main
;-------------------------------------------------------------;
cycle1:
low relay1
high relay2
let direction = 1
let dutycycle = chan1 - neutral - 1
let dutycycle = dutycycle * dutystep + min_duty
gosub set_temp
goto pwm_set
;-------------------------------------------------------------;
cycle2:
high relay1
low relay2
let direction = 2
let dutycycle = neutral - chan1 - 1
let dutycycle = dutycycle * dutystep - min_duty
gosub set_temp
goto pwm_set
;-------------------------------------------------------------;
set_temp:
let temp1 = chan1 - 2
let temp2 = chan1 + 2
return
;-------------------------------------------------------------;
pwm_set:
if dutycycle > maxdutycycle then duty
;-------------------------------------------------------------;
full_return:
pwmout motor, period, dutycycle
goto main
;-------------------------------------------------------------;
duty_return:
pwmout motor, period, dutycycle
goto main
;-------------------------------------------------------------;
motor_off:
let dutycycle = 0
high relay1
high relay2
let direction = 0
goto pwm_set
;-------------------------------------------------------------;
duty:
dutycycle = maxdutycycle
goto duty_return
;-------------------------------------------------------------;
The PCB Designs
This was a whole new ball game to me, but it's one I've enjoyed learning. I picked up a free software program called Express PCB that is just a click and go style program for making PCB Designs. They also use this software for people who wish to have small prototype boards or full production runs made through the Express PCB company themselves.
Here is the Single Controller PCB
http://robowars.org/forum/album_pic.php?pic_id=792
and the Dual Controller PCB
http://robowars.org/forum/album_pic.php?pic_id=793
And that's pretty much it for now. I might chuck up a parts list and costing sheet up in the morning just for those wondering how much it would cost. _________________ https://www.halfdonethings.com/
|
Fri May 13, 2005 10:24 pm |
|
|
|
|
|
|
|
|
|
|
|
Spockie-Tech
Site Admin
Joined: 31 May 2004
Posts: 3160
Location: Melbourne, Australia
|
Good to see you're making some progress on your controllers there Aaron..
A circuit diagram would be helpful to cast an eye over before you commit to spending $85 getting boards made....
I suspect your main power tracks through your Fets are too small to handle the sort of current you are talking about.. remember that the IBC's circuit board has tracks
4x
the normal thickness of a PCB track and they are "fat" tracks in all power-handling areas (except the "fuse" area)
It doesnt look like you have any protection against voltage spikes on the Fets (see the Tranzorb diodes on the IBC). which means any noise from the motor that exceeds 55v even momentarily will likely damage them. Tranzorbs (or TVS Diodes - Transient Voltage Supressor) arent super cheap (about $1-$2 each in low quantities), but are worth adding to help stop "unexplained" booms when a momentary high voltage spike hits things.
When paralleling Fets to increase the current capability, remember that the gate of a Fet is capacitive in nature, and putting multiple capacitors in parallel with resistors between them creates an "RC" oscillator effect that will cause the gates to "ring" when switching off as the multiple Fet capacitances equalise their charge levels.
The series gate resistor will help dampen this, but if you make it too large, it wont be able to pull the charge out of the gates quickly enough to cause a clean fast "turn off" in the Fets. This is why the IBC has the "Charge Dump" diodes on the gate drive.
Despite all this if you run the Fets at a low enough current level, then you will probably get away with it.. The switch-on and off doesnt need to be perfect since a bit of gate drive "slop" (like backlash in a gear train) doesnt matter if the power levels arent high. Like an engine, its only when circuitry is highly stressed that things need to be spot-on.
Looks like you're on a reasonable track though..
@Big AL. The IBC Price ? Heard all the whining before.. if you think its too expensive, *you* try making something that can do what it can do cheaper. It is the
worlds
cheapest all-in-one controller for featherweights,
I know its still the most expensive part of a robot and hard for a beginner to afford.. so what ? There is no cheaper way to do it. If you cant afford it, use relays and the Pic-Relay-Controller..
You either have to put time or money into your bot if you expect it to be any good.. they're the same thing in different forms anyway.. _________________ Great minds discuss ideas. Average minds discuss events. Small minds discuss people
|
Sun May 15, 2005 2:11 pm |
|
|
|
|
|
|