Introduction

  • In this article, I will explain about displaying RGB Light With Arduino Mega 2560.
  • It can be used to change according to the colored paper.
  • It can work under the color sensor.
Parts Of Lists:
  • Arduino Mega 2560
  • LED-3
  • Color sensor
  • Hookup Wires
Color Sensor:
  • The color sensor can be used to convert the light to a frequency converter.
  • It can be used to filter the RGB color.
  • We will calculate the RGB color value.
    Figure 1: Color sensor.
Connection:
Step 1: Connection From Color Sensor To Arduino Mega 2560:
  • Connect the S0 pin to the GND of the Arduino board.
  • Connect the S1 pin to the VCC of the 5V Arduino board.
  • Connect the S2 pin to the 03 of the Arduino board.
  • Connect the S3 pin to the 04 of the Arduino board.
  • Connect the S0 pin to the 05 of the Arduino board.
  • Connect the VCC pin to the 5V of the Arduino board.
  • Connect the GND pin to the GND of the Arduino board.
Step 2: Connection From LED To Arduino Mega 2560:
LED 1: RED Color:
  • Positive pin to the 13.
  • Negative pin to the GND.
LED 2: GREEN Color:
  • Positive pin to the 12.
  • Negative pin to the GND.
LED 3: BLUE Color:
  • Positive pin to the 11.
  • Negative pin to the GND.
Programming:
  1. int redPin=13; // red ping
  2. int greenPin=12; // green pin
  3. int bluePin=11; // blue pin
  4. int S2=03; // Color sensore pin S2 to Arduino pin 7
  5. int S3=04; // Color sensor pin S3 to Arduino pin 8
  6. int outPin=05; // color Sensor OUT to Arduino pin 4
  7. int rColorStrength;
  8. int gColorStrength;
  9. int bcolorStrength;
  10. unsigned int pulseWidth;
  11. void setup() {
  12. Serial.begin (9600); //Turn on serial port
  13. pinMode(redPin, OUTPUT);
  14. pinMode(greenPin, OUTPUT);
  15. pinMode(bluePin, OUTPUT);
  16. pinMode(S2, OUTPUT);
  17. pinMode(S3, OUTPUT);
  18. pinMode(outPin, INPUT);
  19. }
  20. void loop() {
  21. // Lets star by reading Red component of the color
  22. // S2 and S3 should be set LOW
  23. digitalWrite(S2,LOW);
  24. digitalWrite(S3,LOW);
  25. pulseWidth = pulseIn(outPin,LOW);
  26. rColorStrength = pulseWidth/400. -1;
  27. rColorStrength = (255- rColorStrength);
  28. // Lets read green component of the color
  29. // S2 and S3 should be set LOW
  30. digitalWrite (S2,HIGH);
  31. digitalWrite (S3,HIGH);
  32. pulseWidth = pulseIn(outPin,LOW);
  33. gColorStrength = pulseWidth/400. -1;
  34. gColorStrength = (255- gColorStrength);
  35. // Let's read blue component of the color
  36. // S2 and S3 should be set LOW and HIGH Respectively
  37. digitalWrite(S2,LOW);
  38. digitalWrite(S3,HIGH);
  39. pulseWidth = pulseIn(outPin,LOW);
  40. bcolorStrength = pulseWidth/400. -1;
  41. bcolorStrength = (255- bcolorStrength);
  42. Serial.print(rColorStrength);
  43. Serial.print(“, “);
  44. Serial.print(gColorStrength);
  45. Serial.print(“, “);
  46. Serial.println(bcolorStrength);
  47. Serial.println(“ ”);
  48. if (rcolorstrength>bcolorstrength &&rcolorstrength>gcolorstrength){
  49. digitalwrite(redpin,HIGH);
  50. digitalwrite(bluepin,LOW);
  51. digitalwrite(greenpin,LOW);
  52. }
  53. if (gcolorstrength>bcolorstrength &&gcolorstrength>rcolorstrength){
  54. digitalwrite(redpin,LOW);
  55. digitalwrite(bluepin,LOW);
  56. digitalwrite(greenpin,HIGH);
  57. }
  58. if (bcolorstrength>rcolorstrength &&bcolorstrength>gcolorstrength){
  59. digitalwrite(redpin,LOW);
  60. digitalwrite(bluepin,HIGH);
  61. digitalwrite(greenpin,LOW);
  62. }
  63. delay(250);
  64. }
Explanation:
  • In this article I have explained about displaying RGB color in the Arduinomega2560.
  • It changes when the color is shown near the sensor and reflected in the LED.
  • The color value can be seen in the serial monitor.
  • For red, it will turn ON the red LED color.
  • For blue, it will turn ON the blue LED color.
  • For green, it will turn ON the green LED color.
Output:
Figure 2: Output
Read more articles on Arduino: