DoitCar 开发流程

PWM功能

  NodeMCU的D1~12管脚均具有PWM功能(除了D0)。 PWM频率可以设置范围1~1000Hz,占空比设置范围为0~1023(对应0%~100%)

  资料包中文件名为“pwm.lua”。

  将“init.lua”文件中“fileName.lua”修改为“pwm.lua”,“fileName.lc”修改为“pwm.lc”。修改完成后下载。 PWM功能程序代码:


1     print("PWM Function test")
2     pwm.setup(1,1000,1023);
3     pwm.start(1);
4     
5     local r=512;
6     local flag=1;
7     tmr.alarm(2,100,1,function()
8         pwm.setduty(1,r);
9         if flag==1 then 
10         r=r-50;        if r《0 then flag=0 r=0 end
11         else
12         r= r+50;    if r>1023 then flag=1 r=1023 end
13     end
14     end)

  程序第1行打印字符信息。

  第2行设置端口1的频率为1000Hz,占空比为1023.

  第3行启动PWM输出。

  第5~14行设置了定时器2,每隔100毫秒,对占空比r进行增加或者减小循环操作。通过变量flag进行记录。 下载程序,通过万用表或者示波器可以看到D1端口的电平输出变化。如果在D1端口和GND之间接入一个LED二极管。可以查看到二极管的亮度循环变化。

  Tips:LED的长管脚为阳极,接D1;短管脚为阴极,接GND。

  执行程序的Log如下:


1     NodeMCU 0.9.6 build 20150406  powered by Lua 5.1.4
2     
3     
4     ESP8266 Started
5     Compile File:pwm.lua
6     Remove File:pwm.lua
7     PWM Function test
8     >