Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Mac

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ใครเคยต่อปุ่ม (Button) กับ Arduino ต้องเจอแผนภาพแบบนี้แน่ๆ:

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ตอนแรกสับสน: "ทำไมต้องมีตัวต้านทาน? ผมแค่อยากรู้ว่ากดปุ่มหรือไม่กด"

เกิดอะไรขึ้นในวงจร?

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ปุ่ม (Switch) มีสายจดจbeyเป็นรูป "H" แต่ตรงกลางไม่ต่อกัน จนกว่าจะกดปุ่ม

เราอยากให้ GPIO ของ Arduino อ่าน 0 เมื่อไม่ได้กด และ 1 เมื่อกด

ลองต่อตรงๆ (Diagram 2)

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ต่อ VCC (5V/3.3V) เข้าด้านซ้าย กดปุ่ม -> GPIO อ่าน 1 ได้ แต่...

ปัญหาเมื่อไม่ได้กด (Diagram 3)

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

เมื่อไม่กด GPIO ไม่ได้ต่อกับอะไรเลย สถานะ "ลอย" (Floating) อาจอ่านเป็น 0 หรือ 1 แบบสุ่ม จากสัญญาณรบกวนแม่เหล็กไฟฟ้าในอากาศ ไม่ไช่ใจได้ว่าเป็น 0 จริง

ลองต่อ Ground ตรงๆ

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ตอนไม่กด -> GPIO ต่อ Ground -> รับประกัน 0 ได้ แต่...

กดปุ่ม = Short Circuit!

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

VCC ต่อ Ground ตรงๆ ผ่านปุ่ม -> กระแสไหลมากเกินไป -> อุปกรณ์เสีย!

ที่มาของตัวต้านทาน (Resistor)

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ตัวต้านทานจำกัดกระแส ไฟฟ้าเลือกทางที่ต้านทานน้อยที่สุด ตอนกดปุ่ม: กระแสไหลทางปุ่ม (ต้านทาน ~0) GPIO อ่าน 1 ตอนไม่กด: กระแสไหลทางตัวต้านทานไป Ground GPIO อ่าน 0

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

Pull-Up Resistor (แบบกลับกัน)

ไม่กด -> GPIO ต่อ VCC ผ่านตัวต้านทาน -> อ่าน 1 (Pull Up)

กด -> กระแสไหลไป Ground ทางปุ่ม -> GPIO ไม่ได้กระแส -> อ่าน 0

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

Pull-Down & Pull-Up Resistors: อธิบายง่ายๆ สำหรับพื้นฐานฮาร์ดแวร์

ทำไมเขียนบทความนี้?

ผมเข้าทำงานที่ Losant ปี 2016 โดยไม่มีประสบการณ์ฮาร์ดแวร์ ชุดเริ่มต้นทุกชุดให้ปุ่มมาแต่ไม่ได้อธิบายแนวคิดนี้ หวังว่าบทความนี้จะช่วยให้ "หลอดไฟในหัว" สว่างขึ้น!