- const 指令 不變的常數
- digitalRead() 讀取數位訊號
- boolean 佈林值
- != 如果不相等則成立
- ! 反相
- 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); //輸出
}
}