การต่อสวิตซ์แบบ Pull-up และ Pull-down

Pull up, Pull down คืออะไร 

        คือการต่อ ตัวต้านทานที่ขา input ของไมโครคอนโทลเลอร์ 

เหตุผลที่ต้องต่อ 

        ถ้าเราต่อสวิตส์หรือ เซนเซอร์ต่างๆ เข้ากับไมโครคอนโทรเลอร์ตรงๆ อย่างเดียว อาจจะทำให้เกิดสัญญาณรบกวนได้ในกรณีที่ input ถูกลอยขาไว้ ไม่ได้จ่าย logic high หรือ low เช่น การต่อสวิตส์ ถ้าเรากดสวิตส์ จะทำให้มี logic high จ่ายให้กับ input ของไมโครคอนโทลเลอร์ แต่ถ้าเราปล่อยสวิตส์ ทำให้ ขา input ถูกลอยไว้ ไม่ได้ต่อลงกราวหรือ logic low ดังนั้นจึงต้องต่อ Pull up, Pull down เพื่อให้แน่ใจว่าเป็น logic high หรือ low เสมอ ถึงแม้ว่าจะไม่มี input ป้อนเข้ามา
** ไม่ได้ใช้เฉพาะเจาะจงใน arduino อย่างเดียว ทุกอุปกรณ์อิเล็กทรอนิกส์เลยที่บอกว่าขาอินพุทเป็น High Impedance         ตามปกติ ตัวต้านทานที่ใช้ในวงจร Pull-up หรือ Pull-down จะใช้ประมาณ 5k Ohm -20k Ohm

Pull-up Resistor 

        คือการนำตัวต้านทานต่อเข้ากับ Vcc (+5V) เพื่อให้แรงดันอยู่คงที่ ทำให้อยู่ในสถานะ “HIGH” หรือ “1” ตลอดเวลา และเมื่อกดสวิตซ์ กระแสไฟฟ้าจะไหลลง Ground ทันที ซึ่งทำให้สถานะเป็นลอจิก “LOW” หรือ “0” และ การทำงานลักษณะนี้ จะเรียกว่า Active Low เพราะว่าจะเขียนโปรแกรมที่ทำงาน เมื่อลอจิกเป็น “LOW” ส่วนใหญ่ เราจะเห็นต่อสวิตซ์ นิยมใช้แบบ Pull-up มากกว่า 

 
ภาพการต่อแบบ Pull-up Resistor

Pull-down Resistor

        คือการต่อ ตัวต้านทาน จาก input ของไมโครคอนโทลเลอร์ เข้ากับ กราว โดยใน Pull-down จะมีลักษณะคล้ายกับ Pull-up Resistor แตกต่าง ตรงที่ สภาวะปกติของ Pull-down จะเป็นลอจิก “LOW” หรือ “0” เมื่อมีการกดปุ่ม กระแสไฟจะไหลเข้าขาอินพุท ทำให้ ลอจิกเป็น “HIGH” หรือ “1” ได้ การทำงานในลักษณะนี้ จะเรียกว่า Active High

 
ภาพการต่อแบบ Pull-down Resistor

ที่มา :  

– Pull up, Pull down คืออะไร?   

http://www.thitiblog.com/blog/696  

– วงจร Pull-up ,Pull-down    

http://www.ayarafun.com/2011/04/arduino-tutorial-3-digital-input-and-debounce/