Surilli
Published © LGPL

Color Mixing Lamp Using LDR, RGB LED and Surilli Basic M0

Generate different colors using a single RGB LED and make our room’s corner more attractive.

BeginnerFull instructions provided45 minutes731
Color Mixing Lamp Using LDR, RGB LED and Surilli Basic M0

Things used in this project

Hardware components

Surilli Basic
Surilli Basic
×1
RGB Diffused Common Anode
RGB Diffused Common Anode
×1
Breadboard (generic)
Breadboard (generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Resistor 221 ohm
Resistor 221 ohm
×3
Resistor 1k ohm
Resistor 1k ohm
×3
LDR
×3

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Color Mixing Lamp Using LDR, RGB LED and Surilli Basic M0

Code

RGB_LED_and_LDR

C/C++
const byte red_sensor_pin = A0;
const byte green_sensor_pin = A1;
const byte blue_sensor_pin = A2;
const byte green_led_pin = 9;
const byte blue_led_pin = 10;
const byte red_led_pin = 11;

unsigned int red_led_value      = 0;
unsigned int blue_led_value     = 0;
unsigned int green_led_value    = 0;
unsigned int red_sensor_value   = 0;
unsigned int blue_sensor_value  = 0;
unsigned int green_sensor_value = 0;

void setup() {
   pinMode(red_led_pin,OUTPUT);
   pinMode(blue_led_pin,OUTPUT);
   pinMode(green_led_pin,OUTPUT);
   SerialUSB.begin(9600);
}

void loop() {
   red_sensor_value = analogRead(red_sensor_pin);
   delay(50);
   blue_sensor_value = analogRead(blue_sensor_pin);
   delay(50);
   green_sensor_value = analogRead(green_sensor_pin);
   
   // print those values onto the serial monitor
   SerialUSB.println("Raw Sensor Values:");
   SerialUSB.print("\t Red: ");
   SerialUSB.print(red_sensor_value);
   SerialUSB.print("\t Blue: ");
   SerialUSB.print(blue_sensor_value);
   SerialUSB.print("\t Green: ");
   SerialUSB.println(green_sensor_value);
   
   // convert from 0-1023 to 0-255
   red_led_value   = red_sensor_value / 4;   // define Red LED
   blue_led_value  = blue_sensor_value / 4;  // define Blue LED
   green_led_value = green_sensor_value / 4; // define Green LED
   
   // print mapped values to serial monitor
   SerialUSB.println("Mapped Sensor Values:");
   SerialUSB.print("\t Red: ");
   SerialUSB.print(red_led_value);
   SerialUSB.print("\t Blue: ");
   SerialUSB.print(blue_led_value);
   SerialUSB.print("\t Green: ");
   SerialUSB.println(green_led_value);
   
   // use analogWrite() to set output for RGB LED
   analogWrite(red_led_pin,red_led_value);   // indicate red LED
   analogWrite(blue_led_pin,blue_led_value);  // indicate blue LED
   analogWrite(green_led_pin,green_led_value); // indicate green 
}

Credits

Surilli

Surilli

196 projects • 62 followers
Surilli is a premiere Internet of Things centric Technology Company aimed at providing cutting edge innovative solutions.

Comments