70 lines
1.1 KiB
C++
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);
|
|
}
|