PROJE : TRAFİK IŞIKLARI

delay() :

Delay fonksiyonu kullandığımız satırda belirlediğimiz süre kadar bekletmemizi sağlar.
delay(); şeklinde kullanılır. Parantezler içine ilgili satırda ne kadar bekletme yapacağımızın milisaniye cinsinden değeri yazılır.

delayMicrosecond() :

Mikrosaniye cinsinden bekletme için kullanılır. delayMicrosecond(); şeklinde kullanIlır. Parantezler içerisine bekletmenin yapılacağı süre mikrosaniye cinsinden girilir. 1000 mikrosaniye üzerindeki değerler için delay() fonksiyonu önerilir.

delay() ve delayMicrosecond() fonksiyonu kullanıldığında bekletme anında döngü durur. 

millis ()  :
Millis fonksiyonu Arduino’ya enerji verildiği zaman otomatik olarak çalışmaya başlar. Fonksiyon içerisinde Arduino’nun çalışma zamanı milisaniye cinsinden tutulur. Değerler milisaniye cinsinden tutulduğu için geri döndürülen değer int veya float’ın tutabileceği kapasitenin çok üstünde olabilir. Bu yüzden bu fonksiyonla birlikte unsigned long türündeki değişkenler kullanılır.
Unsigned long int’ in max değeri olan 4294967295 değeri geçildiğinde de sayaç sıfırlancak ve sıfırdan yeniden saymaya başlyacaktır.

GEREKLİ OLAN DEVRE ŞEMASI :

1  Adet Arduino
3 Adet  12 voltla çalışan  led
1 Adet 3 lü röle
1 Adet 12v güç kaynağı
Kablolar

//TRAFİK PROJESİ KODU 1 ( DELAY FONKSİYONU KULLANILARAK)
void setup() {
  pinMode (8,OUTPUT);
  pinMode (9,OUTPUT);
  pinMode (10,OUTPUT);
}

void loop() {
   digitalWrite (8,HIGH);
   digitalWrite (9,HIGH);
    digitalWrite (10,HIGH);
    digitalWrite (8,LOW);
    delay (5000);
    digitalWrite (8,HIGH);
    delay (500);
    digitalWrite (9,LOW);
    delay (2000);
    digitalWrite (9,HIGH);
    delay (500);
    digitalWrite (10,LOW);
    delay (2000);
    digitalWrite (10,HIGH);
    delay (500); 
}

 

//TRAFİK PROJESİ KODU 2 ( MİLLİS FONKSİYONU KULLANILARAK)
unsigned long   ilkzaman = 0;
unsigned long   sonzaman = 0;
unsigned long   yanmazaman=0;
int sira =1;
int milis = 0;
void setup() {
  pinMode (8,OUTPUT);
  pinMode (9,OUTPUT);
  pinMode (10,OUTPUT);
   digitalWrite (8,HIGH);
    digitalWrite (9,HIGH);
    digitalWrite (10,HIGH); 
}
void loop() {
 if (sira ==1 ){
    ilkzaman=millis();
    sira=2;
}
if (sira ==2){
    digitalWrite (8,LOW);
    sonzaman=millis();
    yanmazaman=sonzaman-ilkzaman;
      if (yanmazaman>8000) {
      digitalWrite (8,HIGH);
      sira=3;
      }
}
if (sira ==3 ){
    ilkzaman=millis();
    sira=4;
}
if (sira ==4 ){
    digitalWrite (9,LOW);
    sonzaman=millis();
    yanmazaman=sonzaman-ilkzaman;
      if (yanmazaman>4000) {
      digitalWrite (9,HIGH);
      sira=5;
      }  
}  
if (sira ==5 ){
    ilkzaman=millis();
    sira=6;
}
if (sira ==6 ){
    digitalWrite (10,LOW);
    sonzaman=millis();
    yanmazaman=sonzaman-ilkzaman;
      if (yanmazaman>8000) {
      digitalWrite (10,HIGH);
      sira=7;
      }  

if (sira ==7 ){
    ilkzaman=millis();
    sira=8;
}
if (sira ==8 ){
    digitalWrite (9,LOW);
    sonzaman=millis();
    yanmazaman=sonzaman-ilkzaman;
      if (yanmazaman>3000) {
      digitalWrite (9,HIGH);
      sira=1;
      }  
}
 }