#define buton 5 // arduino'da butonumuzun hangi bacağa bağlı olacağını belirler. int butonDurumu=0; //buton durumu negatif unsigned long Zaman; //0'dan 4.294.967.295 (2 ^ 32 – 1) aralığını depolar bunun nedeni Zaman değişkeni çok yüksek değerlere çıkacak onun için. int z=0,y=0; //değişken void setup() { Serial.begin(9600); //Seri Portumuzu 9600 baud olarak ayarlıyoruz. pinMode(buton, INPUT); //buton pinini giriş veya çıkış şeklinde yapılandır. } void loop() { butonDurumu=digitalRead(buton);//butonDurumu değişkenini gerçekteki buton durumuna eşitle. Zaman = millis(); //zamanı başlat if(butonDurumu==1){ //eğer butona basıldıysa gir if(butonDurumu==1 && z==0) //eğer butona basıldıysa ve z değişkeni 0 ise gir { z=z+1; //z değişkenini 1 arttır (birdaha bu if'e girmemesi için) if( z==1) //z=1 ise gir { Zaman=0; //Zaman değişkenini 0'a eşitle (ilk defa basıldığı zaman süreyi 0 vermek için yapıldı.) Serial.print("Yagmur Hizi : "); //ekrana yaz Serial.println(Zaman); //ekrana Zaman değişkeninin değerini çek Serial.println("Durum : Yagmiyor");//ekrana yaz Serial.println("Yagmur Baslatiliyor...");//ekrana yaz Serial.println("*****************************");//ekrana yaz z=z+1; //z değişkenini 1 arttır (birdaha bu if'e girmemesi için) Zaman = millis(); //zamanı başlat (if'e girmek için zamanı 0 ladık bu yüzden bi seferliğe mahsus bu if içinde zamanı tekrar başlattık) } } y=Zaman/1000; //dönüşüm sayesinde artık değerimizi ms cinsinden değil saniye cinsinden görüyoruz if(y<=0) //y değişkeni 0'a eşit veya kücükse gir (1000ms=1sn) ilk değerlerimiz 1sn'den kücük değerler olduğu için onlarıda yazmak için yazılan bir kod. { Serial.print("Salisede Dusen Damla Miktari : ");//ekrana yaz Serial.println(Zaman); //burada y yi değilde Zaman değişkenini çektim bunun nedeni ekrana ms cinsinden yazdırmak. Serial.println("Durum : Ciseliyor"); } if(y>0 && z==2) //eğer y değişkeni 1 değerinden büyük ve z değişkeni 2 ise gir { Serial.println("*****************************"); //ekrana yaz z=z+1; //z değişkenini 1 arttır (birdaha bu if'e girmemesi için) } if(y>0 && y<=15) //eğer y değişkeni 0 dan büyük ve 15 ten küçükse gir { Serial.print("Saniyede Dusen Damla Miktari : ");//ekrana yaz Serial.println(y);//ekrana Zaman değişkeninin değerini çek if( y <= 15) //eğer zaman 15'ten kücük veya eşitse gir { Serial.println("Durum : Seyrek Yagis "); //ekrana yaz } } if(y >15 && z==3) //eğer zaman 15 değerinden büyük ve z değişkeni 3 ise gir { Serial.println("****************************"); //ekrana yaz z=z+1; //z değişkenini 1 arttır (birdaha bu if'e girmemesi için) } if(y >15) //eğer zaman 15 değerinden büyük ise gir { Serial.print("Saniyede Dusen Damla Miktari : ");//ekrana yaz Serial.println(y);//ekrana Zaman değişkeninin değerini çek Serial.println("Durum : Saganak Yagis"); //ekrana yaz } } }