Analogue Signals

Up to now, we only treated digital signals in output mode (LED) and in input mode (pushbutton). Sensors often produce analogue signal levels, however. A thermistor, for example, returns a voltage level which corresponds to the temperature. How can we treat signals like these?

Our slider potentiometer produces a similar signal level, and we will connect it to an Analogue to Digital Converter (ADC). The ESP32 chip already supplies a 12 bit ADC. With 12 bits 4096 different numbers can be represented, and we therefore get a resolution of our measurement of 1/4096 which corresponds to ~0.025 %

slider.png

The potentiometer has 3 pins: OTA (or OTB), VCC, GND which must be connected to the triple base as follows:

Potentiometer Triple BaseSorted ascending
VCC 3V3
OTA A0 (ADC) GPIO 36
GND GND
Use the male/female Dupont wires to make the connections.

slider_conn.png

You find a description of the MicroPython driver in the doc again. The ADC works for a range of 0..1V only while the potentiometer produces signal levels of 0..3.3V. A signal attenuator allows adapting the ranges. It must be set to ADC.ATTN_11DB for our 0..3.3V slider.

from machine import ADC,Pin
from time import sleep_ms

slider = ADC(Pin(36, atten=ADC.ATTN_11DB)  # use the ADC on GPIO 36 and set the attenuator to 11 dB
while True:
     print("Raw 12 bit value from slider: ",slider.read())
     sleep_ms(100)

The only hardware still missing is the rgb LED chain

-- Uli Raich - 2022-10-16

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng slider.png r3 r2 r1 manage 152.9 K 2022-10-24 - 10:58 UliRaich  
PNGpng slider_conn.png r1 manage 77.7 K 2022-10-24 - 10:59 UliRaich  

This topic: AFNOG > ASP2022 > MinimalLectures > AnalogueSignals
Topic revision: r3 - 2022-10-24 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback