開關大略分成兩種:
一種是常態開關,另一種為選擇性開關。
常態開關又分為常開與常閉兩種型式,如下表示:
 常開開關常閉開關
符號
實體範例           

選擇開關有多種型式,從單選、2 選 1、...至 N 選 1,都是選擇開關,如下表示:
  單選開關 2選1選擇開關 3選1選擇開關
符號
實體範例 這是3 個單選開關並排

開關線路注意事項:
  1. 下面這種 smd 常開按鍵開關,外型是一個正方形(圖ㄧ),通常不會有人去記開關的方向
  2. 性(圖二),使用者大部分都需要經過三用電表的量測,才能分辨開關的方向。
    如果使用單邊接點當開關,如圖三是正確的,但是圖四就不正確了,為了避免搞不清楚
    的情況下接錯,最好是如圖五斜角接線,無論是接什麼方向都可以正常運作。

     
    圖ㄧ 圖二 圖三


     
    圖四 圖五

  3. 避免浮接,以防雜訊。如下接法應避免。
  4. 高態接收模式
    (正邏輯概念)
    低態接收模式
    (反邏輯概念)
    (使用率最高)
    雙點亮模式
    (點矩陣掃描基礎)
    實體圖


    電路圖

    實體圖


    電路圖

    實體圖


    電路圖


開關 接法大略有三種如下圖:
高態點亮模式
(正邏輯概念)
低態點亮模式
(反邏輯概念)
(使用率最高)
雙點亮模式
(點矩陣掃描基礎)
雙點亮模式
(點矩陣掃描基礎)
實體圖


電路圖

實體圖


電路圖

實體圖


電路圖

實體圖


電路圖

控制程序

void setup() {
     pinMode(7, INPUT);
}

void loop() {
     int x;
     x = digitalRead(7);
     //若有按下按鈕 x 為 1
     //否則為 0
}


控制程序

void setup() {
     pinMode(4, INPUT);
}

void loop() {
     int x;
     x = digitalRead(4);
     //若有按下按鈕 x 為 0
     //否則為 1
}


控制程序

void setup() {
     pinMode(5, OUTPUT);
     pinMode(7, INPUT);
}

void loop() {
     int x;
     digitalWrite(5, HIGH);
     x = digitalRead(7);
     //若有按下按鈕 x 為 1
     //否則為 0
     digitalWrite(5, LOW);
     x = digitalRead(7);
     //不管有沒有按下
     //按鈕 x 都是讀到 0
}



控制程序

void setup() {
     pinMode(5, OUTPUT);
     pinMode(7, INPUT);
}

void loop() {
     int x;
     digitalWrite(5, LOW);
     x = digitalRead(7);
     //若有按下按鈕 x 為 0
     //否則為 1
     digitalWrite(5, HIGH);
     x = digitalRead(7);
     //不管有沒有按下
     //按鈕 x 都是讀到 1
}