ch3_4開關控制1閃爍2霹靂3眉開眼笑4關
老蔡mytsaii教學網頁,hi 你好,我是老蔡mytsaii
LED接9,8,7,6,5,4,3,2
開關接A0,A1,A2,A3
低位作動
//ch3_4
const int LED[8]={9,8,7,6,5,4,3,2};
const int PB[4]={A0,A1,A2,A3};
int onoff=1;
int off=1;
int on=0;
int sw=0;
int pp=0;
void setup()
{
for(int i=0;i<8;i++)
{
pinMode(LED[i],OUTPUT);
digitalWrite(LED[i],off);
}
for(int j=0;j<4;j++)
{
pinMode(PB[j],INPUT);
}
Serial.begin(9600);
}
void loop()
{
readPB();
while(pp==1)//閃爍LED
{
for(int i=0;i<8;i++)
{
digitalWrite(LED[i],onoff);
onoff=!onoff;
readPB();
}
delay(250);
onoff=!onoff;
readPB();
}
while(pp==2)//霹靂燈
{
for(int i=0;i<8;i++)
{
digitalWrite(LED[i],on);
delay(100);
readPB();
digitalWrite(LED[i],off);
}
for(int i=6;i>0;i--)
{
digitalWrite(LED[i],on);
delay(100);
readPB();
digitalWrite(LED[i],off);
}
}
while(pp==3)
{
for(int i=0;i<4;i++)
{
digitalWrite(LED[3-i],on);
digitalWrite(LED[4+i],on);
delay(100);
readPB();
}
for(int i=0;i<8;i++)
{
digitalWrite(LED[i],off);
readPB();
}
delay(100);
readPB();
delay(100);
readPB();
delay(100);
readPB();
delay(100);
readPB();
delay(100);
}
while(pp==0)
{
for(int i=0;i<8;i++)
{
digitalWrite(LED[i],off);
readPB();
}
}
}
void readPB(void)
{
int pb=digitalRead(PB[0]);
if(!pb)
{
pp=1;
}
else
{
pb=digitalRead(PB[1]);
if(!pb)
{
pp=2;
}
else
{
pb=digitalRead(PB[2]);
if(!pb)
{
pp=3;
}
else
{
pb=digitalRead(PB[3]);
if(!pb)
{
pp=0;
}
}
}
}
Serial.println(pp);
}
留言
張貼留言