Arduino con LED RGB y Pantalla LCD

Hola,

Estoy montando el siguiente arduino, donde cada botón enciende el led con un color diferente y mi idea es que aparezca por la pantalla LCD los valores RGB de cada momento, el problema es que en Tinkercard me aparece la simulación correctamente pero al llevarla a cabo en físico la pantalla LCD no se enciende (El resto de componentes con los colores si que funciona). ¿Me podéis ayudar?

Muchas gracias!

Falta el potenciómetro para ajustar el contraste, puede ser por eso que no ves nada.

También deberías adjuntar el código así lo revisamos.

Hola,

Gracias por la respuesta. He añadido el potenciometro (primera vez que lo hago) pero sigue sin acabar de funcionar. Añado un par de fotos:

El código que utilizo es el siguiente (de antes de añadir el potenciometro):

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Configura la pantalla LCD

int redPin = 13;        // Pin del LED rojo
int greenPin = 11;      // Pin del LED verde
int bluePin = 12;       // Pin del LED azul

int button10State = LOW; // Botón rojo
int button9State = LOW;  // Botón verde
int button8State = LOW;  // Botón azul

int redValue = 0;       // Valor para el componente rojo
int greenValue = 0;     // Valor para el componente verde
int blueValue = 0;      // Valor para el componente azul

void setup() {
  lcd.begin(12, 6); // Inicializa la pantalla LCD con 12 columnas y 6 filas
  lcd.setCursor(0, 0); // Establece la posición del cursor en la primera fila
  lcd.print("R: 0 G: 0 B: 0"); // Inicializa la pantalla con valores de 0
  lcd.setCursor(0, 1); // Establece la posición del cursor en la segunda fila
  lcd.print("RGB LED Control"); // Muestra un título en la pantalla

  pinMode(redPin, OUTPUT);   // Configura el pin del LED rojo como salida
  pinMode(greenPin, OUTPUT); // Configura el pin del LED verde como salida
  pinMode(bluePin, OUTPUT);  // Configura el pin del LED azul como salida

  pinMode(10, INPUT);        // Configura el botón 1 (rojo) como entrada
  pinMode(9, INPUT);         // Configura el botón 2 (verde) como entrada
  pinMode(8, INPUT);         // Configura el botón 3 (azul) como entrada
}

void loop() {
  button10State = digitalRead(10);  // Lee el estado del botón 1 (rojo)
  button9State = digitalRead(9);    // Lee el estado del botón 2 (verde)
  button8State = digitalRead(8);    // Lee el estado del botón 3 (azul)

  // Mezcla de colores
  if (button10State == HIGH) {
    redValue = 255;  // Si se presiona el botón 1 (rojo), establece el componente rojo a 255 (máximo)
  } else {
    redValue = 0;    // Si no se presiona el botón 1 (rojo), apaga el componente rojo (0)
  }

  if (button9State == HIGH) {
    greenValue = 255;  // Si se presiona el botón 2 (verde), establece el componente verde a 255 (máximo)
  } else {
    greenValue = 0;    // Si no se presiona el botón 2 (verde), apaga el componente verde (0)
  }

  if (button8State == HIGH) {
    blueValue = 255;  // Si se presiona el botón 3 (azul), establece el componente azul a 255 (máximo)
  } else {
    blueValue = 0;    // Si no se presiona el botón 3 (azul), apaga el componente azul (0)
  }

  // Configurar el color del LED RGB
  analogWrite(redPin, redValue);     // Configura el LED rojo con el valor del componente rojo
  analogWrite(greenPin, greenValue); // Configura el LED verde con el valor del componente verde
  analogWrite(bluePin, blueValue);   // Configura el LED azul con el valor del componente azul

  // Actualizar los valores de los colores en la pantalla LCD
  lcd.setCursor(0,0); // Establece la posición del cursor en la primera fila
  lcd.print("R: ");
  lcd.print(redValue);
  lcd.print(" G: ");
  lcd.print(greenValue);
  lcd.print(" B: ");
  lcd.print(blueValue);
}

Muchas gracias.

Saludos,

Una cosita: a simple vista las 3 resistencias del LED RGB no están haciendo nada en la protoboard. Los cables negros llegan a las patillas RGB sin pasar por la resistencia.
Deberías puentear bien esta parte.
El lcd cuál es? porque creo que ese lo has de inicializar con
lcd.begin(16, 2);
Sería mejor que pasaras el modelo exacto del lcd por que si es de 12 como tu tienes puesto, el texto "R: 0 G: 0 B: 0" no te cabe. Así podremos ver el datasheet y comprobar que tienes bien conexionado todo.

Probá poniendo puentes en las líneas (+) y (-), probablemente sean dos secciones separadas y el display no reciba alimentación (mi proto es así, "partida" en dos y por eso las lineas roja y azul no son contínuas).

Y revisa las conexiones del LED de iluminación del display.
Salvo que sea por el ángulo de la foto, yo veo el pin LED- conectado con la R a (+) y LED+ conectado a (-), o sea que estarían invertidas.

af2

Otro detalle, revisa las conexiones de los pulsadores, podría ocurrir que te detecte que siempre están pulsados si justo conectaste las patas que están unidas (2 de un lado y 2 del otro).
Para evitar ese problema, se aconseja conectarlas cruzadas (la patita izquierda de un lado y la derecha del otro) así nunca hay posibilidad de errarle y no hace falta usar un multímetro para confirmar que se usan los pines correctos.
Así como te marco en la foto, una opción con flechas verdes u otra con amarillas.

af3

Otra pelea con un protoboard!!.
Empieza descreyendo que tienes continuidad en todo lo que crees que la tienes asi que tester y a probar todo a ver si no hay malos contactos.

Apuesto que es un mal contacto!!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.