ch3_4開關控制1閃爍2霹靂3眉開眼笑4關

老蔡mytsaii教學網頁,hi 你好,我是老蔡mytsaii 

ch3_4開關控制1閃爍2霹靂3眉開眼笑4關

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);

}


留言

這個網誌中的熱門文章

量測例外練習01(計算+量測)