Measuring voltage with analog inputs and the mraa library
We will create a new VoltageInput class to represent a voltage source connected to our board, specifically, to an analog input pin. The following lines show the code for the new VoltageInput class that works with the mraa library. The code file for the sample is iot_python_chapter_06_01.py.
import mraa
import time
class VoltageInput:
def __init__(self, analog_pin):
self.analog_pin = analog_pin
self.aio = mraa.Aio(analog_pin)
# Configure ADC resolution to 12 bits (0 to 4095)
self.aio.setBit(12)
@property
def voltage(self):
raw_value = self.aio.read()
return raw_value / 4095.0 * 5.0We have to specify the analog pin number to which the voltage source is connected when we create an instance of the VoltageInput class in the analog_pin required argument. The constructor, that is, the __init__ method, creates a new mraa.Aio instance with the received analog_pin as its pin argument...