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)