คลาส ADC -- การแปลงสัญญาณอนาล็อกเป็นดิจิทัล

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

ตัวอย่างการใช้งาน:

from machine import ADC, Pin

adc = ADC(Pin("P6"))      # ADC channel on header pin P6 (PA5)
val = adc.read_u16()      # raw reading scaled to 0..65535

Constructors

class machine.ADC(id: int | str | Pin) ADC

สร้างออบเจ็กต์ ADC สำหรับแหล่งสัญญาณอนาล็อกที่ระบุโดย id รูปแบบที่รับได้คือ:

  • หมายเลขช่องเป็นจำนวนเต็ม (0 -- 18 บน STM32 ขึ้นอยู่กับพอร์ตในที่อื่น);

  • ออบเจ็กต์ Pin หรือสตริงพินของบอร์ดเช่น "P6" -- พินต้องรองรับอนาล็อก;

  • หนึ่งในค่าคงที่ช่องภายใน (CORE_TEMP, CORE_VREF, CORE_VBAT, VREF หรือ CORE_VDD) เพื่ออ่าน sensor ภายในของ MCU สำหรับ STM32 เท่านั้น

เมธอด

read_u16() int

สุ่มตัวอย่างช่องอนาล็อกหนึ่งครั้งและคืนค่าผลลัพธ์เป็นจำนวนเต็มไม่มีเครื่องหมาย 16 บิต (0 -- 65535) ADC ที่มีความละเอียดต่ำกว่าจะถูกจัดชิดซ้ายเข้าในช่วง 16 บิตเพื่อซ่อนความละเอียดดิบเฉพาะพอร์ต

read_uv() int

สุ่มตัวอย่างช่องอนาล็อกและคืนค่าผลลัพธ์ในหน่วยไมโครโวลต์ การอ่านค่าจะถูกปรับเทียบกับการอ้างอิงภายในเมื่อฮาร์ดแวร์รองรับ เฉพาะพอร์ต mimxrt เท่านั้น

ค่าคงที่

ค่าคงที่ด้านล่างนี้มีเฉพาะบนพอร์ต STM32 เท่านั้น ส่งค่าเหล่านี้เป็นอาร์กิวเมนต์ id เพื่อสร้าง ADC ที่อ่าน sensor อนาล็อกบนชิปหนึ่งตัว ผลลัพธ์ของ read_u16() คือการอ่านค่า 16 บิตดิบของช่อง สำหรับค่าที่ปรับเทียบแล้วให้ใช้ helper บน pyb.ADCAll

VREF: int

ช่องอ้างอิงแรงดันไฟฟ้าภายนอก

CORE_VREF: int

ช่องอ้างอิงแรงดันไฟฟ้า 1.21 V (ค่าปกติ) ภายใน (VREFINT)

CORE_TEMP: int

ช่อง sensor อุณหภูมิของชิปภายใน

CORE_VBAT: int

ช่องแรงดันแบตเตอรี่สำรอง (VBAT)

CORE_VDD: int

ช่อง supply rail ของ MCU (VDDA)