“第五课--按钮PWM控制LED亮度实验/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 通过按键调节led亮度逐渐亮与逐渐灭。 ==设备== * Microduino-CoreSTM32 Microduino-CoreSTM32是采用 STM32F103CBT6...") |
|||
(未显示1个用户的3个中间版本) | |||
第1行: | 第1行: | ||
+ | {{Language|Maple Lesson 05 - The button PWM controls LED brightness}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
第17行: | 第18行: | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
− | [[File:lesson3All1.jpg|600px|center|thumb]] | + | [[File:maple-lesson3All1.jpg|600px|center|thumb]] |
==原理图== | ==原理图== | ||
[[File: maple-lesson5-pwm schematic.jpg|600px|center|thumb]] | [[File: maple-lesson5-pwm schematic.jpg|600px|center|thumb]] | ||
按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。led控制口必须是使用PWM: | 按键接法分别采用内部上拉和外部下拉,接数字口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)。 | + | '''0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)。''' |
[[File: maple-lesson5-Setup1.jpg|600px|center|thumb]] | [[File: maple-lesson5-Setup1.jpg|600px|center|thumb]] | ||
第28行: | 第29行: | ||
==程序== | ==程序== | ||
<source lang="cpp"> | <source lang="cpp"> | ||
+ | int led=4; | ||
+ | int butt0n_1=2; | ||
+ | int butt0n_2=3; | ||
int n=0; | int n=0; | ||
+ | |||
void setup () | void setup () | ||
{ | { | ||
− | pinMode( | + | pinMode(butt0n_1, INPUT_PULLDOWN); //设置为内部下拉 |
− | pinMode( | + | pinMode(butt0n_2,INPUT_PULLUP);//设置为内部上拉 |
− | pinMode( | + | pinMode(led,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() | void loop() | ||
{ | { | ||
− | int up =digitalRead( | + | int up =digitalRead(butt0n_1); //读取2号口的状态 |
− | int down = digitalRead( | + | int down = digitalRead(butt0n_2); //读取7号口的状态 |
if (up==HIGH) | if (up==HIGH) | ||
{ | { | ||
第46行: | 第51行: | ||
n=255; | n=255; | ||
} | } | ||
− | |||
− | |||
} | } | ||
if (down==LOW) | if (down==LOW) | ||
第55行: | 第58行: | ||
n=0; | n=0; | ||
} | } | ||
− | |||
− | |||
} | } | ||
+ | pwmWrite(led,n*160); //使用PWM控制11号口输出,变量n的取值范围是0- 65535 | ||
+ | delay (300); | ||
} | } | ||
+ | |||
+ | |||
</source> | </source> | ||
2014年11月5日 (三) 07:25的最新版本
Language | English |
---|
目的通过按键调节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 led=4;
int butt0n_1=2;
int butt0n_2=3;
int n=0;
void setup ()
{
pinMode(butt0n_1, INPUT_PULLDOWN); //设置为内部下拉
pinMode(butt0n_2,INPUT_PULLUP);//设置为内部上拉
pinMode(led,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(butt0n_1); //读取2号口的状态
int down = digitalRead(butt0n_2); //读取7号口的状态
if (up==HIGH)
{
n=n+5;
if (n>=255) {
n=255;
}
}
if (down==LOW)
{
n=n-5;
if (n<=0) {
n=0;
}
}
pwmWrite(led,n*160); //使用PWM控制11号口输出,变量n的取值范围是0- 65535
delay (300);
}
结果一个按键使led亮度逐级递减,另一个按键使led亮度逐级递增。 视频 |