ตัวต้านทานแบบดึงลง


18

ในการค้นหาเพื่อทำความเข้าใจวิศวกรรมไฟฟ้าฉันได้พบกับบทช่วยสอนนี้:

http://www.ladyada.net/learn/arduino/lesson5.html

ฉันเข้าใจแผนภาพจนกระทั่งได้สวิตช์ ฉันไม่แน่ใจว่าสวิตช์ทำงานบนเขียงหั่นขนมหรือไดอะแกรมอย่างไร นี่เป็นสิ่งเฉพาะที่ฉันนึกถึง (นี่คือตัวต้านทานแบบดึงลง):

ป้อนคำอธิบายรูปภาพที่นี่

การดำเนินการคือ:

ป้อนคำอธิบายรูปภาพที่นี่

จากไดอะแกรมสิ่งที่ฉันคิดว่าเกิดขึ้นคือ: กำลังไปที่สวิตช์ถ้าปุ่มขึ้นแล้ววงจรจะไม่เสร็จ หากกดปุ่มปัจจุบันจะใช้เส้นทางที่มีความต้านทานต่อพิน 2 น้อยที่สุดเนื่องจากมีแรงดึงมากขึ้น (100ohm <10kohm)

วิธีที่อธิบายไว้ในบทช่วยสอนดูเหมือนเมื่อปุ่มขึ้นวงจรยังคงสมบูรณ์ แต่ตัวต้านทาน 10k ohm จะดึงพลังงานไปที่พื้น ฉันไม่ได้เป็นบวกอย่างไรหรือทำไมถ้าทั้ง 10k ohm และ 100ohm ได้รับกระแสเท่ากันกระแสจะถูกดึงลงสู่พื้นด้วยความต้านทานที่สูงกว่าที่เปิดให้ pin 2


3
ด้านข้าง: ลองนึกถึงวงจรในแง่ของแรงดันไฟฟ้าที่จะเกิดขึ้นในแต่ละจุดมากกว่าที่กระแสจะไหล สิ่งนี้ช่วยให้ฉันเข้าใจเมื่อฉันเรียน EE เป็นครั้งแรก
geometrikal

ฉันผิดหวังกับคุณภาพของคำตอบสำหรับคำถามนี้ ฉันขอแนะนำให้ดูวิดีโอนี้โดย AddOhms แทน . ฉันไม่เข้าใจแนวคิดนี้เพียงพอที่จะอธิบาย แต่ไม่มีคำตอบที่นี่ในขณะที่เขียนกำลังพูดถึงสิ่งที่ทำให้เกิดสถานะลอยตัวหรือวิธีดึงหรือผลักดันลงแก้ปัญหา
Evan Carroll

@EvanCarroll บนมืออื่น ๆ คำถามที่เวลาของการเขียนไม่ได้ถามเกี่ยวกับสิ่งเหล่านั้นที่คุณสนใจ.
มิทรี Grigoryev

คำตอบ:


29

ประการแรกลืมตัวต้านทาน 100 for ก่อน มันไม่จำเป็นสำหรับการทำงานของปุ่มมันเป็นเพียงการป้องกันในกรณีที่คุณทำผิดพลาดในการเขียนโปรแกรม

  • หากกดปุ่ม P2 จะถูกเชื่อมต่อโดยตรงกับ +5 V ดังนั้นจะเห็นว่าอยู่ในระดับสูงโดยมีค่าเป็น "1"
  • หากปุ่มปล่อย +5 V จะไม่นับอีกต่อไปมีเพียง 10 kΩระหว่างพอร์ตและกราวด์

พิน I / O ของไมโครคอนโทรลเลอร์เป็นอิมพีแดนซ์สูงเมื่อใช้เป็นอินพุตหมายความว่ากระแสรั่วไหลเพียงเล็กน้อยเท่านั้นซึ่งมักจะน้อยกว่า 1 µA ซึ่งจะเป็นค่าสูงสุดตามแผ่นข้อมูล ตกลงเรามาพูดกันว่ามันคือ 1 µA จากนั้นตามกฎของโอห์มสิ่งนี้จะทำให้แรงดันไฟฟ้าตกที่ 1 µAคูณ 10 kΩ = 10 mV ทั่วตัวต้านทาน ดังนั้นอินพุตจะอยู่ที่ 0.01 V นั่นคือระดับต่ำหรือ "0" ไมโครคอนโทรลเลอร์ 5 V ทั่วไปจะเห็นระดับใดก็ตามต่ำกว่า 1.5 V ต่ำ ×


ตอนนี้ตัวต้านทาน 100. หากคุณตั้งใจจะทำเอาต์พุตพินและตั้งค่าต่ำจากนั้นการกดปุ่มจะทำให้เกิดการลัดวงจร: ไมโครคอนโทรลเลอร์ตั้งค่า 0 V บนพินและสวิตช์ +5 V บนพินเดียวกัน ไมโครคอนโทรลเลอร์ไม่ชอบและ IC อาจเสียหาย ในกรณีเหล่านี้ตัวต้านทาน 100 should ควร จำกัด กระแสให้เหลือ 50 mA (ซึ่งยังคงมากเกินไปตัวต้านทาน 1 kΩจะดีกว่า)

เนื่องจากจะไม่มีกระแสไหลเข้าสู่ขาอินพุต (นอกเหนือจากการรั่วไหลต่ำ) จึงแทบไม่มีแรงดันตกคร่อมตัวต้านทาน

10 kΩเป็นค่าปกติสำหรับการดึงขึ้นหรือเลื่อนลง ค่าที่ต่ำกว่าจะทำให้คุณลดลงแม้แรงดันไฟฟ้าลดลง แต่ 10 mV หรือ 1 mV ไม่ได้สร้างความแตกต่างมากนัก แต่มีอย่างอื่น: ถ้ากดปุ่มมี 5 V ข้ามตัวต้านทานดังนั้นจะมีกระแส 5 V ​​/ 10 kΩ = 500 µA ต่ำพอที่จะไม่ทำให้เกิดปัญหาใด ๆ และคุณจะไม่กดปุ่มค้างไว้เป็นเวลานาน แต่คุณอาจแทนที่ปุ่มด้วยสวิตช์ซึ่งอาจถูกปิดเป็นเวลานาน ถ้าคุณเลือกที่จะดึงลงมา 1 kΩคุณจะมี 5 mA ผ่านตัวต้านทานตราบใดที่สวิตช์ปิดและนั่นก็เป็นของเสีย 10 kΩเป็นสิ่งที่คุ้มค่า


โปรดทราบว่าคุณสามารถพลิกกลับด้านนี้เพื่อรับตัวต้านทานแบบดึงขึ้นและเปลี่ยนเป็นกราวด์เมื่อกดปุ่ม

ป้อนคำอธิบายรูปภาพที่นี่

นี่จะเป็นการกลับด้านตรรกะของคุณ: การกดปุ่มจะให้ "0" แทน "1" แต่การทำงานจะเหมือนกัน: การกดปุ่มจะทำให้อินพุต 0 V หากคุณปล่อยปุ่มตัวต้านทานจะเชื่อมต่อ อินพุตไปที่ระดับ +5 V (ที่มีแรงดันไฟฟ้าตกเล็กน้อย)

นี่คือวิธีที่ปกติแล้วผู้ผลิตไมโครคอนโทรลเลอร์จะคำนึงถึงเรื่องนี้: ไมโครคอนโทรลเลอร์ส่วนใหญ่มีตัวต้านทานแบบดึงขึ้นภายในซึ่งคุณสามารถเปิดใช้งานหรือปิดใช้งานในซอฟต์แวร์ได้ หากคุณใช้ pull-up ภายในคุณจะต้องเชื่อมต่อปุ่มกับพื้นนั่นคือทั้งหมดที่ (ไมโครคอนโทรลเลอร์บางตัวยังมีพูลดาวน์ที่สามารถกำหนดค่าได้ แต่สิ่งเหล่านี้พบได้น้อยมาก)


ฉันไม่คิดว่ามันชัดเจนว่าวิธีการกดลงวิธีแก้ปัญหาลอยตัวรัฐจากคำตอบนี้
Evan Carroll

7

โปรดทราบว่าสวิตช์ไม่ใช่อุปกรณ์แฟนซีที่ใช้พลังงานและสร้างสัญญาณเอาท์พุท - แทนที่จะคิดว่ามันเป็นสายไฟที่คุณเพิ่งเพิ่มหรือเอาออกจากวงจรโดยการกดปุ่ม

หากสวิตช์ถูกตัดการเชื่อมต่อ (ไม่ได้กด) เส้นทางที่เป็นไปได้สำหรับกระแสไฟฟ้าเท่านั้นคือจากP2ตัวต้านทานทั้งสองไปยังกราวด์ ดังนั้นไมโครคอนโทรลเลอร์จะอ่านค่าต่ำ

หากสวิตช์เชื่อมต่ออยู่(กด):

  • ปัจจุบันเดินทางจากแหล่งจ่ายไฟผ่านสวิตช์

  • บางคนเดินทางปัจจุบันผ่านตัวต้านทาน 100 P2โอห์มไป ไมโครคอนโทรลเลอร์จะอ่าน HIGH

  • กระแสไฟฟ้าจำนวนเล็กน้อยจะไหลผ่านตัวต้านทาน 10 Kohm สู่พื้น นี่เป็นการสูญเสียพลังงานโดยทั่วไป

โปรดทราบว่าตัวต้านทาน 100 โอห์มเป็นเพียงมีเพื่อ จำกัด P2สูงสุดในปัจจุบันที่จะเข้าสู่ ปกติแล้วมันจะไม่รวมอยู่ในวงจรเช่นนี้เพราะP2อินพุตของไมโครคอนโทรลเลอร์นั้นมีความต้านทานสูงและจะไม่เกิดกระแสมาก อย่างไรก็ตามการรวมตัวต้านทาน 100 ohm มีประโยชน์ในกรณีที่ซอฟต์แวร์ของคุณมีข้อผิดพลาดหรือข้อผิดพลาดเชิงตรรกะที่ทำให้ลองใช้P2เป็นเอาต์พุตแทน ในกรณีนั้นถ้าไมโครคอนโทรลเลอร์พยายามขับP2ต่ำ แต่สวิตช์นั้นสั้นและเชื่อมต่อกับสูงคุณอาจสร้างความเสียหายให้กับไมโครคอนโทรลเลอร์ เพื่อความปลอดภัยตัวต้านทาน 100 โอห์มจะ จำกัด กระแสสูงสุดในกรณีนั้น


5

เมื่อคุณกดปุ่มคุณวางลอจิกระดับสูง (+5 V) บนอินพุต แต่ถ้าคุณไม่ใช้ตัวต้านทานและปล่อยปุ่มหมุดอินพุตก็จะลอยซึ่งใน HCMOS หมายความว่าระดับไม่ได้กำหนด นั่นคือสิ่งที่คุณไม่ต้องการดังนั้นคุณจึงดึงอินพุตลงสู่พื้นด้วยตัวต้านทาน จำเป็นต้องมีตัวต้านทานเนื่องจากการกดปุ่มไม่เช่นนั้นจะทำให้เกิดไฟฟ้าลัดวงจร

อินพุตเป็นอิมพีแดนซ์สูงซึ่งหมายความว่าจะไม่มีกระแสไฟฟ้าไหลผ่านเข้าไป กระแสไฟฟ้าศูนย์ผ่านตัวต้านทานหมายถึงแรงดันไฟฟ้าศูนย์ (กฎของโอห์ม) ดังนั้น 0 V ด้านใดด้านหนึ่งจะเป็น 0 V (หรือใกล้มาก) ที่ขาอินพุต

นี่เป็นวิธีหนึ่งในการเชื่อมต่อปุ่ม แต่คุณสามารถสลับตัวต้านทานและปุ่มได้เพื่อให้ตัวต้านทานไปที่ +5 V และปุ่มลงสู่พื้น ตรรกะนั้นจะถูก inversed: การกดปุ่มจะให้ระดับต่ำบนหมุดป้อนข้อมูล อย่างไรก็ตามมักจะทำเช่นนี้เพราะไมโครคอนโทรลเลอร์ส่วนใหญ่มีตัวต้านทานแบบดึงขึ้นเพื่อให้คุณต้องการปุ่มเพียงตัวต้านทานภายนอกจึงสามารถละเว้นได้ โปรดทราบว่าคุณอาจต้องเปิดใช้งานการดึงภายใน



ดูคำตอบนี้ด้วย


ฉันไม่คิดว่ามันชัดเจนว่าวิธีการกดลงวิธีแก้ปัญหาลอยตัวรัฐจากคำตอบนี้
Evan Carroll

4

ตัวต้านทาน 10kohm เรียกว่าตัวต้านทานแบบดึงลงเนื่องจากเมื่อโหนด "สีเขียว" (ในการเชื่อมต่อตัวต้านทาน 100ohm และ 10kohm) ไม่ได้เชื่อมต่อกับ + 5V โดยสวิตช์โหนดนั้นจะถูกดึงลงกราวด์ (สมมติว่ากระแสต่ำผ่านสาขานั้น ชัด) เมื่อปิดสวิตช์โหนดนั้นจะได้รับศักย์ + 5V

สิ่งนี้ถูกใช้เพื่อควบคุมอินพุตของลอจิกไอซี (AND เกตส์, หรือเกตส์, ฯลฯ ) เนื่องจากวงจรเหล่านี้จะทำงานผิดปกติหากไม่มีค่าที่กำหนดในอินพุต (0 หรือ 1 ค่า) หากคุณปล่อยอินพุตของโลจิคัลเกทที่ลอยอยู่เอาต์พุตนั้นไม่สามารถกำหนดได้อย่างน่าเชื่อถือดังนั้นจึงแนะนำให้ใช้อินพุตที่กำหนด (0 หรือ 1 อีกครั้ง) กับอินพุตของเกตเสมอ ในกรณีนี้ P2 จะเป็นอินพุตให้กับเกตตรรกะเฉพาะและเมื่อสวิตช์เปิดขึ้นจะมีค่าอินพุตเป็น 0 (GND) เมื่อปิดสวิตช์จะมีค่าอินพุต 1 (+ 5V)


2

ปัจจุบันใช้เส้นทางของความต้านทานน้อยที่สุด

ฉันไม่แน่ใจว่าความเข้าใจผิดที่เกิดขึ้นจริงนี้มาจากที่ใด แต่มันผิดจริงเพราะขัดแย้งกับกฎของโอห์มโดยตรง กระแสใช้เส้นทางที่เป็นไปได้ทั้งหมดแปรผกผันกับความต้านทาน หากคุณใช้ 5V กับตัวต้านทาน 10k 0.5mA จะไหลผ่านโดยไม่คำนึงถึงเส้นทางอื่น ๆ กี่เส้นทาง (ความต้านทานต่ำหรืออื่น ๆ ) ที่คุณให้

อนึ่ง, เส้นทางที่ผ่านตัวต้านทาน 100 โอห์มนั้นไม่จำเป็นต้องมี "ความต้านทานน้อยที่สุด" เนื่องจากตัวต้านทานไม่ได้เชื่อมต่อกับกราวด์ โดยทั่วไปแล้วคุณจะเชื่อมต่อตัวต้านทานนั้นเข้ากับอินพุต MCU ด้วยความต้านทาน> 10 MOhm ทำให้ตัวต้านทาน 10k เป็นเส้นทางที่มีความต้านทานน้อยที่สุด


1

เหตุผลที่ต้องการตัวต้านทานแบบดึงลงคือไมโครคอนโทรลเลอร์เป็นอุปกรณ์ CMOS และทำให้ขาอินพุตเป็นประตูของ MOSFET ในที่สุด

หากปุ่มกดของคุณควบคุมหลอดไฟหรือไฟ LED หรือรีเลย์คุณไม่จำเป็นต้องมีตัวต้านทานแบบดึงลงเพราะวงจรเปิดจะ "ปิด" เมื่อปุ่มถูกปล่อยหลอดไฟจะปิดเพราะไม่มีกระแสไฟฟ้าไหล

หากอุปกรณ์ของคุณเป็นส่วน TTL ที่แท้จริงเช่นชิปลอจิกซีรีส์ 7400 แบบดั้งเดิมคุณไม่จำเป็นต้องมีตัวต้านทานแบบ pulldown เพราะอินพุตเหล่านั้นจะเป็นทรานซิสเตอร์แบบไบโพลาร์และเมื่อปุ่มปล่อยออกมาไม่มีกระแสไหลผ่านทางแยก "ปิด"

ในทางตรงกันข้ามอินพุตของไมโครคอนโทรลเลอร์ของคุณเป็นเกท MOSFET ซึ่งทำหน้าที่เหมือนตัวเก็บประจุ เมื่อแรงดันเกตสูงพออินพุตจะ "เปิด" ที่เกิดขึ้นเมื่อคุณกดปุ่มและกระแสไหลผ่านตัวต้านทาน 100R เข้าไปในไมโครคอนโทรลเลอร์ เกตพุ่งขึ้น (อย่างรวดเร็ว) เหมือนตัวเก็บประจุและอินพุตกลายเป็น "เปิด" ตอนนี้จะเกิดอะไรขึ้นเมื่อคุณปล่อยปุ่ม ไม่มีกระแสเพิ่มเติม แต่นั่นหมายความว่าอะไรกับอินพุต? หากไม่มีตัวต้านทานแบบดึงลงค่าใช้จ่ายที่เกตจะไม่ไปไหน แรงดันไฟฟ้าจะอยู่ที่นั่นใกล้กับ 5V และอินพุตจะยังคงเป็น "เปิด" ตัวต้านทานแบบดึงลงท่อระบายน้ำชาร์จเกตเพื่อให้แรงดันตกต่ำกว่าระดับ "กับ" นั่นคือสิ่งที่คุณต้องการเพื่อให้แน่ใจว่าอินพุตดิจิตอลนั้นถูกพิจารณาว่าเป็น "ปิด"

คุณสามารถทดลองใช้สิ่งนี้ได้โดยการต่อสองปุ่มเข้ากับขาอินพุตของคุณ ผูกหนึ่งถึง 5V และหนึ่งกับพื้น เมื่อคุณกดปุ่ม 5V อินพุตจะเปิดขึ้น เมื่อคุณปล่อยมันจะยังคงอยู่จนกว่าคุณจะกดอันที่เชื่อมต่อกับ GND


ใน TTL เป็นชุมทางตัวปล่อยสัญญาณฐานซึ่งจะไม่ทำ แต่ไม่ใช่ในแบบที่คุณคิด: อินพุตคือตัวส่งสัญญาณของทรานซิสเตอร์ NPN ของอินพุทและทรานซิสเตอร์จะดำเนินการถ้าอินพุตต่ำ การลอยตัวนั้นสูงเหมือนกัน
stevenvh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.