Arduino projelerine başlangıç aşamasında en temel uygulamalardan biri olan Trafik Lambası devresi; Kırmızı, Sarı ve Yeşil LED'lerin gerçek hayattaki trafik ışığı standartlarına ve zamanlama sırasına göre kontrol edilmesini sağlar. Bu uygulama, dijital çıkış (digitalWrite) ve zamanlama (delay) konseptlerini anlamak için harika bir örnektir.

// Trafik lambası LED pin tanımlamaları
const int kirmiziPin = 12;
const int sariPin = 11;
const int yesilPin = 10;
void setup() {
// LED pinlerini çıkış olarak ayarlıyoruz
pinMode(kirmiziPin, OUTPUT);
pinMode(sariPin, OUTPUT);
pinMode(yesilPin, OUTPUT);
}
void loop() {
// 1. AŞAMA: Kırmızı Işık (DUR)
digitalWrite(kirmiziPin, HIGH);
digitalWrite(sariPin, LOW);
digitalWrite(yesilPin, LOW);
delay(5000); // 5 saniye bekle
// 2. AŞAMA: Kırmızı + Sarı Işık (HAZIRLAN)
digitalWrite(kirmiziPin, HIGH);
digitalWrite(sariPin, HIGH);
digitalWrite(yesilPin, LOW);
delay(2000); // 2 saniye bekle
// 3. AŞAMA: Yeşil Işık (GEÇ)
digitalWrite(kirmiziPin, LOW);
digitalWrite(sariPin, LOW);
digitalWrite(yesilPin, HIGH);
delay(5000); // 5 saniye bekle
// 4. AŞAMA: Sarı Işık (YAVAŞLA / DURMAYA HAZIRLAN)
digitalWrite(kirmiziPin, LOW);
digitalWrite(sariPin, HIGH);
digitalWrite(yesilPin, LOW);
delay(2000); // 2 saniye bekle
}
Kod yapısı, gerçek dünyadaki standart trafik lambası protokolünü adım adım simüle edecek şekilde kurgulanmıştır:
LED'lerin aşırı akımdan dolayı zarar görmesini engellemek için her bir LED'in katot veya anot bacağına mutlaka 220Ω ile 330Ω arasında bir ön direnç eklemeyi unutmayın.
Henüz yorum yapılmamış. İlk yorumu siz yapın!