Classes/Fall 2024/csci218/Labs/Lab11/RGB_LED2/RGB_LED2.ino

70 lines
1.1 KiB
C++

// Define Pins & Delay
#define BLUE 4
#define GREEN 5
#define RED 6
// define global variables
int redValue;
int greenValue;
int blueValue;
int redDir = -1;
int greenDir = 1;
int blueDir = 0;
int de = 10;
int potPin = A0;
int potValue;
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() {
potValue = analogRead(potPin);
de = 1 + ((99.9 / 1023) * potValue);
Serial.println(de);
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(de);
}