Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp12 [2020/05/16 18:20] – создано labuser29 | products:laboratory_iot:exp12 [2024/11/12 20:38] (текущий) – labuser30 | ||
|---|---|---|---|
| Строка 16: | Строка 16: | ||
| // | // | ||
| + | ==== Программный код эксперимента ==== | ||
| + | <file python Exp11.py[enable_line_numbers=" | ||
| + | from machine import Pin, PWM | ||
| + | import math | ||
| + | import time | ||
| + | _init() | ||
| + | |||
| + | LedPinB = 15 | ||
| + | LedPinG = 14 | ||
| + | LedPinR = 13 | ||
| + | |||
| + | ledB = Pin(LedPinB, | ||
| + | ledG = Pin(LedPinG, | ||
| + | ledR = Pin(LedPinR, | ||
| + | |||
| + | pwmB = PWM(ledB) | ||
| + | pwmG = PWM(ledG) | ||
| + | pwmR = PWM(ledR) | ||
| + | |||
| + | pwmB.freq(500) | ||
| + | pwmG.freq(500) | ||
| + | pwmR.freq(500) | ||
| + | |||
| + | while True: | ||
| + | for i in range(100): | ||
| + | pwmB.duty(int(math.sin(i / 50 * math.pi) * 500 + 500)) | ||
| + | time.sleep_ms(30) | ||
| + | </ | ||
| + | |||
| + | В этой программе мы разбили период синуса на 100 шагов и устанавливаем яркость синего цвета на каждом шаге в соответствии с формулой. После чего даем возможность светодиоду светить 30 миллисекунд с установленной яркостью прежде, | ||
| + | |||
| + | ==== Дополнительные задания ==== | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге | ||
| + | </ | ||