Thats the code:
int sensorPin = 0; // input pin for the sensor
int bar1 = 2; // select the pin for the LED
int bar2 = 3;
int bar3 = 4;
int bar4 = 5;
int bar5 = 6;
int bar6 = 7;
int bar7 = 8;
int bar8 = 9;
int bar9 = 10;
int bar10 = 11;
int volt = 0; // variable to store the value coming from the sensor
int zeit = 10; // *10 = Gesamtzeit - total time
void setup() {
// Serial.begin(9600);
pinMode(bar1, OUTPUT);
pinMode(bar2, OUTPUT);
pinMode(bar3, OUTPUT);
pinMode(bar4, OUTPUT);
pinMode(bar5, OUTPUT);
pinMode(bar6, OUTPUT);
pinMode(bar7, OUTPUT);
pinMode(bar8, OUTPUT);
pinMode(bar9, OUTPUT);
pinMode(bar10, OUTPUT);
}
void loop() {
volt = analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
delay(zeit);
volt = volt + analogRead(sensorPin);
volt = volt / 9;
// Serial.println(volt);
if (volt <= 82) {
// >= 80cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, LOW);
digitalWrite(bar3, LOW);
digitalWrite(bar4, LOW);
digitalWrite(bar5, LOW);
digitalWrite(bar6, LOW);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 92) {
// >= 70cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, LOW);
digitalWrite(bar4, LOW);
digitalWrite(bar5, LOW);
digitalWrite(bar6, LOW);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 102) {
// >= 60cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, LOW);
digitalWrite(bar5, LOW);
digitalWrite(bar6, LOW);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 123) {
// >= 50cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, LOW);
digitalWrite(bar6, LOW);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 154) {
// >= 40cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, LOW);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 184) {
// >= 30cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, HIGH);
digitalWrite(bar7, LOW);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 266) {
// >= 20cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, HIGH);
digitalWrite(bar7, HIGH);
digitalWrite(bar8, LOW);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 328) {
// >= 15cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, HIGH);
digitalWrite(bar7, HIGH);
digitalWrite(bar8, HIGH);
digitalWrite(bar9, LOW);
digitalWrite(bar10, LOW);
} else if (volt <= 461) {
// >= 10cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, HIGH);
digitalWrite(bar7, HIGH);
digitalWrite(bar8, HIGH);
digitalWrite(bar9, HIGH);
digitalWrite(bar10, LOW);
} else if (volt > 461) {
// < 10cm
digitalWrite(bar1, HIGH);
digitalWrite(bar2, HIGH);
digitalWrite(bar3, HIGH);
digitalWrite(bar4, HIGH);
digitalWrite(bar5, HIGH);
digitalWrite(bar6, HIGH);
digitalWrite(bar7, HIGH);
digitalWrite(bar8, HIGH);
digitalWrite(bar9, HIGH);
digitalWrite(bar10, HIGH);
}
delay(zeit);
}
The average is for minimizing spikes.
SJB