4318| 0
|
[项目] MicroPython 来做PWM变光 |
本帖最后由 gada888 于 2019-9-1 10:58 编辑 MicroPython是 Python 3语言 的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。 ----------------- PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,也是我个人最喜欢的python编程工具,它功能多,烧录快。很快就让人爱不释手。 ============ 再加上流行的esp8266 wifi模块,三者的结合一定能在不远的未来大放异彩。 ================ PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。 =========== RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一 ============= ESP8266主控模块 RGB模块 连线图 程序烧录成功 PyCharm不提供串口功能,因此用第三方工具putty进行串口查看,上图是putty设置 串口数据 [mw_shl_code=applescript,true]import machine import time import math def pulse(l, t): for i in range(20): print('dutycycle :',int(math.sin(i / 10 * math.pi) * 500 + 500), ( i / 10 * math.pi),math.sin(i / 10 * math.pi)) l.duty(int(math.sin(i/10 * math.pi) * 500 + 500)) time.sleep_ms(t) def main(): ledR = machine.PWM(machine.Pin(0)) ledG = machine.PWM(machine.Pin(4)) ledB = machine.PWM(machine.Pin(5)) for i in range(10): pulse(ledR, 500) pulse(ledG, 500) pulse(ledB, 500) if __name__ == '__main__': main()[/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed