Potansiyometre ile Yürüyen Işık

Proje Amacı:

  • 5 LED’den oluşan yürüyen ışık yapacağız.
  • Potansiyometreyi çevirerek ışığın yürüme hızını artırıp azaltacağız.

Bu projede 5 tane LED ışık var. Işıklar sırayla yanıyor ve sönüyor. Potansiyometreyi çevirerek bu ışıkların yanma hızını değiştirebiliyoruz. Bu da tıpkı bir ışık gösterisi gibi oluyor!


Gerekli Malzemeler (Tinkercad için):

  • Arduino Uno
  • 5 x LED
  • 5 x 220 ohm direnç
  • 1 x Potansiyometre
  • Breadboard
  • Bağlantı kabloları

Tinkercad Simülasyonu

Simulate diyerek potansiyometreyi çevir ve LEDlerin hızını test et.

Tinkercad’a gir, yeni bir Circuits projesi oluştur.

Aşağıdaki bağlantıları yap.

Kod kısmına gidip “Blocks + Text” moduna geç, doğrudan metin kodunu yapıştır.

Devre Bağlantısı

Potansiyometre:

  • Sol bacak → 5V
  • Sağ bacak → GND
  • Orta bacak → A0 (Analog giriş)

LED’ler:

  • LED1 (uzun bacak) → Pin 4
  • LED2 → Pin 5
  • LED3 → Pin 6
  • LED4 → Pin 7
  • LED5 → Pin 8
  • Tüm kısa bacaklar → 220Ω direnç → GND

Tinkercad kodu


MBlock Kodu

Arduino Kodu

int isik = 0;

void setup()
{
pinMode(A0, INPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}

void loop()
{
isik = analogRead(A0);
if (isik > 800 && isik < 1000) { digitalWrite(4, HIGH); } if (isik > 600 && isik < 800) { digitalWrite(5, HIGH); } if (isik > 600 && isik < 400) { digitalWrite(6, HIGH); } if (isik > 400 && isik < 200) { digitalWrite(7, HIGH); } if (isik > 150 && isik < 200) { digitalWrite(8, HIGH); } if (isik > 100 || isik < 150) {
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}

Arduino Kodu

int ledPin[] = { 4, 5, 6, 7, 8}; // LED pinleri
int potPin = A0; // Potansiyometre A0'da
int delaySure = 0;

void setup() {
for (int i = 0; i < 5; i++) {
pinMode(ledPin[i], OUTPUT);
}
}

void loop() {
int potDeger = analogRead(potPin); // 0-1023
delaySure = map(potDeger, 0, 1023, 50, 1000); // 50 ms ile 1000 ms arası hız

// LED'leri sırayla yak
for (int i = 0; i < 5; i++) {
digitalWrite(ledPin[i], HIGH);
delay(delaySure);
digitalWrite(ledPin[i], LOW);
}

// LED'leri tersten sırala
for (int i = 3; i > 0; i--) {
digitalWrite(ledPin[i], HIGH);
delay(delaySure);
digitalWrite(ledPin[i], LOW);
}
}

Ekstra Etkinlikler:

  • LED sayısını artır.
  • Işıkların sadece tek yönde gitmesini sağla.
  • Potansiyometreyle sadece hızı değil, yönü de değiştirecek şekilde geliştir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir