查看“第四课--呼吸灯实验/zh”的源代码
←
第四课--呼吸灯实验/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 前面的实验led只有两个状态亮与灭,本实验将实现一个led渐明渐暗,即达到呼吸灯的效果。 ==设备== *[[ Microduino-CoreSTM32]] Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。*其他硬件设备 [[File:maple-lesson4-All.jpg|600px|center|thumb]] ==原理== 实验采用PWM脉冲宽度调制,调节数字信号(“0”,“1”)在一个周期时间内各占的时间即占空比,高电平“1”时间越长,也就越亮。 关于PWM详细参考: http://www.geek-workshop.com/thread-125-1-1.html 但是实验不是每个I/O口都能实现PWM调节,我们需要用到PWM口才行。 Microduino-CoreSTM32的硬件PWM:'''0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)''',我们直接选择板子上的led灯来看看效果,因为它接到了D4。玩家也可以换换其他的led口来实验。 ==程序== <source lang="cpp"> int ledPin=4;// 0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)是pwm输出口 void setup() { pinMode(ledPin, PWM); } void loop(){ for(int fadeValue=0;fadeValue<=65535;fadeValue+=500) //循环语句,控制PWM亮度的增加,控制fadeValue的变化大小可以控制亮度级别 { pwmWrite(ledPin,fadeValue); //将亮度级别写入给led delay(30); //当前亮度级别维持的时间,单位毫秒 } for(int fadeValue=65535;fadeValue>=0;fadeValue-=500) //循环语句,控制PWM亮度减小,控制fadeValue的变化大小可以控制亮度级别 { pwmWrite(ledPin,fadeValue); //将亮度级别写入给led delay(30); //当前亮度级别维持的时间,单位毫秒 } delay(400); } </source> 程序采用循环语句,较方便的自动控制led的亮度。 语法: *'''pwmWrite(ledPin,fadeValue);'''写一个PWM波形到指定的管脚,该引脚将输出一个稳定的方波,你可以调节函数里面的值来改变占空比,从而实现PWM调制。 **ledPin :PWM输出引脚 **fadeValue:占空比设置。 还要注意一点的是:'''需要把输出定义成PWM模式。即“ pinMode(ledPin, PWM);”''' ==调试== *打开Maple IDE编译器,将程序拷贝到编译器中,选择好板卡(Microduino-CoreSTM32 to Flash)。点击下载按钮或者使用快捷键(Ctrl+U)即可完成下载。 *程序下载后,可看到led灯柔和从灭到亮再到灭,依次循环。玩家可以更改相关参数来实验。 ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第四课--呼吸灯实验/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息