#include <Wire.h> // biblioteca para conexión I2C
#include <Adafruit_GFX.h> // biblioteca para gráficos
#include <Adafruit_SSD1306.h> // biblioteca para el controlador del
int L1 = 4;
int L2 = 25;
int L3 = 26;
#define ANCHO_PANTALLA 128 // OLED ancho, en pixeles
#define ALTO_PANTALLA 64 // OLED alto, en pixeles
// crea el objeto OLED con conexión I2C
Adafruit_SSD1306 display(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);
void setup() {
Serial.begin(9600); // inicializa puerto serie
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(L3, OUTPUT);
// Inicializa la pantalla OLED con I2C direccion 0x3C
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Si la
Serial.println(F("Falla conexión con SSD1306 OLED")); // imprime
while (1);
}
}
void loop() {
int sensorValue = analogRead(A0); //Lectura del ADC valores de 0 a 1023
float voltage = sensorValue * (3.3 / 1023.0); //escalamos a voltaje
//Enviamos por el puerto serie
Serial.print("ADC= ");
Serial.print(sensorValue);
Serial.print(" Voltaje= ");
Serial.println(voltage);
delay(100);
delay(500); // espera 2 segundo para la inicialización
display.clearDisplay(); // borra la pantalla
display.setTextSize(2); // selecciona tamaño de texto
display.setTextColor(WHITE); // selecciona color de texto
display.setCursor(20, 25); // posiciona el cursor
display.println("voltaje");
display.setCursor(30, 50);
display.println(voltage); // selecciona texto a imprimir
display.display(); // imprime en el OLED
if (voltage < 4){
digitalWrite(L1, HIGH);
}
else{
digitalWrite(L1, LOW);
}
if (voltage >= 4 && voltage <=8){
digitalWrite(L2, HIGH);
}
else {
digitalWrite(L2, LOW);
}
if (voltage > 8){
digitalWrite(L3, HIGH);
}
else{
digitalWrite(L3, LOW);
}
}