Descripción de la imagen

Control de color led RGB

Descripción

Controlar un LED RGB con un potenciómetro usando Arduino implica ajustar los colores del LED mediante la variación del valor del potenciómetro. Conectas los pines del LED RGB (a través de resistencias) a los pines PWM del Arduino y el potenciómetro a una entrada analógica. El Arduino lee el valor del potenciómetro, lo convierte a un rango adecuado y ajusta el brillo de los colores del LED RGB en consecuencia. Esto permite cambiar el color del LED en tiempo real girando el potenciómetro.

Materiales necesarios:

Instrucciones:

  1. Conecta el pin común del LED RGB a GND (si es cátodo común) o a 5V (si es ánodo común).
  2. Conecta los pines R, G y B del LED a los pines digitales PWM del Arduino (9, 10, y 11) a través de resistencias de 220 ohmios.
  3. Realiza las conexiones de los tres potenciometros, ambos extremos van alimentados con VCC y GND y el el medio va alimentado a las entradas analogicas A0, A1,A2
  4. Subir el Código desde el ID de Arduino
  5. Alimentar el circuito
  6. Gira los potenciometros y a mezclar los colores

Esquema de conexión

Código de Ejemplo (para Arduino IDE):

Copied

/*
  Creado: Luis  Alvarez (edualv1723@gmail.com)
  https://alvelectronics.com
*/
// Definición de pines
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;

const int redPotPin = A0;
const int greenPotPin = A1;
const int bluePotPin = A2;

void setup() {
  // Configurar pines como salidas
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  // Leer los valores de los potenciómetros
  int redValue = analogRead(redPotPin);
  int greenValue = analogRead(greenPotPin);
  int blueValue = analogRead(bluePotPin);

  // Mapear los valores de los potenciómetros (0-1023) a rango PWM (0-255)
  int redPWM = map(redValue, 0, 1023, 0, 255);
  int greenPWM = map(greenValue, 0, 1023, 0, 255);
  int bluePWM = map(blueValue, 0, 1023, 0, 255);

  // Ajustar la intensidad de los colores
  analogWrite(redPin, redPWM);
  analogWrite(greenPin, greenPWM);
  analogWrite(bluePin, bluePWM);

  // Pequeño retraso para estabilizar la lectura
  delay(10);
}

      
Whatsapp