Мазмұнға өту

PWM

ИЕМ (PWM) — импульстік ендік модуляциясы. Бұл күрделі естілуі мүмкін, бірақ бұл жай ғана жарықдиодтар, дыбыстағыштар және сервоқозғалтқыштар сияқты құрылғыларға жіберілетін қуатты басқарудың ақылды тәсілі.

ИЕМ екі негізгі параметрден тұрады:

  • Жиілік (Frequency)
  • Толтыру коэффициенті (Duty Cycle)

Негізгі қолдану


PWM(slot) -> Pin

PWM объектісін жасау үшін PWM(slot) шақырыңыз.

Аргументтер:

  • slot (string | int | tuple) — слот белгісі ("A", "B", "C", "D", "E", "F", "G", "H"), пин порты (0, 2 және т.б.), кортеж (0, Pin.OUT)

Қайтарады: slot үшін сандық шығыс Pin қайтарады.

from pibody import PWM

pwm = PWM("A")

.freq(value | None) -> None | int

Аргументтер:

  • value (int) — ИЕМ жиілігін орнататын опционалды параметр. Пайдалы диапазон: [20, 5000]. Әдепкі: 0

Егер value бос болса, әдіс бұрын пайдаланылған жиілікті қайтарады.

pwm.freq(100)

print(pwm.freq())  # 100

.duty(value | None) -> None | float

Аргументтер:

  • value (float) — ИЕМ толтыру коэффициентін орнататын опционалды параметр. [0, 1.0] аралығындағы мәнді қабылдайды. Әдепкі: 0

Егер value бос болса, әдіс бұрын пайдаланылған толтыру коэффициентін қайтарады.

pwm.duty(0.5)

print(pwm.duty())  # 0.5

.duty_u16(value | None) -> None | int

ИЕМ толтыру коэффициентін 16-биттік мән ретінде алу немесе орнату.

Аргументтер:

  • value (int) — ИЕМ толтыру коэффициентін орнататын опционалды параметр. [0, 65535] аралығындағы мәнді қабылдайды. Әдепкі: 32768

Егер value бос болса, әдіс бұрын пайдаланылған толтыру коэффициентін қайтарады.

pwm.duty_u16(32768)

print(pwm.duty_u16())  # 32768

Мысалдар

Жарықты өзгерту үшін .freq() және .duty() функцияларын пайдаланып, LED-ті ИЕМ көмегімен басқаруға болады.

LED модулін "A" слотына қосып, төмендегі кодты орындаңыз. ИЕМ-нің LED жұмысына қалай әсер ететінін көресіз.

from pibody import PWM

pwm = PWM("A")  # LED-ті "A" слотына қосыңыз

pwm.freq(100)
pwm.duty(0.5)

Басқа функциялар


.deinit()

ИЕМ шығысын өшіріп, пинді босатады.

pwm.deinit()

.duty_ns(value | None) -> None | int

ИЕМ толтыру коэффициентін наносекундтарда алу немесе орнату. Наносекундтағы мән 0 мен жиіліктің жалпы периоды арасында болуы керек. Мысалы, 1000 Гц жиілігін орнатсаңыз (период = 1,000,000 нс), .duty_ns() [0, 1000000] аралығында болуы керек.

Аргументтер:

  • value (int) — наносекундтардағы толтыру коэффициентін орнататын опционалды параметр

Егер value бос болса, әдіс бұрын пайдаланылған толтыру коэффициентін қайтарады.

data = pwm.duty_ns()
print(data)