上拉下拉的開關
一個普通的開關,在電子世界裏卻分為上拉 (Pull-Up) 和下拉 (Pull-Down) 設計。
上拉的意思是指單板機的接口由一個電阻接到+5V, 另一方則通過一個開關接地,閉合後下拉到接地。這樣,開關敝開 (Open) 時接口的狀態為HIGH,開關閉合 (Close) 時接口狀態變為LOW。其實上拉是指那枚電阻 (Pull-up resistor)。但一般我們會用它形容整個開關電路設計,稱為上拉開關設計 (Pull-up
Button)。
這個實驗是實作上拉,下拉及Arduino內部下拉的線路示範。
上圖籃色部份 (S1) 是上拉設計,綠色部份 (S2) 是下拉設計,橙色部份
(S3) 是內部上拉設計,其實即是無需電阻,由 Audrino
內部自行安排一個合適的電阻。
以下是實驗的 Arduino 編程及視頻示範:
/** Pull-Up and Pull-Down Buttons
* Kevin Lee 08 Aug 2018
*
*/
#define PUB 2 // Pull-up button
#define PDB 3 // Pull-down button
#define IUB 4 // Internal Pull-up button
#define PUL 5 // Pull-up LED
#define PDL 6 // Pull-down LED
#define IUL 7 // Internal Pull-up LED
void setup() {
pinMode(PUB, INPUT);
pinMode(PDB, INPUT);
pinMode(IUB, INPUT_PULLUP);
pinMode(PUL, OUTPUT);
pinMode(PDL, OUTPUT);
pinMode(IUL, OUTPUT);
// Make Sure all LED are OFF at start
digitalWrite(PUL, LOW);
digitalWrite(PDL, LOW);
digitalWrite(IUL, LOW);
}
void loop() {
// Press Pull-up button gives LOW
if (digitalRead(PUB) == LOW)
digitalWrite(PUL, HIGH); // Lit LED
else
digitalWrite(PUL, LOW); // Turn Off LED
// Press Pull-down button gives HIGH
if (digitalRead(PDB) == HIGH)
digitalWrite(PDL, HIGH);
else
digitalWrite(PDL, LOW);
// Internal Pull-up = Pull-up button, except the resistor is not needed
if (digitalRead(IUB) == LOW)
digitalWrite(IUL, HIGH);
else
digitalWrite(IUL, LOW);
}

留言
張貼留言