跑馬燈電路實作

跑馬燈效果實驗

//設置控制Led 的數位IO 腳

int Led1 = 1;

int Led2 = 2;

int Led3 = 3;

int Led4 = 4;

int Led5 = 5;

int Led6 = 6;

//led 燈花樣顯示樣式1 副程式

void style_1(void)

{

unsigned char j;

for(j=1;j<=6;j++) //每隔200ms 依次點亮1~6 引腳相連的led 燈

{

digitalWrite(j,HIGH); //點亮j 引腳相連的led 燈

delay(200); //延時200ms

}

for(j=6;j>=1;j--) //每隔200ms 依次熄滅6~1 引腳相連的led 燈

{

digitalWrite(j,LOW); //熄滅j 引腳相連的led 燈

delay(200); //延時200ms

}

}

//燈閃爍副程式

void flash(void)

{

unsigned char j,k;

for(k=0;k<=1;k++) //閃爍兩次

{

for(j=1;j<=6;j++) //點亮1~6 引腳相連的led 燈

{

digitalWrite(j,HIGH); //點亮與j 引腳相連的led 燈

delay(200); //延時200ms

}

for(j=1;j<=6;j++) //熄滅1~6 引腳相連的led 燈

{

digitalWrite(j,LOW); //熄滅與j 引腳相連的led 燈

delay(200); //延時200ms

}

}

}

//led 燈花樣顯示樣式2 副程式

void style_2(void)

{

unsigned char j,k;

k=1; //設置k 的初值為1

for(j=3;j>=1;j--)

{

digitalWrite(j,HIGH); //點亮燈

digitalWrite(j+k,HIGH); //點亮燈

delay(400); //延時400ms

k +=2; //k 值加2

}

k=5; //設置k 值為5

for(j=1;j<=3;j++)

{

digitalWrite(j,LOW); //熄滅燈

digitalWrite(j+k,LOW); //熄滅燈

delay(400); //延時400ms

k -=2; //k 值減2

}

}

//led 燈花樣顯示樣式3 副程式

void style_3(void)

{

unsigned char j,k; //led 燈花樣顯示樣式3 副程式

k=5; //設置k 值為5

for(j=1;j<=3;j++)

{

digitalWrite(j,HIGH); //點亮燈

digitalWrite(j+k,HIGH); //點亮燈

delay(400); //延時400ms

digitalWrite(j,LOW); //熄滅燈

digitalWrite(j+k,LOW); //熄滅燈

k -=2; //k 值減2

}

k=3; //設置k 值為3

for(j=2;j>=1;j--)

{

digitalWrite(j,HIGH); //點亮燈

digitalWrite(j+k,HIGH); //點亮燈

delay(400); //延時400ms

digitalWrite(j,LOW); //熄滅燈

digitalWrite(j+k,LOW); //熄滅燈

k +=2; //k 值加2

}

}

void setup()

{

unsigned char i;

for(i=1;i<=6;i++){ //依次設置1~6 個數位引腳為輸出模式

pinMode(i,OUTPUT); //設置第i 個引腳為輸出模式

}

}

void loop()

{

style_1(); //樣式1

flash(); //閃爍

style_2(); //樣式2

flash(); //閃爍

style_3(); //樣式3

flash(); //閃爍

}