//Tristan Romanov 2015
#define SONAR_TRIGGER_PIN 2
#define SONAR_ECHO_PIN 3
const int ledPin5 = 13;
const int ledPin10 = 12;
const int ledPin15 = 11;
const int ledPin20 = 10;
const int ledPin25 = 9;
const int ledPin30 = 8;
const int ledPin35 = 7;
const int ledPin40 = 6;
const int ledPin45 = 5;
const int ledPin50 = 4;
unsigned int measure_distance()
{
// Trigger the SRF05:
digitalWrite(SONAR_TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(SONAR_TRIGGER_PIN, LOW);
unsigned long pulse_length = pulseIn(SONAR_ECHO_PIN, HIGH);
delay(50);
// Convert Pulse to Distance (inches)
// pulse_length/58 = cm or pulse_length/148 = inches
return( (unsigned int) (pulse_length / 58) );
}
void setup()
{
pinMode(SONAR_TRIGGER_PIN, OUTPUT);
pinMode(SONAR_ECHO_PIN, INPUT);
Serial.begin(9600);
Serial.println("distance in cm");
pinMode(ledPin5, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin15, OUTPUT);
pinMode(ledPin20, OUTPUT);
pinMode(ledPin25, OUTPUT);
pinMode(ledPin30, OUTPUT);
pinMode(ledPin35, OUTPUT);
pinMode(ledPin40, OUTPUT);
pinMode(ledPin45, OUTPUT);
pinMode(ledPin50, OUTPUT);
}
void loop()
{
unsigned int current_distance = measure_distance();
Serial.println(current_distance);
delay(125);
if (current_distance > 4.99) {
digitalWrite(ledPin5, HIGH);
} else {
digitalWrite(ledPin5, LOW);
}
if (current_distance > 9.99) {
digitalWrite(ledPin10, HIGH);
} else {
digitalWrite(ledPin10, LOW);
}
if (current_distance > 14.99) {
digitalWrite(ledPin15, HIGH);
} else {
digitalWrite(ledPin15, LOW);
}
if (current_distance > 19.99) {
digitalWrite(ledPin20, HIGH);
} else {
digitalWrite(ledPin20, LOW);
}
if (current_distance > 24.99) {
digitalWrite(ledPin25, HIGH);
} else {
digitalWrite(ledPin25, LOW);
}
if (current_distance > 29.99) {
digitalWrite(ledPin30, HIGH);
} else {
digitalWrite(ledPin30, LOW);
}
if (current_distance > 34.99) {
digitalWrite(ledPin35, HIGH);
} else {
digitalWrite(ledPin35, LOW);
}
if (current_distance > 39.99) {
digitalWrite(ledPin40, HIGH);
} else {
digitalWrite(ledPin40, LOW);
}
if (current_distance > 44.99) {
digitalWrite(ledPin45, HIGH);
} else {
digitalWrite(ledPin45, LOW);
}
if (current_distance > 49.99) {
digitalWrite(ledPin50, HIGH);
} else {
digitalWrite(ledPin50, LOW);
}
}
Your sketch is at least twice as long as it should be.
Unless you're being paid per line, this is not a good thing.
Comparing "int"s to floating point values is also not a good thing.
Why are all the pin numbers declared as ints when they will will never be larger than 255 so could be bytes which would save memory.
Why not put the distances and pin numbers in arrays and loop through it to save all that repetitive code ?