Source code for zorg_grove.rotary_angle_sensor

from zorg.driver import Driver


[docs]class RotaryAngleSensor(Driver): """ This may also be known as a potentiometer. """ def __init__(self, options, connection): super(RotaryAngleSensor, self).__init__(options, connection) # The value of the input voltage self.reference_voltage = 5 # The angular range of the Grove rotary angle sensor is 300 degrees # with a linear change in value self.angular_range = 300 self.commands += [ "read_angle" ]
[docs] def read_angle(self): """ Read and return the current angle of the sensor in degrees. The rotary angle sensor produces analog output between 0 and Vcc (D1). """ analog_value = self.connection.analog_read(self.pin) voltage = analog_value * self.reference_voltage / 1023.0 degrees = (voltage * self.angular_range) / self.reference_voltage return degrees