请问如何使用多个开关控制同一组二极管?
本帖最后由 戒指环 于 2012-6-30 00:20 编辑现有二极管*6只(并排插在一起,左边第一个默认为1号), 开关*6
期望:当按下开关1时,6只二极管从1号到6号依次亮起,延时500ms后在按6号到1号依次灭掉。
当按下开关2时,6只二极管从6号到1号依次亮起,延时500ms后在按1号到6号依次灭掉。
请问如下图的链接方法对吗?
这里是代码
void setup ()
{
pinMode(13,INPUT);
pinMode(12,INPUT);
for (int i=2; i<=7; i++)
{
pinMode(i,OUTPUT);
}
}
void loop()
{
int n =digitalRead(13);
int m =digitalRead(12);
if (n==HIGH)
{
digitalWrite(2,HIGH);
delay(300);
digitalWrite(3,HIGH);
delay(300);
digitalWrite(4,HIGH);
delay(300);
digitalWrite(5,HIGH);
delay(300);
digitalWrite(6,HIGH);
delay(300);
digitalWrite(7,HIGH);
delay(300);
digitalWrite(7,LOW);
delay(300);
digitalWrite(6,LOW);
delay(300);
digitalWrite(5,LOW);
delay(300);
digitalWrite(4,LOW);
delay(300);
digitalWrite(3,LOW);
delay(300);
digitalWrite(2,LOW);
delay(500);
if (m==HIGH)
{
digitalWrite(7,HIGH);
delay(300);
digitalWrite(6,HIGH);
delay(300);
digitalWrite(5,HIGH);
delay(300);
digitalWrite(4,HIGH);
delay(300);
digitalWrite(3,HIGH);
delay(300);
digitalWrite(2,HIGH);
delay(300);
digitalWrite(2,LOW);
delay(300);
digitalWrite(3,LOW);
delay(300);
digitalWrite(4,LOW);
delay(300);
digitalWrite(5,LOW);
delay(300);
digitalWrite(6,LOW);
delay(300);
digitalWrite(7,LOW);
delay(500);
}
}
}
经过高人指点,原来是程序中出的问题,我把判断第二个开关输入的IF放在判断一个开关输入的IF里了,所以导致单独按第二个开关时没有反应。 开关的接法有问题
页:
[1]