
Video
Devre Şeması

Kaynak Kodu
1int ledPins[] = {2, 3, 4, 5, 6, 7};
2int potValue;
3
4void setup() {
5 for(int i = 0; i < 6; i++) {
6 pinMode(ledPins[i], OUTPUT);
7 }
8}
9
10void loop() {
11 for(int i = 0; i < 6; i++) {
12 potValue = analogRead(A0);
13 digitalWrite(ledPins[i], HIGH);
14 delay(potValue);
15 digitalWrite(ledPins[i], LOW);
16 }
17
18 for(int i = 4; i > 0; i--) {
19 potValue = analogRead(A0);
20 digitalWrite(ledPins[i], HIGH);
21 delay(potValue);
22 digitalWrite(ledPins[i], LOW);
23 }
24}Sıkça Sorulanlar
Bu proje öncekilerden neyi farklı öğretiyor?▾
Analog girişi (potansiyometre) çift yönlü döngüyle birleştirir: ışık ileri-geri giderken her adımda potansiyometre okunur ve gecikme anında güncellenir. Sensör değerine göre davranışı değiştirmenin temelidir.
Okunan değer titriyor, nasıl sabitlerim?▾
Analog okumalarda küçük oynamalar normaldir. Birkaç okumanın ortalamasını almak ya da değeri map() ile daha kaba adımlara bölmek (ör. 10 ms'lik adımlar) titremeyi gizler.
Potansiyometre yerine başka bir sensör kullanabilir miyim?▾
Evet. LDR gibi analog çıkış veren her sensör aynı A0 girişine bağlanabilir; örneğin ortam karardıkça ışık daha hızlı yürüyebilir. Sadece okuma aralığını map() ile yeniden ayarlaman gerekir.
Hangi analog pini kullanmalıyım?▾
Uno'da A0–A5 arası pinlerin hepsi analog okuma yapabilir. Kodda kullandığın pin ile devredeki bağlantının aynı olduğundan emin ol; A4 ve A5 I2C için de kullanıldığından ileride ekran eklemeyi düşünüyorsan A0'ı tercih et.
