This may be a lame question but, Speed controllers on big RC cars can they be controlled from Arduino? If yes, do they have a standart? do I control them using PWM values? What should i look for if I am going to buy one?
Arduino Speed Controllers – Using Arduino for RC Cars
arduinomotor
Related Solutions
I spent 13 years designing electronics of this exact nature: three phase induction motor reduced voltage soft starters and variable frequency AC drives. I spent the last few of those years as a VFD applications engineer helping customers select and configure this equipment for various loads and industries around the country as well.
You will not be able to build something that is cheap and safe. The voltages and currents involved are well beyond the safety margin of a hobbyiest, especially someone who is openly avoiding buying commercial units in order to save money. Don't do it!
While the theory behind AC motor control is very straightforward, the detail level work (heat sink sizing, snubbering, gate drive requirements, de-sat protection, motor overload calculations, bus capacitor protection, etc.) can be quite tricky to get down, especially with heavy duty cycling and regenerative power modes which a carnival ride will CERTAINLY be generating. I strongly caution you against trying to build something of this nature unless you have significant experience not only in microcontrollers and embedded systems design but also significant experience in power electronics and three phase circuitry. People get hurt and killed building this stuff.
My first question for you is whether speed control is really required, or if you only require a soft start up and slow down. Do you vary the speed of the motor once it is started? If not, you may be able to get away with a MUCH cheaper reduced voltage soft starter. These units act like three phase light dimmers; they only adjust the applied voltage to the motor. You will not have a lot of torque at low speeds, but with the right design of motor (NEMA class D) you can achieve exactly what you're after with a fraction of the cost and maintenance.
If you really do need to vary the full-load speed of the motor then you are more or less stuck using a variable frequency drive. As you are aware these are expensive and if you buy cheap you are likely to replace them sooner due to your high surge current (they call this "constant torque") application. What I would definitely recommend doing if this is the case would be to contact various manufacturers (Allen-Bradley, Cutler-Hammer, SAF drives, Benshaw, Yaskawa, etc.) and ask for reconditioned units. Ask for a drive capable of delivering 150% rated current for 30s (this is usually known as heavy duty) or size the drive 30-50% larger than your nominal current rating. You will also likely be running off of generator power which is notorious for being undersized and prone to brownouts and surges as the load requirements change with the state of the equipment being run. Drives don't like that (voltage sags cause current spikes as the motor starts slipping and surges can cause you to overvoltage the bus capacitors) and have a tendency to either fault out or blow up.
I am all about the little guy building something and saving a buck, but this is not the type of project to do this on. If you really want to build a three phase AC drive, start with a little 10HP 480V motor with a hand brake on a test bench. You have all the potential for experiencing the pants-filling sensation of an H-bridge failure or a bus capacitor explosion two feet from your head but without the potential lawsuits and loss of life (except perhaps your own).
I have worked on building a homemade quarocopter for my final year project, I remember having trouble with this too :)
I have used Turnigy Plush 30amp Speed Controllers.
Frist of all, FYI:
The normal sequence when staring an ESC (again, the one I worked with) is:
- as soon as your ESC is powered - minimun throttle (close to 1ms pulse) for about 3 seconds (until the beep codes for battery type and ok to start are elapsed)
This is a safety feature - normally, this means that the throttle stick is at minimum. However, a great majority of Electronic Speed Controllers are programmable in terms that you have to program this minimum (and maximum) throttle I said earlier about. In other words maybe that programmed minimum throttle is around 0.7ms (if you programmed it from RC transmitter with trim set to minimum) and when you power on your ESC input is around 10ms pulse, it's a safety feature it won't start, since in this case throttle is not minimum.
In order to program the new maximum and minimum input values (calibration):
- Power On
- as soon as you ESC is powered - maximum throttle (close to 2ms pulse) again wait for the beeps (only battery type)
- quickly jump to minimum throttle (close to 1ms pulse) and wait again for the new initialization beeps (this time there will be less, without battery type)
- new values for minimum and maximum throttle are now stored
I strongly recommend you use this kind of initialization every time so that all ESCs will be synchronized regarding minimum and maximum value of throttle. Also I strongly recommend you don't have any propellers mounted when experimenting with this approach :)
Now, regarding your code,
- I don't think you need to slide all the way up to the maximum or to down to the minimum during the initialization phase (in my case ESC expects value ASAP, with no slides), you should write the output value directly(no slide up/down).
- As soon as you reach the maximum value you start sliding down to the minimum. You should stay long enough at maximum value (Around 1 second)
- If initialization is not OK on first try, ESC is locked until supply is cut and turned on back again. There is no point in making attempts to initialize if first attempt is failed.
When calibrating or starting the ESC be sure to hold minimum value and/or maximum value as long as it is required. Something like:
Normal starup(as you described your ESC):
- Turn On ESC
- minimum throttle
- wait 2 seconds
- maximum throttle
- wait 2 seconds
- minimum throttle
- wait 1 second
- OK to Go
Normal starup(the ESC I used):
- Turn On ESC
- minimum
- wait 3 seconds
- OK to Go
Calibration:
- Turn on ESC
- maximum
- wait 2 sec
- minimum
- wait 1 sec
- OK to go
Another thing, good to know, entering programming mode for ESCs allows you to set a lot of parameters such as the cutoff threshold, brake. Before attempting flight, you must be sure that all these parameters are set the same for all ESC you use. Again, for the ESC I used, see the manual, page 2.
I'm pretty sure you've already figured this out, but I wanted to post it maybe it will help others :)
Related Topic
- Electronic – Arduino-controlled slot cars – alternative to MOSFETs for speed control
- Electronic – arduino – What action is responsible for speed changes in a brushless DC motor
- Electronic – Arduino motor control
- Electronic – Speed control for high power DC brushed motor
- Electronic – arduino – Motor speed control using arduino and quadrature encoders
- Arduino + MCP41010
- Electrical – PWM vs ESC for speed control for Arduino quadcopter
- Arduino – How to Control DC Voltage
Best Answer
They should be controlled by pwm, in particular the same pwm that is used for servos. Typically built in pwm units are not accurate enough, instead interrupt driven timer routines are usually the way to go. Should be lots of info on the web for arduino and servos.