Hey people
I'm trying to get an rgb led to change color depending on how you connect different wires (the ones named silver in code).
const int silver_1 = 4;
const int silver_2 = 7;
const int silver_3 = 8;
const int silver_4 = 9;
const int silver_5 = 10;
const int silver_6 = 11;
const int silver_7 = 12;
const int ledRed = 3;
const int ledBlue = 5;
const int ledGreen = 6;
int silverState_1;
int silverState_2;
int silverState_3;
int silverState_4;
int silverState_5;
int silverState_6;
int silverState_7;
void setup()
{
Serial.begin(9600);
pinMode(ledRed, OUTPUT);
pinMode(ledBlue, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(silver_1, INPUT);
pinMode(silver_2, INPUT);
pinMode(silver_3, INPUT);
pinMode(silver_4, INPUT);
pinMode(silver_5, INPUT);
pinMode(silver_6, INPUT);
pinMode(silver_7, INPUT);
}
void loop ()
{
silverState_1 = digitalRead(silver_1);
silverState_2 = digitalRead(silver_2);
silverState_3 = digitalRead(silver_3);
silverState_4 = digitalRead(silver_4);
silverState_5 = digitalRead(silver_5);
silverState_6 = digitalRead(silver_6);
silverState_7 = digitalRead(silver_7);
if (silverState_1 == HIGH)
{
// Red.
digitalWrite(ledRed, 255);
digitalWrite(ledBlue, 0);
digitalWrite(ledGreen, 0);
}
else if (silverState_2 == HIGH)
{
// Orange.
digitalWrite(ledRed, 255);
digitalWrite(ledBlue, 0);
digitalWrite(ledGreen, 165);
}
else if (silverState_3 == HIGH)
{
// Yellow.
digitalWrite(ledRed, 255);
digitalWrite(ledBlue, 0);
digitalWrite(ledGreen, 255);
}
else if (silverState_4 == HIGH)
{
// Green.
digitalWrite(ledRed, 0);
digitalWrite(ledBlue, 0);
digitalWrite(ledGreen, 128);
}
else if (silverState_5 == HIGH)
{
// Blue.
digitalWrite(ledRed, 0);
digitalWrite(ledBlue, 255);
digitalWrite(ledGreen, 0);
}
else if (silverState_6 == HIGH)
{
// Indigo.
digitalWrite(ledRed, 75);
digitalWrite(ledBlue, 130);
digitalWrite(ledGreen, 0);
}
else if (silverState_7 == HIGH)
{
// Purple.
digitalWrite(ledRed, 128);
digitalWrite(ledBlue, 128);
digitalWrite(ledGreen, 0);
}
else
{
// None (Black).
digitalWrite(ledRed, 0);
digitalWrite(ledBlue, 0);
digitalWrite(ledGreen, 0);
}
}
My problem is that some of the colors such as orange and indigo don't work.
I think that when one of the pins is set to 0 it means that the light is off and when it's set to some other number it's on.
Anyone know of a way to fix it?
Thanks in advance...
Edit:
I am working with the Arduino UNO and the rgb led is a common cathode. If that makes a difference.