通过PWM控制LED灯的变化
/** 通过一个按键按下的次数,显示LED不同程度变亮;
* 另一个按键改变LED的亮度减弱
*/
int ledPin = 11;
int keyUp = 7;
int keyDown = 8;
void setup(){
pinMode(ledPin,OUTPUT);
pinMode(keyUp,INPUT);
pinMode(keyDown,INPUT);
}
void loop(){
int up=digitalRead(keyUp);
int down=digitalRead(keyDown);
int i = 0;
if(up==HIGH){
i +=5;
if(i >= 255){
i =255;
}
analogWrite(ledPin,i);
delay(100);
}
if(down==HIGH){
i-=5;
if(i<=0){
i = 0;
}
analogWrite(ledPin,i);
delay(100);
}
}
这段代码的目的就是注释讲的,但是,结果我的灯一直在闪,按按键也没用。求大神帮我看下这段代码有什么问题,求解啊 本帖最后由 275891381 于 2016-9-1 08:00 编辑
去掉两个delay(100);试试
亮度用pwm控制。亮灭时间用pwm开启关闭控制 275891381 发表于 2016-9-1 07:59 static/image/common/back.gif
去掉两个delay(100);试试
亮度用pwm控制。亮灭时间用pwm开启关闭控制
去掉了,还是在闪,只是闪的频率高了。感觉我的按键没起到一点作用 Reiko 发表于 2016-9-1 08:29 static/image/common/back.gif
去掉了,还是在闪,只是闪的频率高了。感觉我的按键没起到一点作用
给你改了下,肯定可以
int ledPin = 13;
int keyUp = 7;
int keyDown = 8;
int i = 0;
void setup(){
pinMode(ledPin,OUTPUT);
pinMode(keyUp,INPUT);
pinMode(keyDown,INPUT);
// Serial.begin(9600);
}
void loop(){
if(digitalRead(keyUp)==HIGH)
{
delay(200);
if(digitalRead(keyUp)==HIGH)
{
i +=5;
if(i >= 255)
i =255;
}
}
if(digitalRead(keyDown)==HIGH)
{
delay(200);
if(digitalRead(keyDown)==HIGH)
{
i-=5;
if(i<=0)
i = 0;
}
}
analogWrite(ledPin,i);
// Serial.println(i);
} 275891381 发表于 2016-9-1 09:49 static/image/common/back.gif
给你改了下,肯定可以
int ledPin = 13;
int keyUp = 7;
我用的是UNO R3板子,13管脚好像不是可输出PWM的哎,设置这个脚PWM输出可以的吗?
我试了下,现在灯不亮了,按键也还是没用 本帖最后由 275891381 于 2016-9-1 13:41 编辑
Reiko 发表于 2016-9-1 10:37 static/image/common/back.gif
我用的是UNO R3板子,13管脚好像不是可输出PWM的哎,设置这个脚PWM输出可以的吗?
我试了下,现在灯不亮 ...
改成可以pwm的引脚就可以了,不行的话就得看看的怎么接线的了 275891381 发表于 2016-9-1 13:38 static/image/common/back.gif
改成可以pwm的引脚就可以了,不行的话就得看看的怎么接线的了
E:\Arduino\code\photo.jpg 我拍了接线图,但是不会发图片。我描述下吧:
两个按键各接一10K电阻,一脚接到Arduino的7、8脚,另一脚都接到电源5V。绿光LED负极接一个220欧姆电阻接到地,另一脚接到Arduino的11脚。就这样了 看你按键的接法,没有上拉/下拉电阻? Reiko 发表于 2016-9-1 18:09 static/image/common/back.gif
我拍了接线图,但是不会发图片。我描述下吧:
两个按键各接一10K电阻,一脚接到Arduino的7、8脚,另 ...
就是按键接法不太好,要么上拉要么下拉,用意是让按键要么低电平,要么高电平,不要悬空;要么就会出现悬空时电平不确定 Reiko 发表于 2016-9-1 18:09 static/image/common/back.gif
我拍了接线图,但是不会发图片。我描述下吧:
两个按键各接一10K电阻,一脚接到Arduino的7、8脚,另 ...
搞不懂为什么按键串电阻接5V,不是应该接地吗? 新手路过~ a120 发表于 2016-9-1 23:46 static/image/common/back.gif
搞不懂为什么按键串电阻接5V,不是应该接地吗? 新手路过~
接地的话,按下去,那个接口的状态就是0 Reiko 发表于 2016-9-2 08:46 static/image/common/back.gif
接地的话,按下去,那个接口的状态就是0
喔~不是很懂,还得慢慢学习!!
页:
[1]