Electronic 101 — วงจร Pull up และ Pull down
ที่มาของวงจร INPUT_PULLUP
และ INPUT_PULLDOWN
โดยปกติแล้วหากเรานำ Switch, Button, I/O ต่างๆ มาต่อบนบอร์ด หรือ ไมโครคอนโทรลเลอร์โดยตรงเลย จะเกิดสัญญานไม่นิ่ง มีสัญญานรบกวน ในขณะที่ขา INPUT ยังลอยอยู่ หรือ ยังไม่มีลอจิก HIGH, LOW ส่งเข้ามา
การแก้ไข คือ ต้องนำ Resister (ตัวต้านทาน) มาคร่อม เพื่อทำวงจร PULL_UP หรือ PULL_DOWN
วงจร PULL_UP
นำตัวต้านทางต่อเข้ากับขา VCC เพื่อให้แรงดันมันคงที่ จะทำให้เกิดสถานะ HIGH หรือ ค่า 1 เสมอ และ ทันทีที่เรากดปุ่มลง SWITCH CLOSE แรงดันจะไหลลง GROUND เกิดสถานี ACTIVE_LOW หรือ ค่า 0
วงจร PULL_DOWN
นำตัวต้านทางจาก INPUT ของไมโครคอนโทรลเลอร์ ต่อเข้ากับ GROUND เพื่อให้แรงดันมันคงที่ จะทำให้เกิดสถานะ LOW หรือ ค่า 0 เสมอ และ ทันทีที่เรากดปุ่มลง SWITCH CLOSE แรงดันจะไหลลง มาขา INPUT เกิดสถานี ACTIVE_HIGH หรือ ค่า 1
Microcontroller
ตัวบอร์ด Arduino นั้นมีวงจร INPUT PULL_UP / PULL_DOWN มาให้เราอยู่แล้ว โดยที่เราไม่ต้องต่อตัวต้านทางเพิ่ม โดยให้ต่อวงจรแบบนี้
void setup() {
pinMode(2, INPUT_PULLUP);
}