วงจร Pull-Up; Pull-Down
สถานะที่กำหนดให้ขาของอุปกรณ์อิเล็กทรอนิกส์ รอรับอินพุท (INPUT) ขาพอร์ตจะเป็น High Impedance คือมีความต้านทานสูงมากต่ออยู่ ทำให้ขาพอร์ตนั้น เสมือนถูกปล่อยลอย ค่าอินพุทที่อ่านกลับมาได้ มันไม่แน่นอน
ดังนั้นในงานขาพอร์ตอินพุท วงจรของสวิตซ์ จำเป็นมากที่ต้องมี Pull-up Resistor หรือ Pull-down Resistor เพื่อที่จะกำหนดสภาวะดิจิตอลที่แน่นอน ให้กับอุปกรณ์อิเล็กทรอนิกส์ (ไม่ได้ เฉพาะเจาะจงว่าเป็นแค่ 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-down Resistor โดยใน Pull-down จะมีลักษณะคล้ายกับ Pull-up Resistor แตกต่าง ตรงที่ สภาวะปกติของ Pull-down จะเป็นลอจิก “LOW” หรือ “0” เมื่อมีการกดปุ่ม กระแสไฟจะไหลเข้าขาอินพุท ทำให้ ลอจิกเป็น “HIGH” หรือ “1” ได้ การทำงานในลักษณะนี้ จะเรียกว่า Active High