第五课--按钮PWM控制LED亮度实验/zh
Pkj(讨论 | 贡献)2014年7月18日 (五) 09:33的版本 (Created page with "{| style="width: 800px;" |- | ==目的== 通过按键调节led亮度逐渐亮与逐渐灭。 ==设备== * Microduino-CoreSTM32 Microduino-CoreSTM32是采用 STM32F103CBT6...")
目的通过按键调节led亮度逐渐亮与逐渐灭。 设备Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。
原理图按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。led控制口必须是使用PWM: 0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)。 程序int n=0;
void setup ()
{
pinMode(2, INPUT_PULLDOWN); //设置为内部下拉
pinMode(7,INPUT_PULLUP);//设置为内部上拉
pinMode(11,PWM);//该端口需要选择有0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)才能PWM控制
}
void loop()
{
int up =digitalRead(7); //读取2号口的状态
int down = digitalRead(2); //读取7号口的状态
if (up==HIGH)
{
n=n+5;
if (n>=255) {
n=255;
}
pwmWrite(11,n*16); //使用PWM控制11号口输出,变量n的取值范围是0- 65535
delay (300);
}
if (down==LOW)
{
n=n-5;
if (n<=0) {
n=0;
}
pwmWrite(11,n*16); //使用PWM控制11号口输出,变量n的取值范围是0-65535
delay (300);
}
}
结果一个按键使led亮度逐级递减,另一个按键使led亮度逐级递增。 视频 |