An ESC control library for controlling an Aerostar RVS TYPE ESC w/Reverse Function line over an Adafruit PCA9685 16-Channel 12-bit PWM/Servo Driver and I2C interface
This Library was an extension of the first draft I2C_ESC Library to use the full Adafruit PCA9685 16-Channel 12-bit PWM/Servo Driver as a block controlling 8 ESC's with 8 reverse function signal lines. Eventually this library was ported back to the I2C_ESC library master branch and this library was kept as a legacy version. The original I2C_ESC Library is based on RB-ENantel/RC_ESC library and extended to work with Adafruit PCA9685 16-Channel Servo Drivers on the I2C bus and fully wraps the adafruit/Adafruit-PWM-Servo-Driver-Library. That is carried over to this library.
This Library is designed to work with the Arduino IDE versions 1.8.x or later; we have not tested it with earlier versions. This Library should support any Arduino compatible board and the Adafruit PCA9685 I2C 16-Channel PWM/Servo Drivers
Basic Instructions on how to use the ESC portion of the library can be found in the following Robotshop blog post. https://www.robotshop.com/community/blog/show/rc-speed-controller-esc-arduino-library
Basic Instructions on how to use the I2C PWM/Servo wapper portion of the library can be found in the following Robotshop blog post. https://learn.adafruit.com/16-channel-pwm-servo-driver
Aerostar RVS 40A Electronic Speed Controller w/Reverse Function 3A BEC (2~4S) can be purchased through Hobby King's website other versions of this Aerostar RVS ESC with a Reverse Function line should also work.
Adafruit PCA9685 16-Channel Servo Drivers can be purchased on Adafruit’s website. See the Adafruit PCA9685 16-Channel Servo Driver user’s guide and tutorial and the adafruit/Adafruit-PWM-Servo-Driver-Library for more details.
-
I2C_Array_ESC(uint8_t I2C_Address, int outputMin, int outputMax, int armVal)
- Default constructor
- ESCs are plugged in with the control signal line then the reverse signal line. That gives pins 0 and 1 to the first ESC then 2 and 3 to the second ESC, etc
- Default constructor
-
calib(int ESC_pin)
- Calibrate ESC on ESC_Pin
-
calibArray()
- Calibrate the Array of ESCs
-
arm(int ESC_pin)
- Arm ESC on ESC_Pin
-
armArray()
- Arm the Array of ESCs
-
stop(int ESC_pin)
- Send the stop pulse to the ESC on ESC_Pin to stop the motor
-
stopArray()
- Send the stop pulse to the Array of ESCs to stop the array of motors
-
speed(int ESC_pin, int speed)
- Send the speed pulse between the min and max calibration limits to the ESC on ESC_Pin to set the motor speed
-
speedArray(int speed)
- Send the speed pulse between the min and max calibration limits to the array of ESCs to set the motor array speed
-
reverse(int ESC_pin)
- tell the ESC on ESC_Pin to stop and reverse the motor
-
reverseArray()
- tell the array of ESCs to stop and reverse the motor array
-
rampSpeed(int ESC_pin, int speedInitial, int speedFinal, int step = 1, int stepTime = 10)
- Change the ESC/motor speed on ESC_Pin by step value from an initial to final speed. The step time is how long in milliseconds between each step
-
rampSpeedArray(int speedInitial, int speedFinal, int step = 1, int stepTime = 10)
- Change the array of ESCs/motors speed by step value from an initial to final speed. The step time is how long in milliseconds between each step
-
setCalibrationDelay(uint32_t calibration_delay)
- set the calibration delay for ESC calibration. Default delay is 8000 ms
-
setStopPulse(uint32_t stop_pulse)
- set the stop pulse value. The default is 500 us
- Ported back to the I2C_ESC library and this library became a legacy version.
- no releases have been made yet