PWM
Code Example
from periphery import PWM
# Open PWM chip 0, channel 10
pwm = PWM(0, 10)
# Set frequency to 1 kHz
pwm.frequency = 1e3
# Set duty cycle to 75%
pwm.duty_cycle = 0.75
pwm.enable()
# Change duty cycle to 50%
pwm.duty_cycle = 0.50
pwm.close()
API
- class periphery.PWM(chip, channel)[source]
Bases:
object
Instantiate a PWM object and open the sysfs PWM corresponding to the specified chip and channel.
- Parameters:
chip (int) – PWM chip number.
channel (int) – PWM channel number.
- Returns:
PWM object.
- Return type:
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if chip or channel types are invalid.
LookupError – if PWM chip does not exist.
TimeoutError – if waiting for PWM export times out.
- property devpath
Get the device path of the underlying sysfs PWM device.
- Type:
str
- property chip
Get the PWM chip number.
- Type:
int
- property channel
Get the PWM channel number.
- Type:
int
- property period_ns
Get or set the PWM’s output period in nanoseconds.
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if value type is not int.
- Type:
int
- property duty_cycle_ns
Get or set the PWM’s output duty cycle in nanoseconds.
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if value type is not int.
- Type:
int
- property period
Get or set the PWM’s output period in seconds.
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if value type is not int or float.
- Type:
int, float
- property duty_cycle
Get or set the PWM’s output duty cycle as a ratio from 0.0 to 1.0.
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if value type is not int or float.
ValueError – if value is out of bounds of 0.0 to 1.0.
- Type:
int, float
- property frequency
Get or set the PWM’s output frequency in Hertz.
- Raises:
PWMError – if an I/O or OS error occurs.
TypeError – if value type is not int or float.
- Type:
int, float