//Declaring pins for 7 Segment Display int g = 13; int f = 12; int a = 8; int b = 7; int c = 6; int d = 5; int e = 2; //Declaring pins for RGB int redPin = 11; int greenPin = 10; int bluePin = 9; //Pin number for sensor const int pingPin = 3; void setup() { pinMode(redPin, OUTPUT); pinMode(bluePin, OUTPUT); pinMode(greenPin, OUTPUT); Serial.begin(9600); pinMode(g, OUTPUT); pinMode(f, OUTPUT); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); } void loop() { // in inches: long duration, inches; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); // convert time into a distance inches = microsecondsToInches(duration); //If statements for each condition if(inches >= 100){ setColor(0,128,0);//Green //Represents the number 3 when the inches are greater or equal to 100 digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(g,LOW); digitalWrite(c,LOW); digitalWrite(f,HIGH); digitalWrite(d,LOW); digitalWrite(e,HIGH); } if(inches < 100){ setColor(255,255,0);//yellow //This code represents the number 2 digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(g,LOW); digitalWrite(c,HIGH); digitalWrite(f,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); } if(inches < 50){ setColor(255,0,0);//Red //This code represents the number 1 digitalWrite(a,HIGH); digitalWrite(b,LOW); digitalWrite(g,HIGH); digitalWrite(c,LOW); digitalWrite(f,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); } //Prints inches Serial.print(inches); Serial.print("in, "); delay(100); } long microsecondsToInches(long microseconds) { return microseconds / 74 / 2; } //This code lets me turn the RGB into different colours void setColor(int red, int blue, int green) { analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); }