PWM
- class wpilib.PWM(channel: int, registerSendable: bool = True)
Bases:
Sendable
Class implements the PWM generation in the FPGA.
The values supplied as arguments for PWM outputs range from -1.0 to 1.0. They are mapped to the microseconds to keep the pulse high, with a range of 0 (off) to 4096. Changes are immediately sent to the FPGA, and the update occurs at the next FPGA cycle (5.05ms). There is no delay.
Allocate a PWM given a channel number.
Checks channel value range and allocates the appropriate channel. The allocation is only done to help users ensure that they don’t double assign channels.
- Parameters:
channel – The PWM channel number. 0-9 are on-board, 10-19 are on the MXP port
registerSendable – If true, adds this instance to SendableRegistry and LiveWindow
- class PeriodMultiplier(value: int)
Bases:
pybind11_object
Represents the amount to multiply the minimum servo-pulse pwm period by.
Members:
kPeriodMultiplier_1X : Don’t skip pulses. PWM pulses occur every 5.05 ms
kPeriodMultiplier_2X : Skip every other pulse. PWM pulses occur every 10.10 ms
kPeriodMultiplier_4X : Skip three out of four pulses. PWM pulses occur every 20.20 ms
- kPeriodMultiplier_1X = <PeriodMultiplier.kPeriodMultiplier_1X: 1>
- kPeriodMultiplier_2X = <PeriodMultiplier.kPeriodMultiplier_2X: 2>
- kPeriodMultiplier_4X = <PeriodMultiplier.kPeriodMultiplier_4X: 4>
- property name
- property value
- enableDeadbandElimination(eliminateDeadband: bool) None
Optionally eliminate the deadband from a motor controller.
- Parameters:
eliminateDeadband – If true, set the motor curve on the motor controller to eliminate the deadband in the middle of the range. Otherwise, keep the full range without modifying any values.
- getBounds(max: wpimath.units.microseconds, deadbandMax: wpimath.units.microseconds, center: wpimath.units.microseconds, deadbandMin: wpimath.units.microseconds, min: wpimath.units.microseconds) None
Get the bounds on the PWM values.
This gets the bounds on the PWM values for a particular each type of controller. The values determine the upper and lower speeds as well as the deadband bracket.
- Parameters:
max – The maximum pwm value
deadbandMax – The high end of the deadband range
center – The center speed (off)
deadbandMin – The low end of the deadband range
min – The minimum pwm value
- getChannel() int
- getPosition() float
Get the PWM value in terms of a position.
This is intended to be used by servos.
@pre SetBounds() called.
- Returns:
The position the servo is set to between 0.0 and 1.0.
- getPulseTime() wpimath.units.microseconds
Get the PWM pulse time directly from the hardware.
Read a microsecond value from a PWM channel.
- Returns:
Microsecond PWM control value.
- getSpeed() float
Get the PWM value in terms of speed.
This is intended to be used by motor controllers.
@pre SetBounds() called.
- Returns:
The most recently set speed between -1.0 and 1.0.
- setAlwaysHighMode() None
Sets the PWM output to be a continuous high signal while enabled.
- setBounds(max: wpimath.units.microseconds, deadbandMax: wpimath.units.microseconds, center: wpimath.units.microseconds, deadbandMin: wpimath.units.microseconds, min: wpimath.units.microseconds) None
Set the bounds on the PWM pulse widths.
This sets the bounds on the PWM values for a particular type of controller. The values determine the upper and lower speeds as well as the deadband bracket.
- Parameters:
max – The max PWM pulse width in us
deadbandMax – The high end of the deadband range pulse width in us
center – The center (off) pulse width in us
deadbandMin – The low end of the deadband pulse width in us
min – The minimum pulse width in us
- setDisabled() None
Temporarily disables the PWM output. The next set call will re-enable the output.
- setPeriodMultiplier(mult: wpilib._wpilib.PWM.PeriodMultiplier) None
Slow down the PWM signal for old devices.
- Parameters:
mult – The period multiplier to apply to this channel
- setPosition(pos: float) None
Set the PWM value based on a position.
This is intended to be used by servos.
@pre SetBounds() called.
- Parameters:
pos – The position to set the servo between 0.0 and 1.0.
- setPulseTime(time: wpimath.units.microseconds) None
Set the PWM pulse time directly to the hardware.
Write a microsecond value to a PWM channel.
- Parameters:
time – Microsecond PWM value.
- setSpeed(speed: float) None
Set the PWM value based on a speed.
This is intended to be used by motor controllers.
@pre SetBounds() called.
- Parameters:
speed – The speed to set the motor controller between -1.0 and 1.0.
- setZeroLatch() None
Latches PWM to zero.