int leds[] = {8, 9, 10, 11, 12, 13};
int numLEDs = 6;
int trigPin = 3;//الدبوس المستخخدم لارسال النبضات
int echoPin = 2;// الدبوس المستخدم لاستقبال النبضات الصوتية المرتدة.
long duration; //تخزين مدة النبضة المرتدة.
int distance; //لتخزين المسافة المحسوبة.
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
for (int i = 0; i < numLEDs; i++) {
pinMode(leds[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 6;
//0.034: سرعة الصوت بالسنتيمتر/ميكروثانية.
//القسمة على 2 لأن النبضة تقطع المسافة ذهابًا وإيابًا.
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
int activeLEDs = map(distance, 0, 100, 0, numLEDs);
for (int i = 0; i < numLEDs; i++) {
if (i < activeLEDs) {
digitalWrite(leds[i], HIGH);
} else {
digitalWrite(leds[i], LOW);
}
}
delay(100);
}