Skip to content

Old version of the I2C_ESC library to work as a single 8 ESC unit, this library was ported back to the I2C_ESC library

Notifications You must be signed in to change notification settings

FireCastLabs/I2C_Array_ESC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I2C_Array_ESC Build Status

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

Summary

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.

Supported platforms

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

Getting Started

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

Hardware

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.

Documentation

  • 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
  • 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

    Version History

    • Ported back to the I2C_ESC library and this library became a legacy version.
    • no releases have been made yet

About

Old version of the I2C_ESC library to work as a single 8 ESC unit, this library was ported back to the I2C_ESC library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages