> micro:bit
查看: 3368|回复: 0

[入门教程] 玩转micro:bit-用BXY玩PWM输出

[复制链接]
本帖最后由 rzyzzxw 于 2018-5-16 20:59 编辑

截图201802262135521133.png
都说平昌冬奥又冷又黑。
可是北京8分钟却是精彩绝仑,中国用AI展示了大国形象。
截图201802262140544033.png


今天继续学习,PWM输出。
参考:http://docs.dfrobot.com.cn/bxy/inoutput.html

我们可以通过很快地切换电压的高低来控制LED的亮度或电动机的速度。这种技术称为脉宽调制(PWM)。
笔记:
read_digital()
如果引脚为高电平则返回1,如果引脚为低电平则返回0。
write_digital(value)
如果value为1,将引脚设置为高电平;如果为0,就将其设置为低电平。

read_analog()

读取引脚的电压,并将其作为0(0V)和1023(意为3.3V)之间的整数返回。

write_analog(value)
将value作为PWM值输出。value可以是0(0%占空比)与1023(100%占空比)之间的数。
脉冲宽度调制PWM
板子上的引脚输出模拟信号的方式与音频扬声器不同,它不能够调整引脚上的电压,这些引脚只支持3.3V输出,或者被拉低为0V。但是我们仍然可以通过很快地切换电压的高低来控制LED的亮度或电动机的速度。这种技术称为脉宽调制(PWM),这就是下面的write_analog()方法。
以上您可以看到三种不同PWM信号的图表。这些都具有相同的周期,但它们具有不同的占空比(高电平占整个周期的比例)。
第一个由write_analog(511)生成,因为它的占空比为50%,高低电平各占一半,其结果和1.65V差不多。
第二个由write_analog(255)生成,占空比为25%。它的效果如同引脚上输出0.825V。
第三个由write_analog(767)生成,信号占空比为75%。它的电压是第二个信号的三倍,相当于在引脚上输出2.475V。
这适用于诸如电机本身具有很大惯性的设备或LED,但是在生成声波时效果不会很好。
这个板子本身只能产生方波的声音,这听起来就像是以前的电脑游戏(主要是因为这些游戏的声音就是方波产生的)。


目标:
用按钮实现LED灯亮度的分档调节。
例如,第一下亮,第二下更亮,第三下最亮,第四下灭。
[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
item_Num=0
while True:
  if pin1.read_digital()==1:
    sleep(200)
    item_Num=item_Num+1
    if item_Num==1:
      pin0.write_analog(60)
    elif item_Num==2:
      pin0.write_analog(500)
    elif item_Num==3:
      pin0.write_analog(1023)
    elif item_Num==4:
      pin0.write_analog(0)
      item_Num=0


有上面笔记的内容,程序不难理解。









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

本版积分规则

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

硬件清单

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

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

mail