Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
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%> | ||
+ | Попробуй ускорить или замедлить процесс изменения цвета с помощью изменения количества шагов и/или времени задержки на каждом шаге | ||
+ | </ |