Module src.main.python.sensor_adc

Expand source code
import machine
from sensor import Sensor


class SensorADC(Sensor):

    """Sensor, measures an amount from a pin with ADC """

    def __init__(self, pin_num, range_min=0, range_max=4000, average_converging_speed=1 / 2, attenuation=6):

        """ constructor.
        :param pin_num: number pin that will read value, it has to be ADC, analog to digital converter
        :param range_min: min value of sensor
        :param range_max: max value of sensor
        :param average_converging_speed: speed the average goes towards the last measure (range 0-1) """
        super().__init__(range_min, range_max, average_converging_speed)
        self.pin = machine.ADC(machine.Pin(pin_num))
        if attenuation == 0:
            self.pin.atten(machine.ADC.ATTN_0DB)   # maximum input voltage of 1.00v
        if attenuation == 2.5:
            self.pin.atten(machine.ADC.ATTN_2_5DB)  # maximum input voltage of 1.34V
        if attenuation == 6:
            self.pin.atten(machine.ADC.ATTN_6DB)  # increase reading voltage to 2V
        if attenuation == 11:
            self.pin.atten(machine.ADC.ATTN_11DB)  # maximum input voltage of 3.6V, going near this boundary may be damaging to the IC!

    def raw_measure(self):
        """measures, updates average, returns raw measure."""
        return self.pin.read()

Classes

class SensorADC (pin_num, range_min=0, range_max=4000, average_converging_speed=0.5, attenuation=6)

Sensor, measures an amount from a pin with ADC

constructor. :param pin_num: number pin that will read value, it has to be ADC, analog to digital converter :param range_min: min value of sensor :param range_max: max value of sensor :param average_converging_speed: speed the average goes towards the last measure (range 0-1)

Expand source code
class SensorADC(Sensor):

    """Sensor, measures an amount from a pin with ADC """

    def __init__(self, pin_num, range_min=0, range_max=4000, average_converging_speed=1 / 2, attenuation=6):

        """ constructor.
        :param pin_num: number pin that will read value, it has to be ADC, analog to digital converter
        :param range_min: min value of sensor
        :param range_max: max value of sensor
        :param average_converging_speed: speed the average goes towards the last measure (range 0-1) """
        super().__init__(range_min, range_max, average_converging_speed)
        self.pin = machine.ADC(machine.Pin(pin_num))
        if attenuation == 0:
            self.pin.atten(machine.ADC.ATTN_0DB)   # maximum input voltage of 1.00v
        if attenuation == 2.5:
            self.pin.atten(machine.ADC.ATTN_2_5DB)  # maximum input voltage of 1.34V
        if attenuation == 6:
            self.pin.atten(machine.ADC.ATTN_6DB)  # increase reading voltage to 2V
        if attenuation == 11:
            self.pin.atten(machine.ADC.ATTN_11DB)  # maximum input voltage of 3.6V, going near this boundary may be damaging to the IC!

    def raw_measure(self):
        """measures, updates average, returns raw measure."""
        return self.pin.read()

Ancestors

  • sensor.Sensor

Methods

def raw_measure(self)

measures, updates average, returns raw measure.

Expand source code
def raw_measure(self):
    """measures, updates average, returns raw measure."""
    return self.pin.read()