#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 pinPulsador = 12;// Asigna el pin 12 a pinPulsador.
int i=0; //Crea la variable i que tiene asignada el valor 0.
void setup() {
pantallaOLED.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Conecta la pantalla a la direccioń I2C.
pinMode(pinPulsador, INPUT_PULLUP); // Pin 12 es una entrada con resistencia que es tipo PULLUP.
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.
}
void loop() {
int pulsador = digitalRead(pinPulsador); // Asigna el valor que lee el pinPulsador a pulsador.
if (pulsador==0){ // Si el pulsador se pulsa:
i=i+1; //La variable i se le asigna su valor previo más uno.
if (i==3){ // Si i es igual a 3:
i=0; //i vale 0 para volver al color rojo.
}
delay(500); //Espera 0,5 segundos.
}
if (i==0){ //Si i es igual a 0.
digitalWrite(LED_RGB_ROJO, 0); // La salida LED_RGB_ROJO está encendida.
digitalWrite(LED_RGB_VERDE, 1); // La salida LED_RGB_VERDE está apagada.
digitalWrite(LED_RGB_AZUL, 1); // La salida LED_RGB_AZUL está apagada.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
pantallaOLED.setCursor(32,25); // 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(3); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("ROJO"); //Muestra en la pantalla OLED "ROJO"
pantallaOLED.display(); // Muestra los contenidos creados.
}
if (i==1){
digitalWrite(LED_RGB_ROJO, 1); // La salida LED_RGB_ROJO está apagada.
digitalWrite(LED_RGB_VERDE, 0); // La salida LED_RGB_VERDE está encendida.
digitalWrite(LED_RGB_AZUL, 1); // La salida LED_RGB_AZUL está apagada.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
pantallaOLED.setCursor(25,25); // 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(3); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("VERDE"); //Muestra en la pantalla OLED "VERDE"
pantallaOLED.display(); // Muestra los contenidos creados.
}
if (i==2) {
digitalWrite(LED_RGB_ROJO, 1);// La salida LED_RGB_ROJO está apagada.
digitalWrite(LED_RGB_VERDE, 1);// La salida LED_RGB_VERDE está apagada.
digitalWrite(LED_RGB_AZUL, 0); // La salida LED_RGB_AZUL está encendida.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
pantallaOLED.setCursor(32,25); // 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(3); //Define el tamaño del texto de tres píxeles.
pantallaOLED.print("AZUL"); //Muestra en la pantalla OLED "AZUL"
pantallaOLED.display(); // Muestra los contenidos creados.
}
}