
Kategori: Proje İçerikleri
Seviye: ★★☆☆☆ Başlangıç
Süre: 30–45 dakika
Hedef anahtar kelimeler: arduino trafik ışığı projesi, arduino led proje, arduino başlangıç projesi, mblock arduino
Meta açıklama: Arduino Uno ve 3 LED ile trafik ışığı yap. mBlock ve Arduino IDE kodları, bağlantı şeması ve adım adım montaj rehberiyle eksiksiz proje anlatımı.
Bu projede Arduino Uno ve 3 renkli LED kullanarak gerçek hayattaki trafik ışığını simüle edeceğiz. Kırmızı, sarı ve yeşil ışıklar sırayla yanıp söner. Hem mBlock (blok kodlama) hem Arduino IDE (metin kodlama) ile yapılır.
Bu projede öğrenilecekler: Dijital çıkış pinleri · delay() fonksiyonu · LED bağlantısı · Döngü mantığı · Sıralı komutlar
| Adet | Malzeme | Değer / Model | Sette var mı? |
|---|---|---|---|
| 1 | Arduino Uno R3 | – | ✅ Evet |
| 1 | Breadboard | Tam boy | ✅ Evet |
| 1 | Kırmızı LED | 5mm | ✅ Evet |
| 1 | Sarı LED | 5mm | ✅ Evet |
| 1 | Yeşil LED | 5mm | ✅ Evet |
| 3 | Direnç | 220Ω | ✅ Evet |
| 4 | Jumper kablo | Erkek-erkek | ✅ Evet |
| 1 | USB kablo | Tipo-B | ✅ Evet |
Tüm malzemeler Arduino Uno Başlangıç Seti içinde mevcuttur.
| Bileşen | Bağlantı noktası | Açıklama |
|---|---|---|
| ? Kırmızı LED (+) | Arduino Pin 13 → 220Ω direnç | Anot (uzun bacak) dirençten, katot (kısa bacak) GND'ye |
| ? Sarı LED (+) | Arduino Pin 12 → 220Ω direnç | Anot (uzun bacak) dirençten, katot (kısa bacak) GND'ye |
| ? Yeşil LED (+) | Arduino Pin 11 → 220Ω direnç | Anot (uzun bacak) dirençten, katot (kısa bacak) GND'ye |
| Tüm LED (−) | Arduino GND | Tüm katotlar breadboard'un eksi (−) rayına bağlanır |
| Arduino GND | Breadboard eksi (−) ray | Ortak toprak hattı |
Arduino Uno
┌──────────────┐
│ Pin 13 ──────┼──[220Ω]──?(+) LED (−) ──┐
│ Pin 12 ──────┼──[220Ω]──?(+) LED (−) ──┤
│ Pin 11 ──────┼──[220Ω]──?(+) LED (−) ──┤
│ GND ─────────┼───────────────────────────┘
└──────────────┘
mBlock, Scratch tabanlı görsel kodlama ortamıdır. 7–10 yaş için önerilir. mblock.makeblock.com adresinden ücretsiz indirilir.
[ Başlat — Bayrak tıklandığında ]
↓
[ Sonsuza Kadar Tekrarla ]
┌──────────────────────────────────────────┐
│ Pin 13'ü YÜKSEK yap ← ? KIRMIZI │
│ Pin 12'yi DÜŞÜK yap │
│ Pin 11'i DÜŞÜK yap │
│ 2000 milisaniye bekle │
│ │
│ Pin 13'ü DÜŞÜK yap │
│ Pin 12'yi YÜKSEK yap ← ? SARI │
│ 500 milisaniye bekle │
│ │
│ Pin 12'yi DÜŞÜK yap │
│ Pin 11'i YÜKSEK yap ← ? YEŞİL │
│ 2000 milisaniye bekle │
└──────────────────────────────────────────┘
Arduino IDE, gerçek C++ kodu yazılan ortamdır. 10 yaş ve üzeri için önerilir. arduino.cc adresinden ücretsiz indirilir.
// ═══════════════════════════════════════════════
// ALPGEN Robotics — Proje #001
// Arduino Uno ile Trafik Işığı
// alpgenrobotics.com
// ═══════════════════════════════════════════════
// Pin tanımlamaları
const int KIRMIZI = 13; // Kırmızı LED — Pin 13
const int SARI = 12; // Sarı LED — Pin 12
const int YESIL = 11; // Yeşil LED — Pin 11
// Süre tanımlamaları (milisaniye)
const int KIRMIZI_SURE = 2000;
const int SARI_SURE = 500; // 0.5 saniye
const int YESIL_SURE = 2000;
// ───────────────────────────────────────────────
void setup() {
// Pinleri ÇIKIŞ olarak tanımla
pinMode(KIRMIZI, OUTPUT);
pinMode(SARI, OUTPUT);
pinMode(YESIL, OUTPUT);
// Başlangıçta tüm ışıkları söndür
digitalWrite(KIRMIZI, LOW);
digitalWrite(SARI, LOW);
digitalWrite(YESIL, LOW);
}// ───────────────────────────────────────────────
void loop() {
// ? KIRMIZI — Dur
digitalWrite(KIRMIZI, HIGH);
digitalWrite(SARI, LOW);
digitalWrite(YESIL, LOW);
delay(KIRMIZI_SURE);
// ? SARI — Hazırlan
digitalWrite(KIRMIZI, LOW);
digitalWrite(SARI, HIGH);
digitalWrite(YESIL, LOW);
delay(SARI_SURE);
// ? YEŞİL — Geç
digitalWrite(KIRMIZI, LOW);
digitalWrite(SARI, LOW);
digitalWrite(YESIL, HIGH);
delay(YESIL_SURE);
}// ───────────────────────────────────────────────
| Kod | Ne yapar? |
|---|---|
const int KIRMIZI = 13; | Pin 13'ü 'KIRMIZI' adıyla tanımlar. Sayı yerine isim kullanmak kodu okunabilir yapar. |
pinMode(KIRMIZI, OUTPUT); | Bu pini 'çıkış' moduna alır. LED'e sinyal göndereceğiz, almayacağız. |
void setup() | Arduino açıldığında sadece bir kez çalışan fonksiyon. |
void loop() | Sürekli tekrar eden ana fonksiyon. Trafik ışığı döngüsü burada çalışır. |
digitalWrite(KIRMIZI, HIGH); | Pin 13'ü 5V yapar → kırmızı LED yanar. |
digitalWrite(KIRMIZI, LOW); | Pin 13'ü 0V yapar → kırmızı LED söner. |
delay(2000); | 2000 milisaniye (2 saniye) bekler. |
| Problem | Çözüm | |
|---|---|---|
| ❌ | LED hiç yanmıyor | GND bağlantısını kontrol et. LED yönünü kontrol et (uzun bacak = anot = +). |
| ❌ | Sadece bir LED yanıyor | O LED'in pin numarasını kodda kontrol et. |
| ❌ | Yükleme hatası | Doğru COM portunu seç. Arduino'yu çıkarıp tekrar tak. |
| ❌ | LED çok sönük | 220Ω direnci 100Ω ile değiştirmeyi dene. |
| ⚠️ | Işıklar çok hızlı | delay() değerlerini artır — 2000 yerine 4000 yaz. |
digitalRead() fonksiyonunu araştır.ALPGEN Robotics Teknoloji A.Ş. — Teknopark Ankara — alpgenrobotics.com
@AlpgenRobotics • Proje #001 • Başlangıç Seviye