This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:iot-open:practical:hardware:sut:esp32:emb2_1 [2024/04/20 08:13] – [Steps] pczekalski | en:iot-open:practical:hardware:sut:esp32:emb2_1 [2025/04/28 20:31] (current) – [Steps] pczekalski | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | <todo @pczekalski> | ||
====== EMB2: Using a digital potentiometer ===== | ====== EMB2: Using a digital potentiometer ===== | ||
Digital potentiometer DS1803 is an I2C-controlled device that can digitally control the potentiometer.\\ Opposite to the physical potentiometers, | Digital potentiometer DS1803 is an I2C-controlled device that can digitally control the potentiometer.\\ Opposite to the physical potentiometers, | ||
Line 76: | Line 75: | ||
<note tip> | <note tip> | ||
=== Step 1 === | === Step 1 === | ||
- | Define I2C bus GPIOs: clock (SCL) uses GPIO 4 and data (SDA) GPIO 5. ADC uses GPIO 7. Digital potentiometer chip DS1803 uses 0x28 I2C address. All definitions are present in the following code: | + | Define I2C bus GPIOs: clock (SCL) uses GPIO 4, and data (SDA) uses GPIO 5. ADC uses GPIO 7. Digital potentiometer chip DS1803 uses 0x28 I2C address. All definitions are present in the following code: |
<code c> | <code c> | ||
#define SCL 4 | #define SCL 4 | ||
Line 95: | Line 94: | ||
Wire.begin(SDA, | Wire.begin(SDA, | ||
delay(100); | delay(100); | ||
+ | ... | ||
+ | | ||
pinMode(POT_ADC, | pinMode(POT_ADC, | ||
</ | </ | ||
+ | |||
+ | <note important> | ||
=== Step 4 === | === Step 4 === | ||
- | Read the loopback characteristics of the digital potentiometer to ADC loop and store it in the array: | + | Read the loopback characteristics of the digital potentiometer to the ADC loop and store it in the array: |
<code c> | <code c> | ||
for(byte i=0; i<128; i++) | for(byte i=0; i<128; i++) | ||
Line 109: | Line 112: | ||
=== Step 5 === | === Step 5 === | ||
- | Display on the OLED. Assume the following handler to the pointer to the display controller class: | + | Display on the OLED. Assume the following handler to the pointer to the display controller class: |
+ | <code c> | ||
+ | SSD1306Wire& | ||
+ | </ | ||
+ | More information in the scenario [[en: | ||
Note, ADC measures in the 12-bit mode (we assume such configuration, | Note, ADC measures in the 12-bit mode (we assume such configuration, | ||
<code c> | <code c> |