ทำความเข้าใจเกี่ยวกับตัวต้านทานแบบดึงขึ้น
ก่อนที่จะดำดิ่งลงไปในรายละเอียดเฉพาะของพินแบบดึงขึ้น ESP32 สิ่งสำคัญคือต้องเข้าใจบทบาทของตัวต้านทานแบบดึงขึ้นในวงจร เมื่อขาอินพุตดิจิทัลถูกปล่อยให้ลอยอยู่ (ไม่ได้เชื่อมต่อกับแหล่งจ่ายแรงดันไฟฟ้าใดๆ) จะสามารถอ่านค่าแบบสุ่มได้ ทำให้ยากต่อการกำหนดระดับลอจิก
เพื่อหลีกเลี่ยงปัญหานี้ ตัวต้านทานแบบดึงขึ้นจะเชื่อมต่อระหว่างขาอินพุตและแหล่งจ่ายแรงดัน (โดยทั่วไปคือ Vcc) เพื่อให้แน่ใจว่าอินพุตอ่านสถานะสูง (ลอจิก 1) ตามค่าเริ่มต้น เมื่ออินพุตเชื่อมต่อกับสัญญาณต่ำ (ตรรกะ 0) ตัวต้านทานจะดึงอินพุตลงมาที่กราวด์ ทำให้อินพุตอ่านค่าสถานะต่ำได้
พินแบบดึงขึ้นในตัวบน ESP32
ไมโครคอนโทรลเลอร์ ESP32 มีพินอินพุต/เอาต์พุตอเนกประสงค์ (GPIO) 34 พิน ซึ่งสามารถกำหนดค่าเป็นพินดิจิทัลหรืออนาล็อกก็ได้ ในบรรดาพิน 34 พินเหล่านี้ พินบางตัวมีตัวต้านทานแบบดึงขึ้นในตัวที่สามารถเปิดใช้งานได้ด้วยซอฟต์แวร์
ตารางต่อไปนี้แสดงพินบน ESP32 ที่มีตัวต้านทานแบบดึงขึ้นในตัว:
หมายเลขพิน | ชื่อพิน | ตัวต้านทานแบบดึงขึ้นในตัว |
0 | GPIO0 | ใช่ |
2 | GPIO2 | ใช่ |
4 | GPIO4 | ใช่ |
5 | GPIO5 | ใช่ |
12 | GPIO12 | ใช่ |
13 | GPIO13 | ใช่ |
14 | GPIO14 | ใช่ |
สิบห้า | GPIO15 | ใช่ |
25 | GPIO25 | ใช่ |
26 | GPIO26 | ใช่ |
27 | GPIO27 | ใช่ |
32 | GPIO32 | ใช่ |
33 | GPIO33 | ใช่ |
3. 4 | GPIO34 | เลขที่ |
35 | GPIO35 | เลขที่ |
36 | GPIO36 | เลขที่ |
39 | GPIO39 | เลขที่ |
อย่างที่คุณเห็น พินดิจิทัลส่วนใหญ่บน ESP32 มีตัวต้านทานแบบดึงขึ้นในตัว อย่างไรก็ตาม ไม่ใช่ทุกพินที่มีคุณสมบัตินี้ พิน 34, 35, 36 และ 39 ไม่มีตัวต้านทานแบบดึงขึ้นในตัว
บันทึก: ใน ESP32 ตัวต้านทานแบบดึงขึ้นและดึงลงในตัวมีเฉพาะในพินที่รองรับทั้งอินพุตและเอาต์พุต GPIO 34-39 ซึ่งจำกัดเฉพาะอินพุตเท่านั้น ไม่มีตัวต้านทานเหล่านี้ในตัว
ตรวจสอบความเรียบร้อย การอ้างอิง Pinout ของ ESP32 .
การเปิดใช้งานตัวต้านทานแบบดึงขึ้นบน ESP32
หากต้องการเปิดใช้งานตัวต้านทานแบบดึงขึ้นบนพิน ESP32 คุณสามารถใช้ gpio_set_pull_mode() ฟังก์ชันที่จัดทำโดยเฟรมเวิร์ก ESP-IDF
ฟังก์ชันนี้รับสองอาร์กิวเมนต์:
- หมายเลขพิน GPIO
- โหมดดึงขึ้น
โหมดดึงขึ้นสามารถเป็นได้ทั้ง GPIO_PULLUP_ENABLE หรือ GPIO_PULLUP_DISABLE . นี่คือตัวอย่างรหัสที่เปิดใช้งานตัวต้านทานแบบดึงขึ้นบน GPIO2:
#include 'ไดรเวอร์/gpio.h'เป็นโมฆะ enable_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
โหมดพิน ( 5 , INPUT_PULLUP ) ;
สิ่งสำคัญคือต้องทราบว่าการเปิดใช้งานตัวต้านทานแบบดึงขึ้นบนพินจะส่งผลต่อพฤติกรรมของมันเมื่อใช้พินเป็นเอาต์พุต ในกรณีนี้ ตัวต้านทานแบบดึงขึ้นจะทำหน้าที่เป็นแหล่งกระแสไฟอ่อนและอาจส่งผลต่อระดับแรงดันเอาต์พุต
นอกจากนี้ เรายังสามารถเปิดใช้งานการดึงข้อมูลภายในบน ESP32 โดยใช้ โหมดพิน () ฟังก์ชันอาร์ดุยโน่
โหมดพิน ( 5 , INPUT_PULLUP ) ;รหัสด้านบนจะเปิดใช้งานตัวต้านทานแบบดึงขึ้นภายในที่พิน 5 . ในทำนองเดียวกัน คุณสามารถเปิดใช้งานตัวต้านทานแบบดึงลงภายในได้โดยการระบุโหมด INPUT_PULLDOWN .
บทสรุป
ตัวต้านทานแบบดึงขึ้นเป็นส่วนประกอบที่สำคัญในวงจรดิจิทัล และไมโครคอนโทรลเลอร์ ESP32 มีตัวต้านทานแบบดึงขึ้นในตัวบนพินดิจิทัลส่วนใหญ่ การเปิดใช้งานตัวต้านทานเหล่านี้สามารถรับประกันระดับลอจิกที่เสถียรและหลีกเลี่ยงปัญหาอินพุตแบบลอยตัว อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าไม่ใช่ทุกพินบน ESP32 ที่มีตัวต้านทานแบบดึงขึ้นในตัว ดังนั้น สิ่งสำคัญคือต้องตรวจสอบ พินเอาท์ ESP32 หรือแผ่นข้อมูลก่อนการออกแบบวงจร นอกจากนี้ การเปิดใช้งานตัวต้านทานแบบดึงขึ้นอาจส่งผลต่อลักษณะการทำงานของพินเมื่อใช้เป็นเอาต์พุต