Print this page
Dijital giriş ve çıkış komutları: pinMode(), digitalRead(), digitalWrite() (Arduino Programlama, 5)

Dijital giriş ve çıkış komutları: pinMode(), digitalRead(), digitalWrite() (Arduino Programlama, 5) Featured

Rate this item
(2 votes)

 

Dijital 0 ve 1 (HIGH, LOW )değeri alan sinyallerdir. Örneğin bir ışığın kapalı veya açık olması durumunu dijital sinyallerle belirleriz. Arduino’da dijital pinler 0 ile 13 arasında numaralanmış pinlerdir.

pinMode :

Setup bloğunda kullanılır ve pinin giriş veya çıkış pini olduğunu bu komutla tanımlarız. Bir led, dışarı ışık yaydığı için çıkış pini (OUTPUT), toprağın ıslak mı kuru mu olduğunu ölçen toprak nem sensörü ise dışardan bir veriyi kontrol edip kartımıza değer gönderdiği için giriş pini (INPUT),  olarak tanımlanır.

Kullanımı: pinMode(pin, mood);

pinmode(8,OUTPUT);   // 8 numaralı pini çıkış pini olarak tanımlar
pinmode(4,INPUT);   // 4 numaralı pini giriş pini olarak tanımlar

Not: 0 ve 1 numaralı pinler rx ve tx yani haberleşme pinleri olduğu için, ilk zamanlar projelerimizde bu pinleri kullanmayalım. Çünkü 0 numaralı pine bir sensör, led vb bağladığımızda kodu yüklemek istediğimizde hata verecektir.

digitalWrite :

Dijital bir pine yüksek (1) veya düşük (0) değerlerini göndermek için kullanılır.

Kullanımı: digitalWrite(pin, value);

digitalWrite(8,HIGH); // 8 numaralı pini yüksek (HIGH) yapar. Yani 8 numaralı pine 5v gönderir. Led bağlı ise ledin yanmasını sağlar.

digitalRead:

Dijital pindeki değerin HIGH (1) mı, yoksa LOW (0) mu olduğunu öğrenmemizi sağlar.
Kullanımı:  digitalRead(pin);

digitalRead(7);     // 7 numaralı pinden gelen değeri okur.

Not: digitalRead komutunu kullanmak istiyorsak, pinMode kısmından input şeklinde tanımlama yapmamız gerekiyor.

Not: Eğer okumak istediğimiz pine herhangi bağlı bir şey yoksa rastgele 1 ve 0 değerlerini okur.

Not: Analog pinlerini de dijital pin olarak kullanabiliriz. Sadece Arduino Nano, Pro Mini’nin A6 ve A7 pinleri hariç.

 

Delay:

Programı yazılan değer milisaniye cinsinden duraklatır.  Kullanımı delay(1000);  şeklindedir. 1 saniye = 1000 milisaniye
delay(2000);  //2 saniye duraklatır

Örnek: 7 numaralı dijital pine bir led bağladık ve ledin 1 saniye yanım, 1 saniye sönmesini istiyoruz.

 

void setup() {
pinMode(7,OUTPUT);  // 7 numaralı pini çıkış olarak tanımladık
}
void loop() {
digitalWrite(7,HIGH); // 7 numaralı pine güç verdik ve ledin yanmasını sağladık.
delay(1000); //1 saniye bekle
digitalWrite(7,LOW); //7 numaralı pine 0 değerini gönderdik. ledin ışık yaymasını durdurduk.
delay(1000); // 1 saniye bekle
}

Şimdi bu örnekteki 7 numaralı led yerine değişken tanımlayarak kodlarını yazalım.

#define led 7
void setup() {
pinMode(led,OUTPUT);  // led isimli değişkene atanan pini çıkış olarak tanımladık
}
void loop() {
digitalWrite(led,HIGH); // led isimli değişkene atanan pine güç verdik ve ledin yanmasını sağladık.
delay(1000); //1 saniye bekle
digitalWrite(led,LOW); //led isimli değişkene atanan pine 0 değerini gönderdik. ledin ışık yaymasını durdurduk.
delay(1000); // 1 saniye bekle
}

 

Share:

Latest from RAM