/*
* Proje: Potansiyometre Kontrollü 5 LED'li Yürüyen Işık (Knight Rider Efekti)
* Amaç: Potansiyometre ile LED'lerin yürüme hızını ayarlamak.
*
* Bağlantılar:
* - Potansiyometre Orta Bacağı: Arduino Analog Pin A0
* - Potansiyometre Dış Bacakları: 5V ve GND
* - LED'ler (220 Ohm direnç üzerinden): Arduino Dijital Pinler 2, 3, 4, 5, 6
* - LED'lerin Katot Bacakları: GND
*/
// 5 LED'in bağlı olduğu dijital pinleri tanımlıyoruz
const int ledPins[] = {2, 3, 4, 5, 6};
const int ledCount = 5;
// Potansiyometrenin bağlı olduğu analog pini tanımlıyoruz
const int potPin = A0;
// Gecikme süresini (hızı) tutacak değişken
int delayTime = 0;
void setup() {
// Tüm LED pinlerini ÇIKIŞ (OUTPUT) olarak ayarlıyoruz
for (int i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
// İsteğe bağlı: Hata ayıklama ve değerleri izlemek için Seri Monitörü başlatın
// Serial.begin(9600);
}
void loop() {
// 1. Potansiyometre Değerini Oku
// Analog okuma değeri 0 ile 1023 arasında olacaktır.
int potValue = analogRead(potPin);
// 2. Analog Değeri Gecikme Süresine (Milisaniye) Dönüştür (Mapping)
// 'map' fonksiyonu, 0-1023 değerini 10ms (hızlı) ile 500ms (yavaş) arasına çevirir.
// Bu aralıkları (10 ve 500) kendi zevkinize göre değiştirebilirsiniz.
delayTime = map(potValue, 0, 1023, 10, 500);
/*
// Seri Monitörde değerleri göstermek isterseniz bu satırların başındaki // işaretlerini kaldırın:
Serial.print("Potansiyometre (0-1023): ");
Serial.print(potValue);
Serial.print(" | Gecikme Suresi (ms): ");
Serial.println(delayTime);
*/
// --- Yürüyen Işık Efekti Başlangıcı ---
// A) İLERİ YÖN (2 -> 3 -> 4 -> 5 -> 6)
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPins[i], HIGH); // LED'i yak
delay(delayTime); // Ayarlanan süre kadar bekle
digitalWrite(ledPins[i], LOW); // LED'i söndür
}
// B) GERİ YÖN (6 -> 5 -> 4 -> 3 -> 2) (Knight Rider Efekti)
// i=ledCount-2 (yani 4. index, pin 5) ile başlar ve i > 0 (yani pin 3) olana kadar döner.
// Bu, pin 2 (ilk LED) ve pin 6'nın (son LED) iki kez üst üste yanmasını engeller.
for (int i = ledCount - 2; i > 0; i--) {
digitalWrite(ledPins[i], HIGH); // LED'i yak
delay(delayTime); // Ayarlanan süre kadar bekle
digitalWrite(ledPins[i], LOW); // LED'i söndür
}
}
Buna da gözat
Arduino ile LCD Ekran Kullanımı (I2C Modülü ile)
Gerekli Malzemeler: Arduino Uno (veya benzeri bir Arduino kartı) 16×2 karakter LCD ekran (HD44780 uyumlu) I2C LCD adaptör modülü (örneğin, PCF8574) Breadboard Jumper kablolar I2C modülünün VCC pinini Arduino’nun 5V pinine bağlayın. I2C modülünün GND pinini Arduino’nun GND pinine bağlayın. I2C modülünün SDA pinini Arduino’nun SDA pinine …
Bilişim Teknolojileri Kaynak Site
