Guiye Perez Bongiovanni
Published © GPL3+

RGB Light Color Mixer

RGB light color mixer made with Arduino Nano provided by PCBWay. We see the interaction of the primary colors, varying the intensity of each

BeginnerShowcase (no instructions)2 hours204
RGB Light Color Mixer

Things used in this project

Hardware components

Arduino Nano
×1
10K Potentiometer Rotary
×3
RGB LED Module, 3 150Ω limiting resistors
×1
Jumper wires (generic)
×1
Breadboard - Mini Modular (Black)
×1
MDF Board 3mm
×1
Power Bank 5V
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Drill Generic
Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Similar scheme with Arduino UNO. Project made with Arduino Nano.

The RGB module comes with built-in resistors.

Code

3POTRGB

Arduino
const int redControl = A0;
const int greenControl = A1;
const int blueControl = A2;
 
int ledRojo = 3; //Declara Pin LED Rojo
int ledVerde=5; //Declara Pin LED Verde
int ledAzul=6;  //Declara Pin LED Azul

int pinPot0 = A0;  //Declara Pin Potenciometro Rojo
int pinPot1 = A1;  //Declara Pin Potenciometro Verde
int pinPot2 = A2;  //Declara Pin Potenciometro Azul

int valorsensor0 = 0;  //Valores analogicos de salida del potenciometro
int valorsensor1 = 0;  //   ||        ||            ||            ||
int valorsensor2 = 0;  //   ||        ||            ||            ||

float divisionR; 
float divisionV;
float divisionA;

//------------------------------------

void setup() // Se ejecuta cada vez que el Arduino se inicia
{ 
  pinMode(ledRojo,OUTPUT);  //El LED Rojo como una salida
  pinMode(ledVerde,OUTPUT); //El LED Verde como una salida
  pinMode(ledAzul,OUTPUT);  //El LED Azul como una salida
  Serial.begin(9600);

}

//------------------------------------

void loop() {

   // Llamada a la función Color que recibe
   // 1er posicion: Intensidad Rojo
   // 2da posición: Intensidad Verde
   // 3ra posición: Intensidad Azul

   float Constante = (float) 255 / 1023;  //Divide el máximo valor de color entre el máximo valor del potenciómetro

   valorsensor0 = analogRead(pinPot0);
   valorsensor1 = analogRead(pinPot1);
   valorsensor2 = analogRead(pinPot2);

   divisionR = Constante * valorsensor0;    
   divisionV = Constante * valorsensor1;
   divisionA = Constante * valorsensor2;

   color(divisionR,divisionV,divisionA);     // Carga un valor para (ROJO,VERDE,AZUL)
                                             //segun el valor de tres potenciómetros.

}

//------------------------------------
//Funcion color
//------------------------------------

void color(int rojo, int verde, int azul){

    //ROJO. Le resta al total (255) el valor obtenido de los potenciometros
    analogWrite(ledRojo, 255-rojo);

    //VERDE. Le resta al total (255) el valor obtenido de los potenciometros
    analogWrite(ledVerde, 255-verde);

    //AZUL. Le resta al total (255) el valor obtenido de los potenciometros
    analogWrite(ledAzul, 255-azul);
}

Credits

Guiye Perez Bongiovanni

Guiye Perez Bongiovanni

10 projects • 22 followers
Artist / Maker

Comments