2016年4月1日 星期五

Arduino 練習 - LED 開關模式


  1. const 指令 不變的常數
  2. digitalRead() 讀取數位訊號
  3. boolean 佈林值
  4. != 如果不相等則成立
  5. ! 反相
  6. click 次數


原始碼

const byte LED = 13;    // LED接數位第 13 腳
const byte SW = 2;      // 開關接數位第 2 腳
boolean lastState = LOW; //記錄上次開關狀態,預設為低電位
boolean toggle = LOW; //輸出給 LED 的訊號,預設為低電位
byte click = 0;       //開關訊號的改變次數,預設為 0

//以上五行都是設定代數

void setup() {
  pinMode(LED, OUTPUT); // LED接腳設定為輸出
  pinMode(SW, INPUT);   // 開關接腳設定為輸入
  lastState = digitalRead(SW);  //讀取開關的初始值
}

//以上先設定與讀取剛開始的狀態,開關、LED、之間的關係。

void loop() {
  boolean b1 = digitalRead(SW); // 設定1個B1的代數讀取開關的數值
  if (b1 != lastState) {                      //如果和之前預設的低電位開關值不同
    delay(20);    // 就等待20毫秒
  boolean b2 = digitalRead(SW); // 再讀取一次開關的數值

  if (b1 == b2) {  //兩個相等則成立
    lastState = b1;
    click ++;            //增加訊號變畫次數
  }
}
   if (click == 2) {
    click = 0; //
    toggle = !toggle;  // 取相反值
    digitalWrite(LED, toggle);    //輸出
  }
}

沒有留言:

張貼留言