Skip to content

Analog to Digital Conversion

This module loads the Analog to Digital Converter (adc) driver of the embedded device.

When imported, automatically sets the system adc driver to the default one.

init(drvname, samples_per_second=800000)

Loads the adc driver identified by drvname and sets it up to read samples_per_second samples per second. The default is a sampling frequency of 0.8 MHz, valid values are dependent on the board.

Returns the previous driver without disabling it.

done(drvname)

Unloads the adc driver identified by drvname.

read(pin, samples=1)

Reads analog values from pin that must be one of the Ax pins. If samples is 1 or not given, returns the integer value read from pin. If samples is greater than 1, returns a tuple of integers of size samples. The maximum value returned by analogRead depends on the analog resolution of the board.

read also accepts lists or tuples of pins and returns the corresponding tuple of tuples of samples:

import adc

x = adc.read([A4,A3,A5],6)

this piece of code sets x to ((…),(…),(…)) where each inner tuple contains 6 samples taken from the corresponding channel. To use less memory, the inner tuples can be bytes(), or shorts() or normal tuples, depending on the hardware resolution of the adc unit. The number of sequentials pins that can be read in a single call depends on the specific board.