Last active
April 10, 2020 13:33
-
-
Save EDISON-SCIENCE-CORNER/21120afc34625a56bee7e451ec842c60 to your computer and use it in GitHub Desktop.
colour changing chemelon
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// EDISON SCIENCE CORNER // | |
// EDISON SCIENCE CORNER // | |
// EDISON SCIENCE CORNER // | |
// EDISON SCIENCE CORNER // | |
const int s0 = 8; | |
const int s1 = 9; | |
const int s2 = 12; | |
const int s3 = 11; | |
const int out = 10; | |
// LED pins connected to Arduino | |
int redLed = 2; | |
int greenLed = 3; | |
int blueLed = 4; | |
// Variables | |
int red = 0; | |
int green = 0; | |
int blue = 0; | |
void setup() | |
{ | |
Serial.begin(9600); | |
pinMode(s0, OUTPUT); | |
pinMode(s1, OUTPUT); | |
pinMode(s2, OUTPUT); | |
pinMode(s3, OUTPUT); | |
pinMode(out, INPUT); | |
pinMode(redLed, OUTPUT); | |
pinMode(greenLed, OUTPUT); | |
pinMode(blueLed, OUTPUT); | |
digitalWrite(s0, HIGH); | |
digitalWrite(s1, HIGH); | |
} | |
void loop() | |
{ | |
color(); | |
Serial.print("Red:"); | |
Serial.print(red, DEC); | |
Serial.print(" Greeen: "); | |
Serial.print(green, DEC); | |
Serial.print(" Blue : "); | |
Serial.print(blue, DEC); | |
Serial.println(); | |
if ((red < blue&&green)&&(red<30) ) | |
{ | |
Serial.println(" - (Red Color)"); | |
digitalWrite(redLed, HIGH); // Turn RED LED ON | |
digitalWrite(greenLed, LOW); | |
digitalWrite(blueLed, LOW); | |
} | |
if ((blue <red&&green)&&(blue<30)) | |
{ | |
Serial.println(" - (Blue Color)"); | |
digitalWrite(redLed, LOW); | |
digitalWrite(greenLed, LOW); | |
digitalWrite(blueLed, HIGH); // Turn BLUE LED ON | |
} | |
if ((red<10)&&(green&&blue<20)) | |
{ | |
Serial.println(" - (yelllow Color)"); | |
digitalWrite(redLed, HIGH); | |
digitalWrite(greenLed,HIGH); | |
digitalWrite(blueLed,LOW); // Turn YELLOW LED ON | |
} | |
if ((green<red&&blue)&&(green<30)) | |
{ | |
Serial.println(" - (Green Color)"); | |
digitalWrite(redLed, LOW); | |
digitalWrite(greenLed, HIGH); // Turn GREEN LED ON | |
digitalWrite(blueLed, LOW); | |
} | |
if (red&&green&&blue>50){ | |
Serial.println("no colour"); | |
} | |
delay(300); | |
digitalWrite(redLed, LOW); | |
digitalWrite(greenLed, LOW); | |
digitalWrite(blueLed, LOW); | |
} | |
void color() | |
{ | |
digitalWrite(s2, LOW); | |
digitalWrite(s3, LOW); | |
//count OUT, pRed, RED | |
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); | |
digitalWrite(s3, HIGH); | |
//count OUT, pBLUE, BLUE | |
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); | |
digitalWrite(s2, HIGH); | |
//count OUT, pGreen, GREEN | |
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment