“第四课--按钮PWM控制LED亮度/zh”的版本间的差异
(→设备) |
958265313@qq.com(讨论 | 贡献) (→程序) |
||
(未显示2个用户的5个中间版本) | |||
第9行: | 第9行: | ||
==设备== | ==设备== | ||
− | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
− | *'''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
第16行: | 第16行: | ||
**LED发光二极管 一个 | **LED发光二极管 一个 | ||
**220欧姆电阻 一个 | **220欧姆电阻 一个 | ||
− | **按键 | + | **按键 两个 |
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
第26行: | 第26行: | ||
按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。PWM控制口必须是使用数字口D3、D5、D6、D9、D10、D11。 | 按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。PWM控制口必须是使用数字口D3、D5、D6、D9、D10、D11。 | ||
− | [[File: | + | [[File:lesson3Setup1.jpg|600px|center|thumb]] |
==程序== | ==程序== | ||
第35行: | 第35行: | ||
pinMode(2,INPUT); | pinMode(2,INPUT); | ||
pinMode(7,INPUT_PULLUP);//设置为内部上拉 | pinMode(7,INPUT_PULLUP);//设置为内部上拉 | ||
− | pinMode(11,OUTPUT);// | + | pinMode(11,OUTPUT);//该端口需要选择有3、5、6、9、10、11数字口才能PWM控制 |
} | } | ||
第68行: | 第68行: | ||
==结果== | ==结果== | ||
左边按键使led亮度逐级递减,右边按键使led亮度逐级递增。 | 左边按键使led亮度逐级递减,右边按键使led亮度逐级递增。 | ||
− | [[File: | + | [[File:lesson3Result1.jpg|600px|center|thumb]] |
==视频== | ==视频== |
2018年1月8日 (一) 07:44的最新版本
Language | English |
---|
目的以往led只有两个状态亮与灭,现在通过按键实现led亮度逐渐亮与逐渐灭。即PWM脉冲宽度调制,调节数字信号(“0”,“1”)在一个周期时间内各占的时间即占空比,高电平“1”时间越长,也就越亮。 关于PWM详细参考: http://www.geek-workshop.com/thread-125-1-1.html 设备
原理图按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。PWM控制口必须是使用数字口D3、D5、D6、D9、D10、D11。 程序int n=0;
void setup ()
{
pinMode(2,INPUT);
pinMode(7,INPUT_PULLUP);//设置为内部上拉
pinMode(11,OUTPUT);//该端口需要选择有3、5、6、9、10、11数字口才能PWM控制
}
void loop()
{
int up =digitalRead(2); //读取2号口的状态
int down = digitalRead(7); //读取7号口的状态
if (up==HIGH)
{
n=n+5;
if (n>=255) {
n=255;
} //限定最大值为255
analogWrite(11,n); //使用PWM控制11号口输出,变量n的取值范围是0-255
delay (300);
}
if (down==LOW)
{
n=n-5;
if (n<=0) {
n=0;
}
analogWrite(11,n); //使用PWM控制11号口输出,变量n的取值范围是0-255
delay (300);
}
}
analogWrite()用法
结果左边按键使led亮度逐级递减,右边按键使led亮度逐级递增。 视频 |