AnalogueSignals

Page Actions

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 Base
OTA A0 (ADC) GPIO 36
VCC 3V3
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

-- %USERSIG{UliRaich - 2022-10-16}%

Comments

 
I Attachment Action Size Date Who Comment
slider.pngpng slider.png manage 152 K 24 Oct 2022 - 10:58 UnknownUser  
slider_conn.pngpng slider_conn.png manage 77 K 24 Oct 2022 - 10:59 UnknownUser  
Topic revision: r3 - 24 Oct 2022, UliRaich