Electronic 101 — วงจร Pull up และ Pull down

Teerapong Singthong 👨🏻‍💻
iamgoangle
Published in
2 min readMay 28, 2019

ที่มาของวงจร 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);
}

--

--

Teerapong Singthong 👨🏻‍💻
iamgoangle

Engineering Manager, ex-Solution Engineering Lead at LINE | Tech | Team Building | System Design | Architecture | SWE | Large Scaling System