potentiometer + 2 RGBs to display same color always (pic and code provided)

/*
I want to make two RGBs to always display the same color when I turn a potentiometer. I am able to turn on both RGBs and display some colors on both RGBs at the same time. However I only see red and blue on one RGB.

*/

int photoresistor = A0;          //variable for storing the photoresistor value
int potentiometer = A1;          //this variable will hold a value based on the position of the knob
int threshold = 700;            //if the photoresistor reading is lower than this value the light will turn on

//LEDs are connected to these pins
int RedPin = 9;
int GreenPin = 10;
int BluePin = 11;

int RedPin1 = 4;
int GreenPin1 = 5;
int BluePin1 = 6;

void setup() {
Serial.begin(9600);           //start a serial connection with the computer

//set the LED pins to output
pinMode(RedPin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);

pinMode(RedPin1, OUTPUT);
pinMode(GreenPin1, OUTPUT);
pinMode(BluePin1, OUTPUT);
}

void loop() {

photoresistor = analogRead(A0);         //read the value of the photoresistor
potentiometer = analogRead(A1);

Serial.print("Photoresistor value:");
Serial.print(photoresistor);          //print the photoresistor value to the serial monitor
Serial.print("  Potentiometer value:");
Serial.println(potentiometer);          //print the potentiometer value to the serial monitor

if (photoresistor < threshold) {        //if it's dark (the photoresistor value is below the threshold) turn the LED on
//These nested if statements check for a variety of ranges and
//call different functions based on the current potentiometer value.
//Those functions are found at the bottom of the sketch.
if (potentiometer > 0 && potentiometer <= 150)
  red();
if (potentiometer > 150 && potentiometer <= 300)
  orange();
if (potentiometer > 300 && potentiometer <= 450)
  yellow();
if (potentiometer > 450 && potentiometer <= 600)
  green();
if (potentiometer > 600 && potentiometer <= 750)
  cyan();
if (potentiometer > 750 && potentiometer <= 900)
  blue();
if (potentiometer > 900)
  magenta();
}
else {                                //if it isn't dark turn the LED off

turnOff();                            //call the turn off function

}

delay(100);                             //short delay so that the printout is easier to read
}

void red () {

//set the LED pins to values that make red
analogWrite(RedPin, 100);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0);

analogWrite(RedPin1, 100);
analogWrite(GreenPin1, 0);
analogWrite(BluePin1, 0);
}
void orange () {

//set the LED pins to values that make orange
analogWrite(RedPin, 100);
analogWrite(GreenPin, 50);
analogWrite(BluePin, 0);

analogWrite(RedPin1, 100);
analogWrite(GreenPin1, 50);
analogWrite(BluePin1, 0);
}
void yellow () {

//set the LED pins to values that make yellow
analogWrite(RedPin, 100);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 0);

analogWrite(RedPin1, 100);
analogWrite(GreenPin1, 100);
analogWrite(BluePin1, 0);
}
void green () {

//set the LED pins to values that make green
analogWrite(RedPin, 0);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 0);

analogWrite(RedPin1, 0);
analogWrite(GreenPin1, 100);
analogWrite(BluePin1, 0);
}
void cyan () {

//set the LED pins to values that make cyan
analogWrite(RedPin, 0);
analogWrite(GreenPin, 100);
analogWrite(BluePin, 100);

analogWrite(RedPin1, 0);
analogWrite(GreenPin1, 100);
analogWrite(BluePin1, 100);
}
void blue () {

//set the LED pins to values that make blue
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 100);

analogWrite(RedPin1, 0);
analogWrite(GreenPin1, 0);
analogWrite(BluePin1, 100);
}
void magenta () {

//set the LED pins to values that make magenta
analogWrite(RedPin, 100);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 100);

analogWrite(RedPin1, 100);
analogWrite(GreenPin1, 0);
analogWrite(BluePin1, 100);
}
void turnOff () {

//set all three LED pins to 0 or OFF
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0);

analogWrite(RedPin1, 0);
analogWrite(GreenPin1, 0);
analogWrite(BluePin1, 0);
}

Please read the forum guide in the sticky post to find out how to post code and then modify your post above and correct it.

Pin 4 cannot work with analogWrite() on Uno/Nano. Try pin 3 instead.

All the pins that can work as a PWM pin have the symbol ~ in front of the pin number on the board. See how pin 4 doesn’t have this where as pin 3 does.

Thank you! This worked! :slight_smile:

acobi001:
Thank you! This worked! :slight_smile:

Great!

Reminder: fix that post!