3-) Bombayı Patlatıyoruz

 
     Herkese Hayırlı Ramazanlar diyerek 3. uygulamamızı anlatıcağımız yazımıza başlayalım :)

     Bildiğiniz gibi ilk 2 uygulamamızda LED'lerle bazı uygulamalar yapmıştık, yakıp söndürmüştük filan, yalnız açık söylemek gerekirse bu yazılar istediğimi verdimi, hayır vermedi. Hayırdır gardaş sen ne istiyosun diyebilirsiniz :D İsteğim teknolojiyle haşır neşir olmamız, şeftali yerine motor üretelim diyorum yani :) Ha ama heptende karamsar değilim geçen akşam beni sevindiren bişey oldu, bi arkadaşım mesaj attı, o ve arkadaşı benim blogu okumuşlar Arduino'ya başlamak istiyolarmış malzemeleri nerden alabiliriz filan diye sordular, açıkçası gerçekten sevindim :) artık darısı diğer herkesin başına :) Her neyse konu saptı toparlayamıcam gibide :D hemen anafikre gelelim, önceki 2 uygulama alt tarafı ampül yakıp söndürmek (!) olduğu için olduğu için çoğu kişinin dikkatini çekmemişti bende düşündüm napsak napsak diye ve aklıma iyimidir bilmem ama filmlerde olduğu gibi bi bomba devresi yapmak geldi. Fazla açıklamama gerek yoktur heralde, bi devre yapıcaz ve geri sayım olucak gerekli zamanda hiç bir kabloyu kesmezsek veya yanlış kabloyu kesersek bomba patlıcak, eğer doğru kabloyu kesersek sayaç durucak. Hemen gerekli malzemeleri vererek 3. uygulamamıza başlayalım.

Neler Gerekli?
*Arduino Uno/Mega
*Arduino Yazılımı
*Breadboard
*Jumper Kablo Seti
*10 tane 470 Ohm Direnç
*7 Segment Display
*Buzzer
*İsteğe göre LEDler

     Gerekli malzemelere bakınca şuana kadar kullanmadığımız ve tanımlamadığımız 2 şey var gibi, hemen bunların olduğundan bahsedelim.



**Buzzer**
     Buzzer yukardaki resimdeki arkadaş oluyo, biz ona halk arasında hoparlör diyoruz :) ilk aldığınızda üstünde ne anlama geldiğiniz bilmediğim bi etiket bulunur, bu etiketi daha sonra biz sökeriz. Bendeki buzzer'in bi bacağı uzun bi bacağı kısaydı, LEDlerden hatırlıcağımız gibi uzun bacağı sinyali yani elektriği göndericeğimiz pin'e diğer bacağıda GND pin'ine yani toprağa bağlıyoruz. Bağlanma şekli işte böle :) Fiyatlarıda pahalı değildir ben 50 kuruşa almıştım.



**7 Segment Display**
    Bu resimdeki arkadaşımızda 7 Segment Display oluyor. Bunda sayıları oluşturmak için 7 tane birbirinden bağımsız çubuk var gördüğünüz gibi, bu çubukların altındada LED var. Çalışma mantığı daha önceki yazdığımız yazılardaki LEDlerle aynı. Mesela 1 yazmakmı istiyoruz sağ taraftaki 2 çubukta bulunan LEDlere elektrik vericez. Bunların 2 farklı türleri vardır, biri ortak katot biride ortak anottur. İkisinin farkı nedir diye sorarsanız yanlış hatırlamıyosam birinde cihazdaki LEDleri yakmak için 1 değeri yani elektrik göndermemiz gerek diğerindeyse tam tersi. Ben elektrik gönderip LEDleri yakmayı daha anlaşılır olur diye düşündüğüm için ortak katot olan modelden aldım, sizede öle tavsiye ederim. Şimdi hangi pin'lere elektrik gönderince hangi LEDlerin yanıcağına geçelim. Sizin için aşağıdaki gibi bir resim hazırladım.

     Resimde bacakların numaraları ve hangi bacağa elektrik verince hangi LED'in yanıcağı gözüküyo, eğer dikkat etmişseniz 3 ve 8 numaralı bacaklara isim verilmemiş, bu bacaklar GND yani toprağa bağlanıcak. Yine 1 den örnek vermek gerekirse, ilk başta tüm bacakları Arduinoya bağlıycaz (ben kolaylık olsun diye, resimdeki 1 numaralı bacağı, arduinoda 1e, 2yi 2 ye bağladım, unutmadan 3 ve 8 GND pin'lerine bağlanıyo.) daha sonra kod yazarkende 4 ve 6 numaralı pin'e elektrik ver diyip 1 sayısını elde edicez.

Şimdi devreye geçelim ve çalışma mantığını anlatmaya çalışıyım...



     Evet arkadaşlar kurmamız gereken devre bu :) bu ne lan filan diyip gözünüz korkmasın açıkçası böle bakınca ben bile şaşırdım diyebilirim ama resmin karmaşık olmasından başka bişey yok. Şimdi devrenin ne olucağından bahsedelim. Biz arduino kartımıza programı yüklediysek eğer karta elektriği verince 9 dan geriye doğru sinyal sesleri eşliğinde geri sayım başlıyor, 
1-) Eğer biz hiç bişeye dokunmazsak 9 saniye sonra soldaki buzzer ve LEDler yanıp sönmeye başlıyor yani kısaca bomba patlıyo.
2-) Eğer 9 saniye içinde devredeki sağ tarafta bulunan kırmızı kutu içine aldığım kabloyu kesersek yanlış kabloyu kestiğimiz için bomba yine patlıyo.
3-) Eğer 9 saniye içinde mavi kutu içine aldığım kabloyu kesersek geri sayım duruyor, yani bomba imha ediliyor :) (((En altta video var ordan nasıl çalıştığını görebilirsiniz.)))

     LEDlerin bağlantısı önceki yazılarda anlatıldığı için onu anlatmıyorum, burda farklı olan açıklamadığımız tek şey olan kablo kesme muhabbetine değinicem sadece, bu kablo kesme olayı 2. uygulamamız olan 3. uygulamadakiyle aynı sayılır. Biz programa birinde 42 numaralı pin'e sinyal gitmezse alarmı çalıştır, birindede 46 numaralı pin'e sinyal gitmezse sayacı durdur diyoruz. Evet şimdide kod yazma bölümümüze geçelim.

     Arkadaşlar bu bölümde 2 yeni kodun fonksiyonunu öğrenicez, bunlardan biri ``#define`` diğer biride while(1);

***#define***
define ifadesi genelde delay fonksiyonlarında yani bekleme fonksiyonlarında kullanılıyo, mesela biz bi kod yazdık 10 tane eşit miktarda bekleme koyduk ama daha sonra sistemi çalıştırınca gördükki verdiğimiz bekleme süreleri fazlaymış bunu azaltmamız gerek. Normalde naparız 10 tane ifadeyi tek tek siler ve değiştiririz. Ama eğer #define ifadesini kullanırsak bunu yapmamıza gerek yok, kodlama bölümünün en başına yani void setup kısmındanda önce aşağıdakileri yazıyoruz.

*#define XXX YYY
*XXX=bekelemeye vericeğiniz isim, ahmet mehmet olabilir fark etmez sadece İ,ı,ğ,ü,ş,ö gibi harfler kullanmayın.
*YYY=kaç mili saniye beklenmesi gerektiği, 300-500-1000-2000 gibi :)
*delay(XXX); yazarsak belirlediğimiz süre kadar bekleme yapar.

