I'm making Arduino Parking Sensor and now I ran into a problem.

Hi, I got a school project and messed something up real bad... So I need help with fixing it... basically, it's a parking sensor and it works with HC-SR04, LCD, 10 LEDs and buzzer. First, I had a problem with buzzer code but the rest worked fine, I couldn't use the normal Tone command with NewPing library, but as I placed the object closer, LEDs were turning ON one by one, and getting further away the turned OFF one by one... And now I managed to find another library for Tone called TimerFreeTone, but now where ever I stand program will just repeat it self... LED will be turning ON one by one, and then all turn OFF, and repeating that, and distance measures only when the program starts repeating... here is the code and I would need help ASAP, thank you in advance.

#include <LiquidCrystal.h>
#include <TimerFreeTone.h>
#include <NewPing.h>
LiquidCrystal lcd(51,49,47,45,43,41); //Creating object
#define ECHO_PIN 37 //Defining pins
#define TRIG_PIN 35
#define MAX_DIST 1000
int contrast = 100; //Defining contrast
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DIST); //Defining newping object (The HC-SR04)
void setup() { //Setup

lcd.begin(16,2); //Change this to the size of your LCD, my happens to be 16x2
lcd.clear(); //Clear screen
pinMode(22, INPUT);
pinMode(24, INPUT);
pinMode(26, INPUT);
pinMode(12, OUTPUT);

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);

pinMode(53, OUTPUT); //Setting contrast pin 2 to an output

analogWrite(53, contrast); //Setting contrast
}
void loop() {
unsigned int bcm = sonar.ping_cm(); // Ping in cm
lcd.clear(); //Clearing screen
lcd.setCursor(2,0); //Setting cursor
lcd.print("Distance:"); //Printing text
lcd.setCursor(2,1);
lcd.print(" ");
lcd.print(bcm);
lcd.print(" cm");
lcd.setCursor(1,0);
delay(500); //Change this to the update time you want, I just used 1000 ms
if(bcm>200){
digitalWrite(11, 0);
digitalWrite(10, 0);
digitalWrite(9, 0);
digitalWrite(8, 0);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
}
if(180<bcm<200){
digitalWrite(11, 5);
digitalWrite(10, 0);
digitalWrite(9, 0);
digitalWrite(8, 0);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);

TimerFreeTone(12, 1000, 400);
TimerFreeTone(12, 0, 1500);
}
if(160<bcm<180){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 0);
digitalWrite(8, 0);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 400);
TimerFreeTone(12, 0, 1200);
}
if(140<bcm<160){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 0);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 400);
TimerFreeTone(12, 0, 1000);
};
if(120<bcm<140){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 400);
TimerFreeTone(12, 0, 800);
}
if(100<bcm<120){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 400);
TimerFreeTone(12, 0, 600);
}
if(80<bcm<100){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 600);
TimerFreeTone(12, 0, 1500);
}
if(60<bcm<80){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 5);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 600);
TimerFreeTone(12, 0, 1200);
}
if(40<bcm<60){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 5);
digitalWrite(4, 5);
digitalWrite(3, 0);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 600);
TimerFreeTone(12, 0, 1000);
}
if(20<bcm<40){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 5);
digitalWrite(4, 5);
digitalWrite(3, 5);
digitalWrite(2, 0);
TimerFreeTone(12, 1000, 600);
TimerFreeTone(12, 0, 800);
}
if(5<bcm<20){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 5);
digitalWrite(4, 5);
digitalWrite(3, 5);
digitalWrite(2, 5);
TimerFreeTone(12, 1000, 600);
TimerFreeTone(12, 0, 600);
}
if(bcm<5){
digitalWrite(11, 5);
digitalWrite(10, 5);
digitalWrite(9, 5);
digitalWrite(8, 5);
digitalWrite(7, 5);
digitalWrite(6, 5);
digitalWrite(5, 5);
digitalWrite(4, 5);
digitalWrite(3, 5);
digitalWrite(2, 5);
delay(50);
digitalWrite(11, 0);
digitalWrite(10, 0);
digitalWrite(9, 0);
digitalWrite(8, 0);
digitalWrite(7, 0);
digitalWrite(6, 0);
digitalWrite(5, 0);
digitalWrite(4, 0);
digitalWrite(3, 0);
digitalWrite(2, 0);
delay(50);
TimerFreeTone(12, 1000, 100); //pin, freq, delay
TimerFreeTone(12, 0, 100);
}
}

  if(20<bcm<40){etc.

How's that working for you?

(You would have found this out if you'd have added your own debug prints)