代码有问题!减一档的时候灯反而会再亮一下再逐渐变暗
int n=0;
void setup ()
{
pinMode(4,INPUT);
pinMode(6,OUTPUT); //该端口需要选择有#号标识的数字口
pinMode(10,INPUT);
}
void loop()
{
int up =digitalRead(4); //读取4号口的状态
int down = digitalRead(10); //读取10号口的状态
if (up==HIGH) //判断4号口目前是否是高电平
{
n=n+5; //每次累加值为5
analogWrite(6,n); //使用PWM控制6号口输出,变量n的取值范围是0-255
if (n>=255) {
n=255;
} //限定最大值为255
delay (300);
}
if (down==HIGH) //减少亮度
{
n=n-5;
analogWrite(6,n);
if (n<=0) {
n=0;
}
delay (300);
}
}
如果两个按钮一起按下去会怎样?
if (up==HIGH)
if (down==HIGH)
两个if在同一时间都会进入么?
paperen 发表于 2013-3-2 00:06 static/image/common/back.gif
如果两个按钮一起按下去会怎样?两个if在同一时间都会进入么?
程序从上往下执行。。
迷你强 发表于 2013-3-2 18:29 static/image/common/back.gif
程序从上往下执行。。
那就是两个if都执行了
本帖最后由 <一一巛 于 2013-3-5 10:14 编辑
交作业:loveliness:
int n=0;
void setup() {
pinMode(11, OUTPUT);
pinMode(6, INPUT);
}
void loop() {
if(digitalRead(6)==HIGH) {
analogWrite(11, n);
delay(200);
n+=5;
if (n>=80) {n=0;}
}
else
digitalWrite(11, 0);
}
本帖最后由 stongage9 于 2013-3-30 15:32 编辑
强哥,劳驾您给指点下吧。我是新手,但是特别想学这个。我按照线路图检查了好几遍,都没有发现问题出在哪。我这个命令行是复制粘贴的,所以应该不存在编程错误。但是接上线后就变成按钮起不到任何作用,而是从重置开始就灯自己在慢慢变亮。无论左右按键均无法控制。附上我的图。如能得到指点,万分感激~!:'(http://h.hiphotos.baidu.com/album/s%3D1600%3Bq%3D90/sign=deb9664c6f061d957946333e4bc431a0/ca1349540923dd5421f6b81cd009b3de9c824838.jpg
if (up==HIGH) //判断4号口目前是否是高电平22.{23. analogWrite(6,n); //使用PWM控制6号口输出,变量n的取值范围是0-25524. n=n+5; //每次累加值为525. if (n>=255) {26. n=255;27. } //限定最大值为255 28. delay (300);29.}
我想请问下这个语句是怎么实现灯的亮度增加的
213菜鸟 发表于 2013-4-1 18:11 static/image/common/back.gif
if (up==HIGH) //判断4号口目前是否是高电平22.{23. analogWrite(6,n); ...
pwm 调整led的开关频率来控制亮度
强哥,我看完你的代码觉得实际效果应该是假设你按下了up 没有按下 down 这个时候会300毫秒增加一次亮度直到255,如果你按下了down而没有按下up应该会每300毫秒减少一个亮度直到0,如果同时都按下了,应该是会有5个级别的轻微的频率为600毫秒的亮度闪烁,而不是你视频的按一下量一下按一下量一下啊啊啊?难道我对loop的原理理解有误??谢谢强哥。
迷你强 发表于 2013-4-2 09:18 static/image/common/back.gif
pwm 调整led的开关频率来控制亮度
谢谢你~~~学习了~~~
强哥。我想问下arduino有没有类似于子程序的东西?我想把这个程序变成按一下是第一种亮灯模式(子程序一)按两下是子程序二这样的,以此类推~然后另外一边是反过来的~
拜托强哥了。
213菜鸟 发表于 2013-4-16 23:42 static/image/common/back.gif
强哥。我想问下arduino有没有类似于子程序的东西?我想把这个程序变成按一下是第一种亮灯模式(子程序一)按 ...
有的。。。
为什么感觉有点不对啊,我按一下UP按钮,必须得按三下DOWN才能把灯关掉,看程序N增减的幅度是一样的啊,十分不解,而且感觉按DOWN时,等实际是变亮了一级然后才逐渐熄灭的,求解答???????????
接上问:我将UP设为n=n+5,DOWN设为n=n-10,按一下UP按钮,必须得按两下DOWN才能把灯关掉。按理说N初始值为0 ,增减的幅度应相同啊,不知为何出现这种情况。