***while(1);***
bu kodun işleviyse sistemi durdurmak, eğer kodlar çalışırken sistem bir yerde bu kodlaa karşılaşırsa olduğu yerde durur. Biz bu uygulamada yeşil kabloyu kesince sistemdeki while(1); kodunu çalıştırıp sistemi durduruyoruz.

     Bilmediğimiz kodlarıda öğrendiğimize göre kodlarımızı yazalım. yine void setup bölümünden başlıyororuz, bu bölüme hangi pinleri kullanıcağımızı ve girişmi yoksa çıkış olarakmı kullanıcağımızı yazıyoruz.

void setup() {
  pinMode(1, OUTPUT); 
  pinMode(2, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(42, INPUT);
  pinMode(44, OUTPUT);
  pinMode(45, OUTPUT);
  pinMode(46, INPUT);
  }

void setup bölümü bitti, şimdi asıl uzun olan void loop bölümüne gelelim :)

     ARKADAŞLAR void setup ve void loop BÖLÜMÜNDEKİ KODLARI BİR KAÇ UFAK DÜŞTÜĞÜM HATAYI BELİRTTİKTEN SONRA DİREK KOPYALA YAPIŞTIR YAPICAM, SİZ BU KODLARI BİLGİSAYARINIZA İNDİRDİĞİNİZ ARDUİNO PROGRAMINI AÇIP ORDAKİLERİ SİLİP YAPIŞTIRIN BU BÖLÜM BLOG SAYFASINDA BİRAZ KARIŞIK GÖZÜKÜCEK O YÜZDEN ARDUİNO PROGRAMI ÜZERİNDEN OKUYUN

***Düştüğüm Hatalar***

1-) Ben normalde kodlama bölümünde ilk başta 1 tane if bölümü kullanmıştım ve dedimki 42 numara sinyal geliyosa geri sayım yap, gelmiyosa alarmı çalıştır demiştim ama o işler öle olmuyomuş, eğer if bölümündeki bi döngüye program bir kez girerse onları bitirmeden diğerine geçmiyo. Yani mesela geri sayım işlemi baladı eğer  ben kabloyu kessemde geri sayım işlemi 0 a kadar bitmeden alarm devreye girmiyodu. Bu sorunu çözmek için tüm sayılar için yani 9-8-7-6-5-4-3-2-1-0 her biri için ayrı ayrı eğer 42 numaraya sinyal geliyosa sayıları göster dememiz gerek.

2-) Yukardaki sorununu yardımlar sayesinde çözmüştüm şimdi bi gazla karta yükledim çalışcak diye bekliyorum ama birde ne görüyüm sistem hala istediğimi yapmıyor, sonra yine çok sağolsun yardımcı olan bi abi var ona sordum niye olmuyo diye, hani benim bu kırmızı kablo kesildiyse şöyle yap mavi kablo kesildiyse böyle yap dediğim if komutları var ya onların önüne, hangi kablo ile ilgili işlem yapıyosam ona göre aşağıdaki kodları eklememi söyledi.

mavikablo = digitalRead(46);
kirmizikablo = digitalRead(42);

bunun sebebini sorunca sistem eğer ben bunları eklemezsem ilk başta mavikablo ve kirmizikablo değerlerini if komutuna veriyomuş ve haliylede ben sanki kabloları kesmemişim gibi sistem çalışmaya devam ediyomuş.

3-) Ben ilk başta 7 Segment Display'ı bağlarken direnç kullanmamıştım, daha sonra işlemciye elimi bi tuttum alev alev yanıyo :D sonra internette bu sorunu sordum, 7 Segment Display fazla akım çektiği için bu sorun oluyomuş daha yüksek dirençler bağla dediler, sanki devrede direnç varda :D neyse sonra 470 Ohm'luk dirençler bağladım ve ısınma sorunu bitti. Eğer videodaki dirençleri görürseniz 10K Ohm'luk dirençler var, bunun sebebi LEDler çok güçlü yaydığı için videoda parlama yapıyodu video çekerken dirençlerin değerini arttırdım. Ama siz ister 470 Ohm isterde 10K Ohm kullanın sistem çalışıyor. Yalnız 470 Ohm ile sistemi yarım saat 1 saat çalıştırmadım çok uzun süre kalsa ısınırmı bilmem ama 10K Ohm ile yaklaşık 1 saat filan çalıştı bi ısınma yoktu.

