#include <Wire.h> // Librería para comunicación I2C
#include <Adafruit_GFX.h> // Librería gráfica de Adafruit
#include <Adafruit_SSD1306.h> // Librería para el controlador SSD1306 del OLED
// Define el ancho y alto de tu pantalla OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// Pin de reseteo del OLED, usualmente -1 para módulos I2C
#define OLED_RESET -1
// Crea el objeto Adafruit_SSD1306 para controlar la pantalla
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Define el pin donde está conectado el potenciómetro
#define POT_PIN GPIO_NUM_1 // El pin GPIO 1 (ADC1_CH0) es ideal para entradas analógicas en la ESP32-C3
void setup() {
Serial.begin(115200); // Inicia la comunicación serial para depuración
// Inicializa la pantalla OLED
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Error: ¡No se encontró la pantalla OLED! Revisa las conexiones."));
for (;;); // Detiene el programa si no se detecta el OLED
}
display.clearDisplay(); // Limpia la pantalla
display.setTextColor(SSD1306_WHITE); // Color del texto
display.setTextSize(1); // Tamaño del texto
}
void loop() {
// Lee el valor analógico del potenciómetro.
// El valor leído estará en un rango de 0 a 4095 para la ESP32-C3.
int rawValue = analogRead(POT_PIN);
// Mapea el valor leído (0-4095) a un rango más manejable y amigable (0-100).
// Esto es útil para mostrar un porcentaje o una escala.
int mappedValue = map(rawValue, 0, 4095, 0, 100);
// Limpia solo el área donde se mostrará el texto para evitar "rastros"
// Esto es más eficiente que clearDisplay() si solo cambia una parte.
display.fillRect(0, 0, SCREEN_WIDTH, 16, SSD1306_BLACK); // Limpia la primera línea
// Establece el cursor para el texto
display.setCursor(0, 0);
display.print("Valor Pot.: ");
display.print(mappedValue);
display.println("%"); // Agregamos un porcentaje para que sea más claro
// Muestra el contenido del buffer en la pantalla física
display.display();
delay(50); // Pequeña pausa para estabilizar las lecturas y no actualizar demasiado rápido
}Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini