Created
February 11, 2017 04:02
-
-
Save caevyn/ddf43adb68b3a138a34f3b4995e30190 to your computer and use it in GitHub Desktop.
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
#include <NewPing.h> | |
const int greenPin = 2; | |
const int redPin = 4; | |
const int bluePin = 3; | |
const int trigPin = 11; | |
const int echoPin = 12; | |
enum color { | |
red, | |
green, | |
blue, | |
aqua, | |
purple, | |
yellow, | |
white, | |
off | |
}; | |
NewPing sonar(trigPin, echoPin, 200); | |
// the setup function runs once when you press reset or power the board | |
void setup() { | |
// initialize digital pin LED_BUILTIN as an output. | |
pinMode(LED_BUILTIN, OUTPUT); | |
pinMode(greenPin, OUTPUT); | |
pinMode(redPin, OUTPUT); | |
pinMode(bluePin, OUTPUT); | |
Serial.begin(9600); | |
Serial.println("Hello world"); | |
} | |
// the loop function runs over and over again forever | |
void loop() { | |
delay(50); | |
unsigned long median = sonar.ping_median(5); | |
unsigned int distance = sonar.convert_cm(median); | |
Serial.println(distance); | |
if (distance > 70) | |
{ | |
setColor(off); | |
} | |
else if (distance >= 60){ | |
setColor(white); | |
} | |
else if (distance >= 50){ | |
setColor(aqua); | |
} | |
else if (distance >= 40){ | |
setColor(blue); | |
} | |
else if (distance >= 30){ | |
setColor(green); | |
} | |
else if (distance >= 20){ | |
setColor(purple); | |
} | |
else if (distance >= 10){ | |
setColor(yellow); | |
} | |
else if (distance >= 1){ | |
setColor(red); | |
} | |
else{ | |
setColor(off); | |
} | |
} | |
void setColor(color c){ | |
switch (c) { | |
case red: | |
digitalWrite(bluePin, LOW); | |
digitalWrite(redPin, HIGH); | |
digitalWrite(greenPin, LOW); | |
break; | |
case blue: | |
digitalWrite(bluePin, HIGH); | |
digitalWrite(redPin, LOW); | |
digitalWrite(greenPin, LOW); | |
break; | |
case green: | |
digitalWrite(bluePin, LOW); | |
digitalWrite(redPin, LOW); | |
digitalWrite(greenPin, HIGH); | |
break; | |
case off: | |
digitalWrite(bluePin, LOW); | |
digitalWrite(redPin, LOW); | |
digitalWrite(greenPin, LOW); | |
break; | |
case aqua: | |
digitalWrite(bluePin, HIGH); | |
digitalWrite(redPin, LOW); | |
digitalWrite(greenPin, HIGH); | |
break; | |
case purple: | |
digitalWrite(bluePin, HIGH); | |
digitalWrite(redPin, HIGH); | |
digitalWrite(greenPin, LOW); | |
break; | |
case yellow: | |
digitalWrite(bluePin, LOW); | |
digitalWrite(redPin, HIGH); | |
digitalWrite(greenPin, HIGH); | |
break; | |
case white: | |
digitalWrite(bluePin, HIGH); | |
digitalWrite(redPin, HIGH); | |
digitalWrite(greenPin, HIGH); | |
break; | |
default: | |
digitalWrite(bluePin, LOW); | |
digitalWrite(redPin, LOW); | |
digitalWrite(greenPin, LOW); | |
break; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment