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:

PWM

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.

close()[source]

Close the PWM.

enable()[source]

Enable the PWM output.

disable()[source]

Disable the PWM output.

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

property polarity

Get or set the PWM’s output polarity. Can be “normal” or “inversed”.

Raises:
  • PWMError – if an I/O or OS error occurs.

  • TypeError – if value type is not str.

  • ValueError – if value is invalid.

Type:

str

property enabled

Get or set the PWM’s output enabled state.

Raises:
  • PWMError – if an I/O or OS error occurs.

  • TypeError – if value type is not bool.

Type:

bool

class periphery.PWMError[source]

Bases: OSError

Base class for PWM errors.