Это старая версия документа!
Мы научились пользоваться аппаратным генератором ШИМ. Попробуем с помощью него сделать что-то более интересное, чем просто светящийся не в полную мощность светодиод. Например, попробуем изменять яркость светодиода во времени по определенному закону.
Рисунок 1. Электрическая принципиальная схема эксперимента
Рисунок 2. Монтажная схема эксперимента
Изменений в схеме, по сравнению с предыдущим экспериментом, нет
<file python Exp8.py[enable_line_numbers=«2», start_line_numbers_at=«1»]> from machine import Pin, PWM import time import math _init()
LedPin = 15
led = Pin(LedPin, Pin.OUT) pwmLed = PWM(led)
def pulse(l, t):
for i in range(20): l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500)) time.sleep_ms(t)
while 1:
pulse(pwmLed, 50)
<file>
В программе мы подключили дополнительную библиотеку math
она содержит математические функции, такие как синус.
Кроме того, мы впервые, столкнулись с подпрограммой. Подпрограммы нужны для того, чтобы можно было использовать один и тот же кусок кода несколько раз в программе не копируя каждый раз одно и то же. Гораздо удобнее вынести такой код в отдельную подпрограмму и вызывать ее всякий раз, когда она нужна.
Кроме того подпрограмма может принимать параметры и возвращать данные.