#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Ancho de la pantalla OLED en píxeles
#define SCREEN_HEIGHT 64 // Alto de la pantalla OLED en píxeles
#define OLED_RESET -1 // Pin de reinicio OLED, -1 si se comparte con el pin de reinicio de Arduino
#define SCREEN_ADDRESS 0x3C // Dirección I2C de la pantalla OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Pines
const int pot1Pin = 34; // Pin del potenciómetro 1
const int pot2Pin = 35; // Pin del potenciómetro 2
const int ledPin = 27; // Pin del LED
void setup() {
Serial.begin(115200);
pinMode(pot1Pin, INPUT);
pinMode(pot2Pin, INPUT);
pinMode(ledPin, OUTPUT);
// Inicialización de la pantalla OLED
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("Error al inicializar la pantalla OLED"));
for(;;); // Bucle infinito si falla la pantalla OLED
}
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop() {
// Leer los valores de los potenciómetros
int pot1Value = analogRead(pot1Pin); // Potenciómetro 1
int pot2Value = analogRead(pot2Pin); // Potenciómetro 2
// Mostrar valores en el monitor serie
Serial.print("Potenciómetro 1: ");
Serial.println(pot1Value);
Serial.print("Potenciómetro 2: ");
Serial.println(pot2Value);
// Encender el LED solo si pot2Value > pot1Value
if (pot2Value > pot1Value) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// Mostrar en pantalla OLED
display.clearDisplay();
display.setCursor(0, 20);
display.print("Potenciometro 1: ");
display.println(pot1Value);
display.print("Potenciometro 2: ");
display.println(pot2Value);
// Actualizar pantalla OLED
display.display();
delay(500); // Retardo para lectura cada medio segundo
}
Loading
ssd1306
ssd1306