Page 2

#define TRIG_PIN A1
#define ECHO_PIN A0

int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
int numLeds = 9;

void setup() {
  Serial.begin(9600);

  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  long duration, distance;
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration = pulseIn(ECHO_PIN, HIGH);
  distance = (duration / 2) / 29.1;

  float distanceInInches = distance / 2.54;

  Serial.print("Distance: ");
  Serial.print(distanceInInches);
  Serial.println(" inches");

  int ledsToLight = (int)distanceInInches;
  ledsToLight = constrain(ledsToLight, 0, numLeds);

  for (int i = 0; i < numLeds; i++) {
    if (i < ledsToLight) {
      digitalWrite(ledPins[i], HIGH);
    } else {
      digitalWrite(ledPins[i], LOW);
    }
  }

  delay(100);
}

Last updated