Uygulama Detay
Eyl 11  -  264 Görüntülenme  -  MUSTAFA BATTALOĞLU

Arduino millis() Fonksiyonu Kullanımı

Arduino
Bu uygulamamızda millis() fonksiyonunun kullanımından bahsedeceğiz ve birkaç örnek uygulama yapacağız.

Arduino da millis() fonksiyonu arduino ya enerji verildikten o ana kadar geçen süreyi milisaniye cinsinden bize verir. Arduino nun enerjisi kesildiğinde millis() fonksiyonun döndürdüğü değer sıfırlanır. Tekrar enerji verdiğimizde millis() fonksiyonu başlangıçtan itibaren geçen süreyi verir. millis() fonksiyonunun kullanımını aşağıdaki örneklerle daha iyi anlamış olacağız.

 

Uygulamanın Kaynak Kodları

#define led 13
unsigned long zaman = 0, eskizaman = 0;

Yukarıdaki kod satırlarında 13 numaralı pin led olarak tanımlanıyor. Program içerisinde kullanılacak olan zaman ve eskizaman değişkenleri tanımlanıyor.

void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
}

setup() fonksiyonu içerisnde led pini çıkış olarak tanımlanıyor ve başlangıçta LOW yapılıyor.


void loop()
{
  zaman = millis();
  unsigned long fark = zaman - eskizaman;

  if (fark < 1000)
  {
    digitalWrite(led, HIGH);
  }
  else if (fark < 2000)
  {
    digitalWrite(led, LOW);
  }
  else
  {
    eskizaman = zaman;
  }
}

loop() fonksiyonu içinde millis() fonksiyonu ile programın başlangıçtan bu satıra kadar ne kadar süre geçtiği milisaniye cinsinden alınarak zaman değişkenine aktarılıyor. zaman ile eski zaman farkı fark değişkenine aktarılıyor ve fark değişkeni if koşul ifadesi ile karşılaştırılıyor. fark 1000 den küçük iken led pini HIGH (burada henüz 1 saniye olmadı), fark 1000 den büyük 2000 den küçük iken led pini LOW (burada 1 saniye geçti ikinci saniye içinde), fark 2000 den büyük iken zaman değişkeni eskizaman değişkenine eşitlenerek HIGH-LOW işlemi tekrarlanıyor.

#define led 13
unsigned long zaman = 0, eskizaman = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
}

void loop()
{
  zaman = millis();
  unsigned long fark = zaman - eskizaman;

  if (fark < 1000)
  {
    digitalWrite(led, HIGH);
  }
  else if (fark < 2000)
  {
    digitalWrite(led, LOW);
  }
  else
  {
    eskizaman = zaman;
  }
 
}

millis() fonksiyonu bazen de bekletme amaçlı da kullanılabilir. Aşağıdaki fonksiyon girilen sure değeri kadar bekleme işlemini yapar. Buradaki sure saniye cinsindendir.

#define led 13
unsigned long zaman = 0, eskizaman = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
}

void bekleme(int sure)
{
  unsigned long sure_ms = sure * 1000;
  eskizaman = millis();
  while (true)
  {
    zaman = millis();
    unsigned long fark = zaman - eskizaman;
    if (fark > sure_ms)
    {
      break;
    }
  }
}


void loop()
{
  bekleme(1);
  digitalWrite(led, HIGH);
  bekleme(1);
  digitalWrite(led, LOW);
}

 

millis() fonksiyonunun çalışmasını örneklerle açıklamış olduk. Bir sonraki uygulamada görüşmek üzere iyi çalışmalar.

 

 

 

 

 

 

Elektrik-Elektronik Teknolojisi, C# Nesne Tabanlı Programlama, ASP.net Web Uygulamaları

mustafabattaloglu@gmail.com

Uygulamaya mesaj gönder

Ad-Soyad:
Eposta:
Mesaj:
 
Benzer Uygulamalar
Arduino

Arduino millis() Fonksiyonu Kullanımı

Eyl 11  -  265 Görüntülenme
Temel Elektronik

Lojik Kapılar

Eyl 10  -  256 Görüntülenme
© 2018 | elektrohareket.com sitesindeki tüm yazılar yazarların sorumluluğundadır. Sitede yayınlanan içerik ve görseller kaynak gösterilmeden kullanılamaz.