class 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

Конструкторы

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

Создаёт объект ADC для аналогового источника, идентифицируемого по id. Допустимы следующие формы:

  • целочисленный номер канала (018 на STM32, зависит от порта в остальных случаях);

  • объект Pin или строка вывода платы, такая как "P6" — вывод должен поддерживать аналоговый режим;

  • одна из констант внутренних каналов (CORE_TEMP, CORE_VREF, CORE_VBAT, VREF или CORE_VDD) для чтения внутренних датчиков MCU. Только для STM32.

Методы

read_u16() int

Дискретизирует аналоговый канал один раз и возвращает результат в виде беззнакового 16-битного целого числа (065535). АЦП с меньшим разрешением выравниваются по левому краю в 16-битном диапазоне, поэтому зависящее от порта сырое разрешение скрыто.

read_uv() int

Дискретизирует аналоговый канал и возвращает результат в микровольтах. Показание калибруется по внутреннему опорному источнику там, где это поддерживается аппаратно. Только для порта mimxrt.

Константы

Приведённые ниже константы доступны только на порту STM32; передавайте их в качестве аргумента id для создания ADC, который читает один из аналоговых датчиков кристалла. Результатом read_u16() является сырое 16-битное показание канала; для калиброванных значений используйте вспомогательные методы pyb.ADCAll.

VREF: int

Канал внешнего опорного напряжения.

CORE_VREF: int

Канал внутреннего опорного напряжения 1.21 В (номинал) (VREFINT).

CORE_TEMP: int

Канал внутреннего датчика температуры кристалла.

CORE_VBAT: int

Канал напряжения резервной батареи (VBAT).

CORE_VDD: int

Канал шины питания MCU (VDDA).