#define TRIG_PIN 13
#define ECHO_PIN 12
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
Serial.begin(115200);
Serial.println("Hello");
}
float getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH, 20000);
if (duration == 0) return -1;
Serial.print("distance: ");
Serial.println(duration * 0.034/2);
return duration * 0.034 / 2;
}
void loop() {
float distance = getDistance();
int ledsToLight = 0;
if (distance >= 1 && distance <= 9) {
ledsToLight = 10 - floor(distance);
}
Serial.print("ledsToLight:");
Serial.println(ledsToLight);
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], i < ledsToLight ? HIGH : LOW);
}
delay(100);
}