4-) Devredeki kabloları keserken şuna dikkat etmemiz gerek, direk pin'e giden kabloyu deil o kabloya +5v elektrik getiren kabloyu kesmeliyiz. Eğer pin'e giden kabloyu kesersek devre doğru çalışmayabilir.

Hatalarıda verdiğime göre sistemin tüm kodlarını programdan kopyala/yapıştır yapıyorum, dediğim gibi siz bu kodları indirdiğiniz Arduino programınıza kopyala/yapıştır yaparak okuyun, burda karmaşık gözükebilir, anlamaya bilirsiniz. Bir sorunuz olursa, aşağıdaki bölüme yorum yaparak, facebook veya twitter'dan sorabilirsiniz, elimden geldiğince cevaplamaya çalışırım :) Sistemin çalışam halinin videosu aşağıda iyi seyirler :)






#define BEKLEME_SURESI 1000
#define BEKLEME_SURESI2 100

void setup() {
  pinMode(1, OUTPUT);      //ilk başta kullanıcağımız pin'leri ve girişmi yoksa çıkış içinmi kullanıcaz onu yazıyoruz.
  pinMode(2, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(42, INPUT);
  pinMode(44, OUTPUT);
  pinMode(45, OUTPUT);
  pinMode(46, INPUT);
  }

void loop() {
  
  int kirmizikablo = digitalRead(42);  // 42 numaralı pin'deki değeri okuyup kirmizi kablo ismini verdik
  int mavikablo = digitalRead(46);     // 46 numaralı pin'deki değeri okuyup mavi kablo ismini verdik
  
  
  //9 NUMARA//
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 9 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  }
  kirmizikablo = digitalRead(42);
  if (kirmizikablo == HIGH)
  {
  delay(BEKLEME_SURESI);
  }


  //8 NUMARA


  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  } 
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 8 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //7 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 7 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //6 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 6 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //5 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 5 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //4 NUMARA


  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 4 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(9, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //3 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 3 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //2 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 2 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //1 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 1 numarasını göster dedik.
  {
  digitalWrite(44, HIGH);
  delay(50);
  digitalWrite(44, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  delay(BEKLEME_SURESI);
  }
  
  
  //0 NUMARA
  
  
  mavikablo = digitalRead(46);         // mavi kablodaki değeri kontrol et dedik
  if(mavikablo == LOW)                 // mavikabloda sinyal yoksa sistemi durdur dedik
  {
  while(1);
  }
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kirmizikabloda sinyal varsa 0 numarasını göster dedik.
  {
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(10, LOW);
  digitalWrite(21, LOW);
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(25, LOW);
  digitalWrite(26, HIGH);
  digitalWrite(27, HIGH);
  digitalWrite(29, LOW);
  digitalWrite(30, HIGH);
  }
  
  
  
  kirmizikablo = digitalRead(42);      // kırmızı kablodaki değeri kontrol et dedik
  if (kirmizikablo == HIGH)            // kırmızı kabloda sinyal varsa 20 kez alarmı ve LEDleri BEKLEME_SURESI2 ms kadar çalıştır kapat dedik ve sistemi durdur dedik.
  {
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);
  while(1);
  }
  
  else                          // bu bölüm eğer kırmızı kablo kesilirse diye eğer kırmızı kablo kesilirse sistem buraya geliyo ve alarmla LEDler aktif oluyor.
  {
  digitalWrite(44, HIGH);
  digitalWrite(45, HIGH);
  delay(BEKLEME_SURESI2);
  digitalWrite(44, LOW);
  digitalWrite(45, LOW);
  delay(BEKLEME_SURESI2);


  }
}

1 yorum: