/* HC-SR04 Ping distance sensor] VCC to arduino 5v GND to arduino GND Echo to Arduino pin 13 Trig to Arduino pin 12 Red POS to Arduino pin 11 Green POS to Arduino pin 10 560 ohm resistor to both LED NEG and GRD power rail More info at: http://goo.gl/kJ8Gl Original code improvements to the Ping sketch sourced from Trollmaker.com Some code and wiring inspired by http://en.wikiversity.org/wiki/User:Dstaub/robotcar */ #define trigPin 13 #define echoPin 12 #define led 2 #define led2 3 #define led3 4 #define led4 5 #define led5 6 #define led6 7 #define led7 8 #define led8 9 #define led9 10 // defining all the leds void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, 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); //defining the leds as outputs } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 3) { digitalWrite(led,HIGH); // if distance is closer than 3 cm, all the leds will shine digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); digitalWrite(led8,HIGH); digitalWrite(led9,HIGH); } else if(distance < 6) { // if distance is closer than 6 cm, all the leds will shine except one digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); digitalWrite(led8,HIGH); digitalWrite(led9,LOW); } else if(distance < 9) { // if distance is closer than 9 cm, all the leds will shine except two digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 12) { // if distance is closer than 12 cm, all the leds will shine except three digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 15) { //if distance is closer than 15 cm, all the leds will shine except four digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 18) { // if distance is closer than 18 cm, all the leds will shine except five digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,LOW); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 21) { // if distance is closer than 21 cm, all the leds will shine except six digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,LOW); digitalWrite(led5,LOW); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 24) { // if distance is closer than 24 cm, all the leds will shine except seven digitalWrite(led,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,LOW); digitalWrite(led4,LOW); digitalWrite(led5,LOW); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else if(distance < 27) { //if distance is closer than 27 cm, all the leds will shine except eight digitalWrite(led,HIGH); digitalWrite(led2,LOW); digitalWrite(led3,LOW); digitalWrite(led4,LOW); digitalWrite(led5,LOW); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); digitalWrite(led9,LOW); } else { Serial.print(distance); //print the distance in serial monitor Serial.println(" cm"); } delay(100); }