Advertisement
pigg

Arduino-先後紀錄

Feb 6th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. void setup()
  2. {
  3.   pinMode(2, INPUT);   //X0
  4.   pinMode(3, INPUT);   //X1
  5.   pinMode(13, OUTPUT); //Y0
  6. }
  7.  
  8. void loop()
  9. {
  10.   int first_pin = 0;  //預設第一次觸發是0(null)
  11.   if (digitalRead(2) == 1) //如果2先通了
  12.   {
  13.     first_pin = 2;      //紀錄第一次觸發的是2
  14.   }
  15.   else if (digitalRead(3) == 1) //如果3先通了
  16.   {
  17.     first_pin = 3;    //紀錄第一次觸發的是3
  18.   }
  19.   while (first_pin != 0) //如果第一次處發不為0 (也就是2或3其中一個通了)
  20.   { //因為他是while 所以會一直等
  21.     if ((first_pin = 2) && (digitalRead(3) == 1)) //如果第一次觸發是2 然後3也觸發了
  22.     {
  23.       digitalWrite(13, HIGH);           //第一條件達成 13 ON
  24.       first_pin = 0;              //第一次觸發記錄歸零
  25.     }
  26.     else if ((first_pin = 3) && (digitalRead(2) == 1)) //如果第一次觸發是3 然後2也觸發了
  27.     {
  28.       digitalWrite(13, LOW);                 //第二個條件達成 13 OFF
  29.       first_pin = 0;                            //第一次觸發記錄歸零
  30.     }
  31.  
  32.   }                                             //離開等待第二次觸發開關的迴圈
  33.   while (digitalRead(2) || digitalRead(3) ) //如果要等兩個都OFF才能做下一次的話加上這句
  34.   {                                         //也就是2或3其中一個還通著,就要狂跑狂跑空迴圈(等待OFF)
  35.                                               //直到兩個都OFF才從頭開始
  36.  
  37.   }
  38.  
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement