ประการแรกลืมตัวต้านทาน 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 ภายในคุณจะต้องเชื่อมต่อปุ่มกับพื้นนั่นคือทั้งหมดที่ (ไมโครคอนโทรลเลอร์บางตัวยังมีพูลดาวน์ที่สามารถกำหนดค่าได้ แต่สิ่งเหล่านี้พบได้น้อยมาก)