#include <Wire.h> // Incluye la librería Wire.
#include <Adafruit_GFX.h> // Incluye la librería Adafruit_GFX.
#include <Adafruit_SSD1306.h> // Incluye la librería Adafruit_SSD1306.
Adafruit_SSD1306 pantallaOLED(128, 64, &Wire, -1); //Código para declarar el objeto "pantalaOLED", su ancho y largo de la pantalla "128x64" y los parámetros de la librería "Wire" y -1.
const int LED_RGB_ROJO = 11; // Asigna el pin 11 de la placa Arduino UNO a LED_RGB_ROJO.
const int LED_RGB_VERDE = 10;// Asigna el pin 10 de la placa Arduino UNO a LED_RGB_VERDE.
const int LED_RGB_AZUL = 9;// Asigna el pin 9 de la placa Arduino UNO a LED_RGB_AZUL.
int pinPotenciometro0 = A0; //El potenciometro está conectado al pin A0.
int pinPotenciometro1 = A1; //El potenciometro está conectado al pin A1.
int pinPotenciometro2 = A2; //El potenciometro está conectado al pin A2.
void setup() {
pantallaOLED.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Conecta la pantalla a la direccioń I2C.
pinMode(LED_RGB_ROJO, OUTPUT); // Declara el LED_RGB_ROJO como una salida.
pinMode(LED_RGB_VERDE, OUTPUT); // Declara el LED_RGB_VERDE como una salida.
pinMode(LED_RGB_AZUL, OUTPUT); // Declara el LED_RGB_AZUL como una salida.
pinMode(pinPotenciometro0, INPUT); // Pin A0 es una entrada con resistencia que es tipo PULLUP.
pinMode(pinPotenciometro1, INPUT); // Pin A1 es una entrada con resistencia que es tipo PULLUP.
pinMode(pinPotenciometro2, INPUT); // Pin A2 es una entrada con resistencia que es tipo PULLUP.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
}
void loop() {
int potenciometro_Rojo = analogRead(pinPotenciometro0); // Lee el valor que tiene el potenciometro, que varia manualmente.
int valorBarra_Rojo = map (potenciometro_Rojo, 0, 1023,0,80); // Realiza un factor de conversión donde 0 es 0, y 1023 es 100.
int valor_Rojo = map (potenciometro_Rojo, 0, 1023,0,255); // Realiza un factor de conversión donde 0 es 0, y 1023 es 100.
int valor_PotenRojo = map (potenciometro_Rojo, 0, 1023,255,0); // Realiza un factor de conversión donde 0 es 0, y 1023 es 100.
int potenciometro_Verde = analogRead(pinPotenciometro1); // Lee el valor que tiene el potenciometro, que varia manualmente.
int valorBarra_Verde = map (potenciometro_Verde, 0, 1023,0,80); // Realiza un factor de conversión donde 0 es 0, y 1023 es 80.
int valor_Verde = map (potenciometro_Verde, 0, 1023,0,255); // Realiza un factor de conversión donde 0 es 0, y 1023 es 255.
int valor_PotenVerde = map (potenciometro_Verde, 0, 1023,255,0); // Realiza un factor de conversión donde 0 es 255, y 1023 es 0.
int potenciometro_Azul = analogRead(pinPotenciometro2); // Lee el valor que tiene el potenciometro, que varia manualmente.
int valorBarra_Azul = map (potenciometro_Azul, 0, 1023,0,80); // Realiza un factor de conversión donde 0 es 0, y 1023 es 80.
int valor_Azul = map (potenciometro_Azul, 0, 1023,0,255); // Realiza un factor de conversión donde 0 es 0, y 1023 es 255.
int valor_PotenAzul = map (potenciometro_Azul, 0, 1023,255,0); // Realiza un factor de conversión donde 0 es 255, y 1023 es 0.
analogWrite(LED_RGB_ROJO, valor_PotenRojo ); // La salida LED_RGB_ROJO tiene el valor que le indique el potencioḿetro.
analogWrite(LED_RGB_VERDE, valor_PotenVerde); // La salida LED_RGB_VERDE tiene el valor que le indique el potencioḿetro.
analogWrite(LED_RGB_AZUL, valor_PotenAzul); // La salida LED_RGB_AZUL tiene el valor que le indique el potencioḿetro.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
pantallaOLED.setCursor(1,10); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (32,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("R"); //Muestra en la pantalla OLED "ROJO"
pantallaOLED.setCursor(8,10); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (32,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print(valor_Rojo); //Muestra en la pantalla el valor del potenciometro.
pantallaOLED.fillRoundRect(28,10,valorBarra_Rojo,10,1,1); // Dibuja un rectángulo relleno con las cordenadas del primer pixel: (1,30) con el valor del potenciometro adaptado al rectángulo previamente dibujado de ancho, 10 pixeles de alto, un pixel de radio en los bordes y de color blanco=1.
pantallaOLED.setCursor(1,30); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (25,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("G"); //Muestra en la pantalla OLED "VERDE"
pantallaOLED.setCursor(8,30); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (32,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print(valor_Verde); //Muestra en la pantalla el valor del potenciometro.
pantallaOLED.fillRoundRect(28,30,valorBarra_Verde,10,1,1); // Dibuja un rectángulo relleno con las cordenadas del primer pixel: (1,30) con el valor del potenciometro adaptado al rectángulo previamente dibujado de ancho, 10 pixeles de alto, un pixel de radio en los bordes y de color blanco=1.
pantallaOLED.setCursor(1,50); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (32,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("B"); //Muestra en la pantalla OLED "AZUL"
pantallaOLED.setCursor(8,50); // Sitúa el cursor para escribir texto en las coordenadas de la pantalla (32,25).
pantallaOLED.setTextColor(1); // Define el color del texto (1 es blanco).
pantallaOLED.setTextSize(1); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print(valor_Azul); //Muestra en la pantalla el valor del potenciometro.
pantallaOLED.fillRoundRect(28,50,valorBarra_Azul,10,1,1); // Dibuja un rectángulo relleno con las cordenadas del primer pixel: (1,30) con el valor del potenciometro adaptado al rectángulo previamente dibujado de ancho, 10 pixeles de alto, un pixel de radio en los bordes y de color blanco=1.
pantallaOLED.display(); // Muestra los contenidos creados.
}