/*
ACTIVIDAD 4-PANTALLA OLED-
Ecribe y prueba un programa para que el botón controle el LED RGB
como se muestra en la siguiente animación:
Modificado el 28/05/2024 por Bogdana Bilyachenko Zelinska
*/
//Se añade las librerías necesarias
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 pantallaOLED(128, 64, &Wire, -1); //Se declara el objeto
const int Rojo = 11; // Asigna el pin 11 al RGB Rojo
const int Verde = 10;// Asigna el pin 10 al RGB Verde
const int Azul = 9;// Asigna el pin 9 al 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); // Entrada pull-up del pulsador
pinMode(Rojo, OUTPUT); // Declara el Led Rojo como una salida.
pinMode(Verde, OUTPUT); // Declara el Led Verde como una salida.
pinMode(Azul, OUTPUT); // Declara el Led Azul como una salida.
}
void loop() {
int pulsador = digitalRead(pinPulsador); // Asigna el valor que lee el pinPulsador a pulsador.
if (pulsador == LOW){ //Si se cumple la siguiente condición, es decir, pulsamos el pulsador,
//a la varaible se le suma 1.
i++;
}
delay(100); //Espera 0,1 segundos.
if (i%3==0){ //Si i es igual a 0.
digitalWrite(Rojo, LOW); // La salida Led Rojo está encendida.
digitalWrite(Verde,HIGH); // La salida Led Verde está apagada.
digitalWrite(Azul, HIGH); // La salida Led Azul está apagada.
pantallaOLED.clearDisplay(); // Borra los contenidos de la pantalla.
pantallaOLED.setCursor(35,25); // Sitúa el cursor para escribir texto
pantallaOLED.setTextColor(1); // Cambia el color del texto
pantallaOLED.setTextSize(3); //Cambia el tamaño del texto
pantallaOLED.print("Rojo"); //Muestra en la pantalla OLED "Rojo"
pantallaOLED.display(); // Muestra los contenidos creados.
}
if (i%3==1){ ////Si i es igual a 1.
digitalWrite(Rojo,HIGH); // La salida Led Rojo está apagada.
digitalWrite(Verde,LOW); // La salida Led Verde está encendida.
digitalWrite(Azul,HIGH); // La salida Led 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
pantallaOLED.setTextColor(1); // Cambia el color del texto
pantallaOLED.setTextSize(3); //Cambia el tamaño del texto
pantallaOLED.display(); // Muestra los contenidos creados.
}
if (i%3==2) { ////Si i es igual a 2.
digitalWrite(Rojo, HIGH);// La salida Led Rojo está apagada.
digitalWrite(Verde, HIGH);// La salida Led Verde está apagada.
digitalWrite(Azul, LOW); // La salida Led 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
pantallaOLED.setTextColor(1); // Cambia el color del texto
pantallaOLED.setTextSize(3); //Cambia el tamaño del texto
pantallaOLED.print("Azul"); //Muestra en la pantalla OLED "Azul"
pantallaOLED.display(); // Muestra los contenidos creados.
}
}