[Arduino] 6*LED

int led[7] = {0,1,2,3,4,5,6}; //set pin number
void setup() //set pin led[1]~led[6] as OUTPUT
{
    for(int i = 1;i <= 6;i++)
        pinMode(led[i], OUTPUT);
}
void s1()
{
    for(int i = 1;i <= 6;i++) //由1~6每200毫秒點亮一顆LED
    {
        digitalWrite(led[i], HIGH); 
        delay(200);
    }
    for(int i = 6;i >= 1;i--) //由6~1每200毫秒熄滅一顆LED
     { 
        digitalWrite(led[i], LOW); 
        delay(200); 
    }
}
void s2()
{
   for(int i = 3;i >= 1;i--) //由中間往外每200毫秒點亮一組LED
    {
        digitalWrite(led[i], HIGH);
        digitalWrite(led[7-i], HIGH);
        delay(200);
    }
    for(int i = 1;i <= 3;i++) //由外往內每200毫秒熄滅一組LED
    {
        digitalWrite(led[i], LOW);
        digitalWrite(led[7-i], LOW);
        delay(200);
    }
}
void s3()
{
    for(int i = 1;i <= 3;i++) //由外往內 間隔200毫秒閃爍一組LED
    {
        digitalWrite(led[i], HIGH);
        digitalWrite(led[7-i], HIGH);
        delay(200);
        digitalWrite(led[i], LOW);
        digitalWrite(led[7-i], LOW);
        delay(200);
    }
    for(int i = 2;i >= 1;i--) //由內往外 間隔200毫秒閃爍一組LED
    {
        digitalWrite(led[i], HIGH);
        digitalWrite(led[7-i], HIGH);
        delay(200);
        digitalWrite(led[i], LOW);
        digitalWrite(led[7-i], LOW);
        delay(200);
    }
}
void flash()
{
    for(int j = 1;j <= 2;j++) //執行兩次閃爍
    {
        for(int i = 1;i <= 6;i++) // 1~6全亮
        {
            digitalWrite(led[i],HIGH);
        }
        delay(200);
        for(int i = 1;i <= 6;i++) //1~6全暗
        {
            digitalWrite(led[i],LOW);
        }
        delay(200);
    }
}
void loop() {
    s1();
    flash();
    s2();
    flash();
    s3();
    flash();
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *