En esta práctica vamos a conectar el led rgb con la pantalla ldr. El color que vaya luciendo en el led, aparecerá escrito en la pantalla ldr. Le doy las gracias a Jenny y a Eloi por su trabajo.
El esquema de esta práctica es el siguiente:
Para el código, hemos juntado la práctica del led rgb y el la de la lcd:
#include <LiquidCrystal.h>
//declaramos los pines de la ldr LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //Declaramos los puertos de entradas y salidas y variables int ledRojo = 1; //Declarar Pin LED Rojo int ledVerde=3; //Declarar Pin LED Verde int ledAzul=2; //Declarar Pin LED Azul //------------------------------------ //Funcion principal //------------------------------------ void setup() // Se ejecuta cada vez que el Arduino se inicia { pinMode(ledRojo,OUTPUT); //El LED Rojo como salida pinMode(ledVerde,OUTPUT); //El LED Verde como salida pinMode(ledAzul,OUTPUT); //El LED Azul como salida } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() // Esta funcion se mantiene ejecutando { // cuando se da energia al Arduino // Se llama a la funcion Color que recibe // 1er posicion: Rojo // 2da posición: Verde // 3ra posición: Azul lcd.print("Rojo"); color(255,0,0); //Rojo lcd.print("Verde"); color(0,255,0); //Verde lcd.print("Azul"); color(0,0,255); //Azul } //------------------------------------ //Funcion color //------------------------------------ void color(int rojo, int verde, int azul) { //Escritura del color Rojo analogWrite(ledRojo, 255-rojo); //Escritura del color Verde analogWrite(ledVerde, 255-verde); //Escritura del color Azul analogWrite(ledAzul, 255-azul); delay(1000); lcd.clear(); //limpia la pantalla ldr lcd.setCursor(0, 1); //pone el cursor en el inicio de la pantalla ldr } //Fin programa
……………………………………………………………………………………………………………………………………………..
Aquí os dejo un vídeo de lo que hace la práctica:
Para los que sabéis un poco más de programación, aquí os dejo otro código más complicado, pero más profesional.
Debo dar las gracias a Eloi, un amigo informático, el cual ha sido capaz de hacer este código:………………………………………………………………………………………………….
#include <LiquidCrystal.h>
#define SIZE_COLOR_ARRAY 3
class COLOR_RGB { public: int red; int green; int blue; char *name; COLOR_RGB(char *_name, int _red, int _green, int _blue); }; COLOR_RGB::COLOR_RGB(char *_name, int _red, int _green, int _blue) { name = _name; red = _red; green = _green; blue = _blue; }
// initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 10, 9, 8, 7); /* --------------------------------------------- LED RGB - Tabla de Colores --------------------------------------------- */ //-------------------------------------------------- //Declaramos los puertos de entradas y salidas y variables //-------------------------------------------------- int ledRojo = 1; //Declarar Pin LED Rojo int ledVerde=3; //Declarar Pin LED Verde int ledAzul=2; //Declarar Pin LED Azul COLOR_RGB colores[SIZE_COLOR_ARRAY] = {COLOR_RGB("Rojo",255,0,0),COLOR_RGB("Verde",0,255,0),COLOR_RGB("Azul",0,0,255)}; //------------------------------------ //Funcion principal //------------------------------------ void setup() // Se ejecuta cada vez que el Arduino se inicia { pinMode(ledRojo,OUTPUT); //El LED Rojo como salida pinMode(ledVerde,OUTPUT); //El LED Verde como salida pinMode(ledAzul,OUTPUT); //El LED Azul como salida } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() // Esta funcion se mantiene ejecutando { // cuando se da energia al Arduino // Se llama a la funcion Color que recibe // 1er posicion: Rojo // 2da posición: Verde // 3ra posición: Azul while(1) { for(int i=0;i<SIZE_COLOR_ARRAY;i++) { setColor(i); } } } //------------------------------------ //Funcion color //------------------------------------ void setColor(int i) { // Limpiar pantalla lcd.clear(); //Escritura del color Rojo analogWrite(ledRojo, 255-colores[i].red); //Escritura del color Verde analogWrite(ledVerde, 255-colores[i].green); //Escritura del color Azul en el LED analogWrite(ledAzul, 255-colores[i].blue); // Escribir el nombre en la pantalla LCD lcd.print(colores[i].name); delay(1000); } //Fin programa