戒指环 发表于 2012-6-30 00:13:30

请问如何使用多个开关控制同一组二极管?

本帖最后由 戒指环 于 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);
    }
    }
}

戒指环 发表于 2012-6-30 09:07:46

经过高人指点,原来是程序中出的问题,我把判断第二个开关输入的IF放在判断一个开关输入的IF里了,所以导致单独按第二个开关时没有反应。

davidce 发表于 2012-6-30 18:10:09

开关的接法有问题
页: [1]
查看完整版本: 请问如何使用多个开关控制同一组二极管?