#define trigPin 3
#define echoPin 2
#define led1 4
#define led2 5
#define led3 6
#define led4 7
#define led5 8
#define led6 9
#define led7 10
#define led8 11
#define led9 12
#define led10 13
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration / 58;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" inches");
if (distance == 10) {
blinkLed();
} else if (distance == 8) {
collideLed();
} else if (distance == 6) {
leftToRightLed();
} else if (distance == 4) {
rightToLeftLed();
} else if (distance == 2) {
fadingLed();
} else {
clearLeds();
}
}
void blinkLed() {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led10, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
delay(500);
}
void collideLed() {
digitalWrite(led1, HIGH);
digitalWrite(led10, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led10, LOW);
delay(1000);
}
void leftToRightLed() {
digitalWrite(led1,HIGH);
delay(100);
digitalWrite(led2,HIGH);
delay(100);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led4,HIGH);
delay(100);
digitalWrite(led5,HIGH);
delay(100);
digitalWrite(led6,HIGH);
delay(100);
digitalWrite(led7,HIGH);
delay(100);
digitalWrite(led8,HIGH);
delay(100);
digitalWrite(led9,HIGH);
delay(100);
digitalWrite(led10,HIGH);
}
void rightToLeftLed() {
digitalWrite(led10,HIGH);
delay(100);
digitalWrite(led9,HIGH);
delay(100);
digitalWrite(led8,HIGH);
delay(100);
digitalWrite(led7,HIGH);
delay(100);
digitalWrite(led6,HIGH);
delay(100);
digitalWrite(led5,HIGH);
delay(100);
digitalWrite(led4,HIGH);
delay(100);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led2,HIGH);
delay(100);
digitalWrite(led1,HIGH);
}
void fadingLed() {
for(int a = 0; a<3 ; a++){
for(int fadeValue = 0; fadeValue <= 255; fadeValue += 5){
digitalWrite(A0, fadeValue);
digitalWrite(A1, fadeValue);
analogWrite(11, fadeValue);
analogWrite(10, fadeValue);
analogWrite(9, fadeValue);
digitalWrite(A2, fadeValue);
digitalWrite(A3, fadeValue);
analogWrite(6, fadeValue);
analogWrite(5, fadeValue);
analogWrite(3, fadeValue);
delay(30);
}
}
for(int fadeValue = 255; fadeValue >= 0; fadeValue -= 5){
digitalWrite(A0, fadeValue);
digitalWrite(A1, fadeValue);
analogWrite(11, fadeValue);
analogWrite(10, fadeValue);
analogWrite(9, fadeValue);
digitalWrite(A2, fadeValue);
digitalWrite(A3, fadeValue);
analogWrite(6, fadeValue);
analogWrite(5, fadeValue);
analogWrite(3, fadeValue);
delay(30);
}
}
void clearLeds() {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
delay(500);
}