JMotor
Loading...
Searching...
No Matches
Public Member Functions | List of all members
JMotorDriverEsp32Servo Class Reference

For servos and motor controllers that use servo signals (ESCs) More...

#include <JMotorDriverEsp32Servo.h>

Inheritance diagram for JMotorDriverEsp32Servo:
Inheritance graph
[legend]
Collaboration diagram for JMotorDriverEsp32Servo:
Collaboration graph
[legend]

Public Member Functions

 JMotorDriverEsp32Servo (byte _pwmChannel, byte _servoPin, int _freq=50, int _resBits=14, int _minServoValue=544, int _maxServoValue=2400, bool _constrainRange=true)
 constructor, sets pins, custom frequency and resolution optional
 
void adjustFrequency (float freq=1.0)
 helper function for adjusting the frequency that the servo signal pulse is repeated at For some servos this can be used to adjust the strength of the servo ( <1.0 makes it weaker)
 
float setFrequencyAndResolution (int freq=50, int resBits=14)
 set frequency that servo signal pulse is repeated at and how many bits are used internally for resolution
 
bool set (float _val)
 set motor power
 
bool setEnable (bool _enable)
 use to enable or disable a motor, and sets up pin states
 
bool getEnable ()
 get the enable state of the driver
 
float getMaxRange ()
 high end of the range
 
float getMinRange ()
 low end of the range
 
- Public Member Functions inherited from JMotorDriverServo
void setMinServoValue (int value)
 microseconds for shortest servo pulse
 
void setMaxServoValue (int value)
 microseconds for longest servo pulse
 
int getMinServoValue ()
 returns setting for microseconds for shortest servo pulse
 
int getMaxServoValue ()
 returns setting for microseconds for longest servo pulse
 
int getServoValueRange ()
 returns difference (in microseconds) between longest and shortest servo pulse settings
 
void setServoValues (int min, int max)
 set the settings for short and long servo pulses at the same time
 
int getSetMicroseconds ()
 returns how many microseconds the servo signal pulse was most recently set to
 
bool getConstrainRange ()
 returns whether the range of set() will be constrained to within -1 and 1
 
void setConstrainRange (bool _constrainRange)
 set whether the range of set() will be constrained to within -1 and 1
 
- Public Member Functions inherited from JMotorDriver
bool enable ()
 enable motor
 
bool disable ()
 disable motor
 

Additional Inherited Members

- Protected Attributes inherited from JMotorDriverServo
int minServoValue
 
int maxServoValue
 
int setMicroseconds = 0
 
bool constrainRange
 

Detailed Description

For servos and motor controllers that use servo signals (ESCs)

Note
platform: ESP32

Constructor & Destructor Documentation

◆ JMotorDriverEsp32Servo()

JMotorDriverEsp32Servo::JMotorDriverEsp32Servo ( byte  _pwmChannel,
byte  _servoPin,
int  _freq = 50,
int  _resBits = 14,
int  _minServoValue = 544,
int  _maxServoValue = 2400,
bool  _constrainRange = true 
)
inline

constructor, sets pins, custom frequency and resolution optional

Parameters
_pwmChannelledc channel (must be unique for each driver)
_servoPinpin to output signal on
_freq= 50: Hz (default 50) must be <= int(80E6 / 2^resBits)
_resBits= 14: (default 14) tradeoff with max available frequency
_minServoValue(int) minimum servo pulse, default: 544 microseconds
_maxServoValue(int) maximum servo pulse, default: 2400 microseconds
_constrainRange(bool) constrain range of set() to within -1 and 1, default: true

Member Function Documentation

◆ adjustFrequency()

void JMotorDriverEsp32Servo::adjustFrequency ( float  freq = 1.0)
inlinevirtual

helper function for adjusting the frequency that the servo signal pulse is repeated at For some servos this can be used to adjust the strength of the servo ( <1.0 makes it weaker)

Parameters
freqdefault 1.0, freq*50 is sent to setFrequencyAndResolution

Implements JMotorDriverServoAdvanced.

◆ getEnable()

bool JMotorDriverEsp32Servo::getEnable ( )
inlinevirtual

get the enable state of the driver

Return values
(bool)true if enabled, false if disabled

Reimplemented from JMotorDriver.

◆ getMaxRange()

float JMotorDriverEsp32Servo::getMaxRange ( )
inlinevirtual

high end of the range

Note
usually 1.0
Return values
(float)maxRange

Reimplemented from JMotorDriver.

◆ getMinRange()

float JMotorDriverEsp32Servo::getMinRange ( )
inlinevirtual

low end of the range

Note
usually -1.0, if 0, that indicates a motor controller with no reverse function
Return values
(float)minRange

Reimplemented from JMotorDriver.

◆ set()

bool JMotorDriverEsp32Servo::set ( float  val)
inlinevirtual

set motor power

Note
val should be between getMinRange and getMaxRange, but constrained internally
Parameters
val(float) val
Return values
(bool)false if at end of power range, true otherwise

Reimplemented from JMotorDriver.

◆ setEnable()

bool JMotorDriverEsp32Servo::setEnable ( bool  _enable)
inlinevirtual

use to enable or disable a motor, and sets up pin states

Note
setEnable(true) must be called before a motor driver will activate
Parameters
_enable(bool) true=enable, false=disable
Return values
(bool)true if state changed, false if state already set

Reimplemented from JMotorDriver.

◆ setFrequencyAndResolution()

float JMotorDriverEsp32Servo::setFrequencyAndResolution ( int  freq = 50,
int  resBits = 14 
)
inline

set frequency that servo signal pulse is repeated at and how many bits are used internally for resolution

Parameters
freqHz (default 50)
resBits(default 14) tradeoff with max available frequency
Return values
(float)returns PWM cycles per microsecond-used in ledcWrite call, returned for debugging purposes

The documentation for this class was generated from the following file: