Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - veyselairrr

Sayfa: [1]
1
Led ve Buton uygulamaları / 18. Led buton uygulaması
« : 06 Aralık 2018, 22:09:32 »
 Devreye enerji verdikten sonra ledin 5 saniye sonra yanması istenmekte.

Led yandıktan sonra butona basılırsa led sönecek ve 5 saniyeyi tekrar saymaya başlayacak. 5 saniye dolunca led tekrar yanacak.

5 saniye dolmadan butona basılırsa sayılan süre resetlenmeyecek.

 




 

Kod: [Seç]
int led1=9;
int button=12;
unsigned long onceki_zaman = 0;
const long bekleme_suresi = 5000;


void setup()
{
  pinMode (led1, OUTPUT);
  pinMode (button, INPUT);
}
void loop()

  unsigned long simdiki_zaman = millis();
  if (simdiki_zaman - onceki_zaman >= bekleme_suresi) {digitalWrite(led1, HIGH);}

  if (digitalRead(button)==HIGH && simdiki_zaman - onceki_zaman >= bekleme_suresi){digitalWrite(led1, LOW); onceki_zaman = simdiki_zaman;} 
}

Bu iletiye teşekkür edenler: veyselairrr

2
Arduino Genel / 22. Tekrarlayan kodları kısaltmak
« : 13 Ekim 2016, 00:10:28 »
Bu dersimizde düzenli olarak tekrarlayan kodları onlarca kez yazmak yerine bir kere yazıp kısaltmayı öğreneceğiz.

Nasıl yapılacağını örnek bir devre üzerinden açıklayalım.

Senaryo:
Birisi yeşil diğeri sarı olmak üzere 2 ledimiz var. Arduinoya enerji verildiği anda yeşil ledin 150 ms aralıklarla 10 defa flip flop yapıp sönmesi isteniyor. Yeşil led flip flop yaparken sarı led sönük kalacak.

Yeşil led 10 defa flip flop yaptıktan sonra da sarı ledin 150 ms aralıklarla 10 defa flip flop yapıp sönmesi isteniyor.

Bu döngü sonsuza dek devam edecektir.


Bu senaryoya ait devre şemamız şu şekilde:



Bu devreye ve istenen senaryoya ait kodlarımız şu şekilde:

Alıntı
                    /*
   *  *  *  *  *  *  *  *  *  *  *  *    
   *  *  *  *  *  *  *  *  *  *  *  *  
   *  *                          *  *  
   *  *    TEKRARLAYAN KODLARI   *  *  
   *  *          KISALTMA        *  *  
   *  *      temrinlerim.org     *  *  
   *  *                          *  *  
   *  *  *  *  *  *  *  *  *  *  *  *  
   *  *  *  *  *  *  *  *  *  *  *  *  
                     */  

//  CIKIS TANIMLAMALARI BURADA BASLADI
    int yesil_led = 13; // 13 nolu pine yesil_led adini verdik
    int sari_led = 6; // 6 nolu pine sari_led adini verdik
//  CIKIS TANIMLAMALARI BURADA BITTI                     

void setup() 
  {
    pinMode(yesil_led, OUTPUT); // yesil_led isimli pin (13) cikis yapildi
    pinMode(sari_led, OUTPUT); // sari_led isimli pin (6) cikis yapildi
  }

void loop() 
  {
        for (int yesil_ledi_10_defa_flash_yap = 1; yesil_ledi_10_defa_flash_yap <= 10;  yesil_ledi_10_defa_flash_yap ++) 
            {
              digitalWrite(yesil_led, HIGH); 
              delay(150); 
              digitalWrite(yesil_led, LOW); 
              delay(150);
            }

        for (int sari_ledi_10_defa_flash_yap = 1; sari_ledi_10_defa_flash_yap <= 10;  sari_ledi_10_defa_flash_yap ++) 
            {
              digitalWrite(sari_led, HIGH); 
              delay(150); 
              digitalWrite(sari_led, LOW); 
              delay(150);
            }            
  }
    


Kodları inceleyecek olursak yeşil ledin flip flop yapmasını sağlayan kodlar şunlar:
Kod: [Seç]
              digitalWrite(yesil_led, HIGH);
              delay(150);
              digitalWrite(yesil_led, LOW);
              delay(150);

Bu kod yeşil ledin 1 kere flip flop yapmasını sağlayacaktır. Ancak bu kodu;
şu kod ile:
Kod: [Seç]
        for (int [color=teal]yesil_ledi_10_defa_flash_yap[/color] = 1; [color=teal]yesil_ledi_10_defa_flash_yap[/color] <= [color=red]10[/color];  [color=teal]yesil_ledi_10_defa_flash_yap[/color] ++)
            {

şu kod
Kod: [Seç]
            } arasına yazarsam yeşil led 10 kere flip flop yapacaktır. Aynı durum sarı led için de söz konusudur.

Kodda kırmızı renk ile vurguladığım 10 sayısı ledin iki parantez arasındaki kodların 10 kere çalıştıktan sonra programın bir alt satıra geçeceğini ifade eder. Yeşil renkle vurguladığım yesil_ledi_10_defa_flash_yap (3 yerde geçiyor) ifadesi yerine başka bir şey yazabilirsiniz.

Örnekten anlaşılacağı üzere onlarca satır yazmadığımız için program gayet sade oldu. program ilk bakışta çok daha anlaşılabilir olacaktır. Umarım anlatabilmişimdir.

Bu da söz konusu devreye ait proteus similasyonu:

<iframe width="640" height="385" src="//www.youtube.com/embed/BsksOIicBQ4?fs=1&start=" frameborder="0" allowfullscreen></iframe>

Devreye ait isis ve ide dosyaları konu ekinde mevcuttur.

Anlatım, kodlama, tasarım, video ve resim temrinlerim.org sitesine aittir. Bu konu kaynak gösterilerek kullanılabilir.

Bu iletiye teşekkür edenler: veyselairrr

Sayfa: [1]