โดย ทารอน ฟอกซ์เวิร์ธ
หากคุณเคยต่อปุ่มเข้ากับ Arduino คุณจะเจอแผนภาพนี้:

ในตอนแรกสิ่งนี้อาจทำให้เกิดความสับสน ความคิดแรกของฉัน:“ทำไมฉันจึงต้องมีตัวต้านทาน ฉันแค่อยากให้ตัวต้านทานบอกฉันว่ามีการกดปุ่มอยู่หรือไม่”
หลังจากอ่านมามากมาย ไม่มีคำอธิบายง่ายๆ
เกิดอะไรขึ้นที่นี่
แผนภาพ 1 ป>
ในปุ่มนั้น หรือที่รู้จักกันในชื่อสวิตช์ สายไฟจะมีรูปทรงเป็นรูปตัว "H" แต่ตรงกลางไม่ได้เชื่อมต่อ — หรือวงจรไม่ได้เชื่อมต่อ — จนกว่าเราจะกดปุ่ม
ในความเป็นจริง เราต้องการอ่าน 04 จาก Arduino เมื่อไม่มีอะไรเชื่อมต่อและ 13 เมื่อกดปุ่ม
บน Arduino สิ่งนี้เรียกว่า General Purpose Input Output (GPIO)
ดังนั้น เราสามารถทำสิ่งนี้ได้:
แผนภาพ 2 ป>
เราเชื่อมต่อขั้วบวก (5v, 3.3V หรือ VCC) ไปที่ด้านซ้ายของวงจร
ตอนนี้เมื่อกดปุ่ม GPIO จะอ่าน 21 และทุกอย่างก็ดี
แผนภาพ 3 ป>
ไม่ มาดูแผนภาพที่ 2 อีกครั้ง:
แผนภาพ 2 ป>
เราต้องการ 35 เมื่อไม่มีอะไรเชื่อมต่อกัน แต่คุณจะรับประกันเรื่องนี้ได้อย่างไร? ขณะนี้ยังไม่มีวิธีรับประกันว่า GPIO จะเป็น 43 .
นอกจากนี้ยังมีความถี่แม่เหล็กไฟฟ้าในอากาศที่สามารถดึง GPIO ของคุณไปที่ 51 หรือ 64รหัส> . มันอาจจะผันผวนระหว่างทั้งสองก็ได้! ด้วยวิธีนี้ เราไม่สามารถยืนยันได้ว่ามันคือ 76 (ฉันแย่มากกับการเล่นสำนวน) ซึ่งเรียกอีกอย่างว่าตรรกะ 82 .
วิธีหนึ่งในการรับตรรกะ 92 คือการผูกพินเข้ากับกราวด์:

เย้! ตอนนี้มันเป็นศูนย์ตรรกะที่รับประกันแล้ว ขณะที่กดปุ่ม ค่าจะเป็น 100 ตอนนี้ ใช่ไหม?
ไม่

คุณเพิ่งสร้างไฟฟ้าลัดวงจร ?
นี่คือจุดที่ตัวต้านทานเข้ามา เพื่อหลีกเลี่ยงการลัดวงจร เราจำเป็นต้องเพิ่มความต้านทานให้กับวงจรของเรา ตัวต้านทานคอยควบคุมสิ่งต่าง ๆ ไว้

ไฟฟ้าจะเข้าสู่เส้นทางที่มีความต้านทานน้อยที่สุด GPIO ของคุณจะลงทะเบียน 117 เมื่อกดปุ่ม เช่นนั้น:


วู้ฮู! ตอนนี้เรากำลังดำเนินการบางอย่างอยู่
ทีนี้มาดูสิ่งที่ตรงกันข้าม:ตัวต้านทานแบบดึงขึ้น เป็นสิ่งเดียวกันแต่กลับกัน ขณะที่ไม่ได้กดปุ่ม GPIO จะลงทะเบียน 122 . เมื่อคุณกดปุ่ม GPIO จะเป็น 137 .
ในขณะที่ไม่ได้กด เรามี GPIO ที่เชื่อมต่อกับค่าบวก ( VCC ) ดังนั้นกระแสใด ๆ ที่มีอยู่จะถูกดึงขึ้นเพื่อให้ GPIO ลงทะเบียนโลจิคัล 149 .

สิ่งสำคัญที่ควรทราบคือไฟฟ้ามักจะต้องการลงสู่พื้นดินเสมอ ดังนั้นเมื่อเรากดปุ่ม กระแสที่ไหลจะไหลลงกราวด์ ดังนั้นกระแสใด ๆ ที่จะไปที่ GPIO จะไปด้วยโดยปล่อยให้ GPIO อยู่ที่โลจิคัล 152 .

? จุดจบ
ทำไมฉันถึงเขียนสิ่งนี้
ฉันเข้าร่วม Losant ในเดือนกันยายนปี 2016 โดยไม่มีประสบการณ์ด้านฮาร์ดแวร์ ชุดเริ่มต้นฮาร์ดแวร์ทุกชุดจะมีปุ่มโดยไม่มีคำอธิบายเกี่ยวกับแนวคิดนี้ หวังว่านี่จะช่วยให้หลอดไฟของคุณดับลงเช่นกัน ?
นี่เป็นเพียงรอยขีดข่วนบนพื้นผิว หากคุณต้องการเจาะลึกยิ่งขึ้น โปรดดูแหล่งข้อมูลเหล่านี้:
ตัวต้านทานแบบดึงขึ้น - learn.sparkfun.com
_อีกสิ่งหนึ่งที่ควรชี้ให้เห็นก็คือ ยิ่งความต้านทานสำหรับการดึงขึ้นมากขึ้น พินก็จะตอบสนองช้าลง…_learn.sparkfun.com
ฉันรักข้อเสนอแนะ ดังนั้นโปรดแจ้งให้เราทราบหากสามารถปรับปรุงได้ หากฉันพลาดบอลไปโดยสิ้นเชิง โปรดบอกฉันด้วย! ฉันอยากจะทำให้คนอื่นดีขึ้น
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น