Classes/Fall 2024/csci218/Labs/Lab10/RGB_LED/RGB_LED.ino

61 lines
954 B
C++

// Define Pins & Delay
#define BLUE 4
#define GREEN 5
#define RED 6
#define DELAY 10
// define global variables
int redValue;
int greenValue;
int blueValue;
int redDir = -1;
int greenDir = 1;
int blueDir = 0;
void setup() {
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
redValue = 0;
greenValue = 0;
blueValue = 255;
analogWrite(RED, redValue);
analogWrite(GREEN, greenValue);
analogWrite(BLUE, blueValue);
Serial.begin(9600);
}
// main loop
void loop() {
if (redValue == 255) {
redDir = -1;
greenDir = 1;
blueDir = 0;
} else if (greenValue == 255) {
redDir = 0;
greenDir = -1;
blueDir = 1;
} else if (blueValue == 255) {
redDir = 1;
greenDir = 0;
blueDir = -1;
}
redValue += redDir;
greenValue += greenDir;
blueValue += blueDir;
analogWrite(RED, redValue);
analogWrite(GREEN, greenValue);
analogWrite(BLUE, blueValue);
delay(DELAY);
}