Klasse PWM

Beispiel

# Import PWM class
from robot_hat import PWM

# Create PWM object with numeric pin numbering and default input pullup enabled
p0 = PWM(0)
# Create PWM object with named pin numbering
p1 = PWM('P1')


# Set frequency will automatically set prescaller and period
# This is easy for device like Buzzer or LED, which you care
# about the frequency and pulse width percentage.
# this usually use with pulse_width_percent function.
# Set frequency to 1000Hz
p0.freq(1000)
print(f"Frequence: {p0.freq()} Hz")
print(f"Prescaler: {p0.prescaler()}")
print(f"Period: {p0.period()}")
# Set pulse width to 50%
p0.pulse_width_percent(50)

# Or set prescaller and period, will get a frequency from:
# frequency = PWM.CLOCK / prescaler / period
# With this setup you can tune the period as you wish.
# set prescaler to 64
p1.prescaler(64)
# set period to 4096 ticks
p1.period(4096)
print(f"Frequence: {p1.freq()} Hz")
print(f"Prescaler: {p1.prescaler()}")
print(f"Period: {p1.period()}")
# Set pulse width to 2048 which is also 50%
p1.pulse_width(2048)

API

class robot_hat.PWM(channel, address=None, *args, **kwargs)

Basisklasse: I2C

Pulsweitenmodulation (PWM)

REG_CHN = 32

Kanalregister-Präfix

REG_PSC = 64

Vorteiler-Register-Präfix

REG_ARR = 68

Periodenregister-Präfix

CLOCK = 72000000.0

Taktfrequenz

__init__(channel, address=None, *args, **kwargs)

PWM initialisieren

Parameter

channel (int/str) – PWM-Kanalnummer (0-13/P0-P13)

freq(freq=None)

Frequenz setzen/abfragen, leer lassen, um die Frequenz zu erhalten

Parameter

freq (float) – Frequenz (0-65535) (Hz)

Rückgabe

Frequenz

Rückgabetyp

float

prescaler(prescaler=None)

Vorteiler setzen/abfragen, leer lassen, um den Vorteiler zu erhalten

Parameter

prescaler (int) – Vorteiler (0-65535)

Rückgabe

Vorteiler

Rückgabetyp

int

period(arr=None)

Periode setzen/abfragen, leer lassen, um die Periode zu erhalten

Parameter

arr (int) – Periode (0-65535)

Rückgabe

Periode

Rückgabetyp

int

pulse_width(pulse_width=None)

Pulsbreite setzen/abfragen, leer lassen, um die Pulsbreite zu erhalten

Parameter

pulse_width (float) – Pulsbreite (0-65535)

Rückgabe

Pulsbreite

Rückgabetyp

float

pulse_width_percent(pulse_width_percent=None)

Pulsbreitenprozentsatz setzen/abfragen, leer lassen, um den Pulsbreitenprozentsatz zu erhalten

Parameter

pulse_width_percent (float) – Pulsbreitenprozentsatz (0-100)

Rückgabe

Pulsbreitenprozentsatz

Rückgabetyp

float