#include <Adafruit_SH110X.h>
#include <Wire.h>
// Funciones
void updateOPIN_LEDMod(String txt);
void updatePoteValuesDisplay(int valorAnalogicoPotenciometro);
// Perifericos
// Para obtener la intensidad corercta en el led, en diagram.json se tiene que poner
// en los atributos del led "gamma": "1.0"
// En el Ejemplo 04 (Gamma) se explica esto de gamma
const short PIN_LED = 23;
const short PIN_POTENCIOMETRO = 32;
Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1);
void setup() {
// Inicializar comunicacion serial
Serial.begin(9600);
// Inicializar led
pinMode(PIN_LED, OUTPUT);
//Inicializar display
display.begin(0x3c, true);
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
}
void loop() {
// Lectura potenciometro
int valorAnalogicoPotenciometro = analogRead(PIN_POTENCIOMETRO);
float voltage = valorAnalogicoPotenciometro * 3.3 / 4095;
int ledIntensity = map(valorAnalogicoPotenciometro, 0, 4095, 0, 255);
// Escritura led
analogWrite(PIN_LED, ledIntensity);
// Escritura display
display.clearDisplay();
display.setCursor(0, 0);
display.printf("Potenciometer: %d \nVoltage: %.2fv \nLed Intensity: %d",
valorAnalogicoPotenciometro, voltage, ledIntensity);
display.display();
delay(100);
}Loading
esp32-devkit-v1
esp32-devkit-v1