klasa ADC – konwersja analogowo-cyfrowa

Klasa ADC opakowuje pojedynczy kanał przetwornika analogowo-cyfrowego, który próbkuje napięcie na pinie (lub jednym z wbudowanych kanałów analogowych) i zwraca jego zdyskretyzowaną wartość.

Przykład użycia:

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

Konstruktory

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

Tworzy obiekt ADC dla źródła analogowego identyfikowanego przez id. Akceptowane formy to:

  • liczba całkowita oznaczająca numer kanału (018 na STM32, zależna od portu w innych przypadkach);

  • obiekt Pin lub ciąg znaków pinu płytki, taki jak "P6" – pin musi obsługiwać sygnał analogowy;

  • jedna ze stałych kanałów wewnętrznych (CORE_TEMP, CORE_VREF, CORE_VBAT, VREF lub CORE_VDD) do odczytu wewnętrznych sensorów MCU. Tylko STM32.

Metody

read_u16() int

Próbkuje kanał analogowy jednokrotnie i zwraca wynik jako 16-bitową liczbę całkowitą bez znaku (065535). Przetworniki ADC o niższej rozdzielczości są wyrównywane do lewej w zakresie 16-bitowym, więc surowa rozdzielczość zależna od portu jest ukryta.

read_uv() int

Próbkuje kanał analogowy i zwraca wynik w mikrowoltach. Odczyt jest kalibrowany względem wewnętrznego odniesienia tam, gdzie sprzęt to obsługuje. Tylko port mimxrt.

Stałe

Poniższe stałe są dostępne tylko na porcie STM32; przekaż je jako argument id, aby utworzyć ADC odczytujący jeden z wbudowanych sensorów analogowych. Wynikiem read_u16() jest surowy 16-bitowy odczyt kanału; dla wartości skalibrowanych użyj funkcji pomocniczych z pyb.ADCAll.

VREF: int

Kanał zewnętrznego odniesienia napięcia.

CORE_VREF: int

Kanał wewnętrznego odniesienia napięcia 1,21 V (nominalnie) (VREFINT).

CORE_TEMP: int

Kanał wewnętrznego sensora temperatury struktury.

CORE_VBAT: int

Kanał napięcia baterii podtrzymującej (VBAT).

CORE_VDD: int

Kanał szyny zasilania MCU (VDDA).