Skip to content

Instantly share code, notes, and snippets.

@splitline
Created September 26, 2017 12:03
Show Gist options
  • Save splitline/1c92cfc37c55bc0451df64ae2f0acd39 to your computer and use it in GitHub Desktop.
Save splitline/1c92cfc37c55bc0451df64ae2f0acd39 to your computer and use it in GitHub Desktop.
#define greenPin 9
#define bluePin 10
#define redPin 11
#define magPIN A1
#define VAL 4
int r = 0;
int g = 0;
int b = 0;
void setColor(int red, int green, int blue) {
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void brighten(char light) {
switch (light)
{
case 'r':
if (r + VAL <= 255) r += VAL;
else r = 255;
break;
case 'g':
if (g + VAL <= 255) g += VAL;
else g = 255;
break;
case 'b':
if (b + VAL <= 255) b += VAL;
else b = 255;
break;
default:
break;
}
}
void darken(char light) {
switch (light)
{
case 'r':
if (r - VAL >= 0) r -= VAL;
else r = 0;
break;
case 'g':
if (g - VAL >= 0) g -= VAL;
else g = 0;
break;
case 'b':
if (b - VAL >= 0) b -= VAL;
else b = 0;
break;
default:
break;
}
}
void setup() {
// pinMode(LED, OUTPUT);
Serial.begin(9600);
Serial.println("--------------------------------------------");
Serial.println("[Team 1] owo)/");
Serial.println("1. B10530027");
Serial.println("2. B10301052");
Serial.println("3. A10502002");
Serial.println("4. A10506001");
Serial.println("--------------------------------------------");
}
void loop() {
int val = analogRead(magPIN);
if (val < 200) setColor(0, 0, 0);
// else setColor(128, 128, 128);
int event;
if (Serial.available() > 0) {
event = Serial.read();
switch (event)
{
case 'R': r = 255; g = 0; b = 0; break;
case 'G': r = 0; g = 255; b = 0; break;
case 'B': r = 0; g = 0; b = 255; break;
case '+':
brighten('r');
brighten('g');
brighten('b');
break;
case '-':
darken('r');
darken('g');
darken('b');
break;
case 'Q':
brighten('r');
break;
case 'A':
darken('r');
break;
case 'W':
brighten('g');
break;
case 'S':
darken('g');
break;
case 'E':
brighten('b');
break;
case 'D':
darken('b');
break;
case '?': Serial.print("RGB="); Serial.print(r); Serial.print(","); Serial.print(g); Serial.print(","); Serial.print(b); break;
case 'h':
Serial.println("--------------------------------------------");
Serial.println("[Help Page]");
Serial.println("+/- : Brighten/Darken all.");
Serial.println("Q/A : Brighten/Darken RED.");
Serial.println("W/S : Brighten/Darken GREEN.");
Serial.println("E/D : Brighten/Darken BLUE.");
Serial.println("R/G/B: Switch light to R/G/B.");
Serial.println("? : Show R,G,B");
Serial.println("--------------------------------------------");
default:
break;
}
setColor(r, g, b);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment