DIY ELECTRONICSEN

← Tüm projeler

Trafik Lambası

Başlangıç20 dk

Üç LED'le gerçek bir trafik lambası: kırmızı, kırmızı + sarı, yeşil ve sarı ışıklar Türkiye'deki sırayla yanar, her aşama Seri Monitöre de yazılır. Birden çok çıkışı sırayla yönetmeyi, digitalWrite ve delay ile zamanlamayı, tekrarlanan işi kendi fonksiyonuna toplamayı öğretir. Işıkların sürelerini koddaki sabitlerden değiştirebilirsin. Ek kütüphane gerekmez.

Uygulamada adım adım yap

Gerekli malzemeler

Bağlantı adımları

  1. 1

    Ortak toprağı (GND) bağla

    Ortak toprağı (GND) bağla

    Siyah jumper kabloyu Arduino'nun dijital başlığında, 13 numaralı pinin yanındaki GND pinine tak. Diğer ucunu breadboard'un üstteki mavi çizgili (−) güç sırasına bağla. Üç LED'in dirençleri de bu sıraya bağlanacak; böylece hepsi aynı toprağı paylaşır.

    • Arduino GND → üstteki mavi çizgili (−) sıra (siyah kablo)
  2. 2

    Kırmızı LED'i ve direncini tak

    Kırmızı LED'i ve direncini tak

    Kırmızı LED'in uzun bacağını (+) breadboard'un üst yarısında 11. sütuna, kısa bacağını (−) 12. sütuna tak. 220 Ω direncin bir ucunu 12. sütuna, öbür ucunu üstteki (−) güç sırasına tak. Sonra kırmızı jumper kabloyla Arduino'nun 11 numaralı pinini 11. sütuna bağla (RED_PIN 11). Direnç LED'den geçen akımı sınırlar; o olmadan hem LED hem Arduino'nun pini zarar görebilir.

    • kırmızı LED uzun bacak (+) → 11. sütun, üst yarı
    • kırmızı LED kısa bacak (−) → 12. sütun, üst yarı
    • kırmızı LED'in direnci (1. bacak) → 12. sütun, üst yarı
    • kırmızı LED'in direnci (2. bacak) → üstteki mavi çizgili (−) sıra
    • Arduino pin 11 → 11. sütun, üst yarı (kırmızı kablo)
  3. 3

    Sarı LED'i ve direncini tak

    Sarı LED'i ve direncini tak

    Sarı LED'in uzun bacağını (+) üst yarıda 14. sütuna, kısa bacağını (−) 15. sütuna tak. İkinci 220 Ω direnci 15. sütun ile üstteki (−) güç sırası arasına tak. Sarı jumper kabloyla Arduino'nun 10 numaralı pinini 14. sütuna bağla (YELLOW_PIN 10).

    • sarı LED uzun bacak (+) → 14. sütun, üst yarı
    • sarı LED kısa bacak (−) → 15. sütun, üst yarı
    • sarı LED'in direnci (1. bacak) → 15. sütun, üst yarı
    • sarı LED'in direnci (2. bacak) → üstteki mavi çizgili (−) sıra
    • Arduino pin 10 → 14. sütun, üst yarı (sarı kablo)
  4. 4

    Yeşil LED'i ve direncini tak

    Yeşil LED'i ve direncini tak

    Yeşil LED'in uzun bacağını (+) üst yarıda 17. sütuna, kısa bacağını (−) 18. sütuna tak. Üçüncü 220 Ω direnci 18. sütun ile üstteki (−) güç sırası arasına tak. Yeşil jumper kabloyla Arduino'nun 9 numaralı pinini 17. sütuna bağla (GREEN_PIN 9). Böylece devre tamamlanır.

    • yeşil LED uzun bacak (+) → 17. sütun, üst yarı
    • yeşil LED kısa bacak (−) → 18. sütun, üst yarı
    • yeşil LED'in direnci (1. bacak) → 18. sütun, üst yarı
    • yeşil LED'in direnci (2. bacak) → üstteki mavi çizgili (−) sıra
    • Arduino pin 9 → 17. sütun, üst yarı (yeşil kablo)

Arduino kodu

// Trafik lambasının pinleri
const int RED_PIN = 11;
const int YELLOW_PIN = 10;
const int GREEN_PIN = 9;

// Her ışığın yanık kalma süresi (ms)
const unsigned long RED_TIME = 5000;
const unsigned long YELLOW_TIME = 2000;
const unsigned long GREEN_TIME = 5000;

void setup() {
  pinMode(RED_PIN, OUTPUT);
  pinMode(YELLOW_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  Serial.begin(9600);
}

// Üç ışığı birlikte ayarlar: HIGH yanık
void lights(int red, int yellow, int green) {
  digitalWrite(RED_PIN, red);
  digitalWrite(YELLOW_PIN, yellow);
  digitalWrite(GREEN_PIN, green);
}

void loop() {
  // Dur: yalnızca kırmızı
  lights(HIGH, LOW, LOW);
  Serial.println("Kırmızı: dur");
  delay(RED_TIME);

  // Hazırlan: kırmızı ve sarı birlikte
  lights(HIGH, HIGH, LOW);
  Serial.println("Kırmızı + sarı: hazırlan");
  delay(YELLOW_TIME);

  // Geç: yalnızca yeşil
  lights(LOW, LOW, HIGH);
  Serial.println("Yeşil: geç");
  delay(GREEN_TIME);

  // Dikkat: yalnızca sarı
  lights(LOW, HIGH, LOW);
  Serial.println("Sarı: dikkat, duracak");
  delay(YELLOW_TIME);
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
Kırmızı: dur
Kırmızı + sarı: hazırlan
Yeşil: geç
Sarı: dikkat, duracak
Kırmızı: dur
Kırmızı + sarı: hazırlan

Sonuç

Kırmızı LED 5 saniye yanar, ardından kırmızı ve sarı 2 saniye birlikte yanar, sonra yalnızca yeşil 5 saniye, en son yalnızca sarı 2 saniye yanar ve döngü baştan başlar. Bir LED hiç yanmıyorsa önce bacak yönüne (uzun bacak Arduino'nun pinine) ve direncin (−) sırasına oturduğuna bak.

Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.

Uygulamada adım adım yap