查看: 145|回复: 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即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一
=============
NodeMCU pinout脚位.jpg
ESP8266主控模块
RGB (2).png
RGB模块
RGBtu.png
wiring.png
连线图
done.jpg
程序烧录成功
ptty.jpg
PyCharm不提供串口功能,因此用第三方工具putty进行串口查看,上图是putty设置
putty.png
串口数据


[AppleScript] 纯文本查看 复制代码
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()


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail