Ok this is my 1st attempt with my limited knowledge.
/* Goal is to create level indecator lights for an elevator. When truned on all levels are yellow.
* When a level is selected the light turns red while others remain yellow. Using three seperate RGBW strips,
* three buttons and an Arduino Due.
*/
// list of the three rgbw led srips and three buttons
// first strip (level 1)
const int ledPin_Red = 2;
const int ledPin_Green = 3;
const int ledPin_Blue = 4;
const int ledPin_White = 5;
// second strip (level 2)
const int ledPin_Red_2 = 6;
const int ledPin_Green_2 = 7;
const int ledPin_Blue_2 = 8;
const int ledPin_White_2 = 9;
// thrid strip (level 3)
const int ledPin_Red_3 = 10;
const int ledPin_Green_3 = 11;
const int ledPin_Blue_3 = 12;
const int ledPin_White_3 = 13;
// levels
const int buttonPin_1 = 22;
const int buttonPin_2 = 23;
const int buttonPin_3 = 24;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin_Red, OUTPUT);
pinMode(ledPin_Green, OUTPUT);
pinMode(ledPin_Blue, OUTPUT);
pinMode(ledPin_White, OUTPUT);
pinMode(ledPin_Red_2, OUTPUT);
pinMode(ledPin_Green_2, OUTPUT);
pinMode(ledPin_Blue_2, OUTPUT);
pinMode(ledPin_White_2, OUTPUT);
pinMode(ledPin_Red_3, OUTPUT);
pinMode(ledPin_Green_3, OUTPUT);
pinMode(ledPin_Blue_3, OUTPUT);
pinMode(ledPin_White_3, OUTPUT);
pinMode(buttonPin_1, INPUT_PULLUP);
pinMode(buttonPin_2, INPUT_PULLUP);
pinMode(buttonPin_3, INPUT_PULLUP);
}
void loop() {
// each led strip will start as yellow at half brightness
// level 1
analogWrite (ledPin_Red, 128);
analogWrite (ledPin_Green, 128);
analogWrite (ledPin_Blue, 0);
analogWrite (ledPin_White, 0);
// level 2
analogWrite (ledPin_Red_2, 128);
analogWrite (ledPin_Green_2, 128);
analogWrite (ledPin_Blue_2, 0);
analogWrite (ledPin_White_2, 0);
// level 3
analogWrite (ledPin_Red_3, 128);
analogWrite (ledPin_Green_3, 128);
analogWrite (ledPin_Blue_3, 0);
analogWrite (ledPin_White_3, 0);
// when button representing a level is pressed it turns red
// all other levels go to yellow
if (buttonPin_1 == LOW) {
// input_pullup on
// level one turns red others turn yellow
// level 1
analogWrite (ledPin_Red, 255);
analogWrite (ledPin_Green, 0);
analogWrite (ledPin_Blue, 0);
analogWrite (ledPin_White, 0);
// level 2
analogWrite (ledPin_Red_2, 128);
analogWrite (ledPin_Green_2, 128);
analogWrite (ledPin_Blue_2, 0);
analogWrite (ledPin_White_2, 0);
// level 3
analogWrite (ledPin_Red_3, 128);
analogWrite (ledPin_Green_3, 128);
analogWrite (ledPin_Blue_3, 0);
analogWrite (ledPin_White_3, 0);
}
if (buttonPin_2 == LOW) {
// input_pullup on
// level two turns red others turn yellow
// level 1
analogWrite (ledPin_Red, 128);
analogWrite (ledPin_Green, 128);
analogWrite (ledPin_Blue, 0);
analogWrite (ledPin_White, 0);
// level 2
analogWrite (ledPin_Red_2, 255);
analogWrite (ledPin_Green_2, 0);
analogWrite (ledPin_Blue_2, 0);
analogWrite (ledPin_White_2, 0);
// level 3
analogWrite (ledPin_Red_3, 128);
analogWrite (ledPin_Green_3, 128);
analogWrite (ledPin_Blue_3, 0);
analogWrite (ledPin_White_3, 0);
}
if (buttonPin_3 == LOW) {
// input_pullup on
// level two turns red others turn yellow
// level 1
analogWrite (ledPin_Red, 128);
analogWrite (ledPin_Green, 128);
analogWrite (ledPin_Blue, 0);
analogWrite (ledPin_White, 0);
// level 2
analogWrite (ledPin_Red_2, 128);
analogWrite (ledPin_Green_2, 128);
analogWrite (ledPin_Blue_2, 0);
analogWrite (ledPin_White_2, 0);
// level 3
analogWrite (ledPin_Red_3, 255);
analogWrite (ledPin_Green_3, 0);
analogWrite (ledPin_Blue_3, 0);
analogWrite (ledPin_White_3, 0);
}
}