Arduino Dijital Pinler

Arduino Mega 2560 kartında 54 adet, Arduino UNO modelinde ise 14 adet dijital giriş ve çıkış pini bulunmaktadır.

Dijital Pinler

Arduino Uno ‘da bulunan 14 tane dijital giriş / çıkış pininin tamamı, pinMode(), digitalWrite() ve digitalRead() fonksiyonları ile giriş ya da çıkış olarak kullanılabilir. Bu pinler 5 V ile çalışır. Her pin maksimum 40 mA çekebilir ya da sağlayabilir ve 20-50 KOhm dahili pull – up dirençleri vardır.

Ayrıca bazı pinlerin özel fonksiyonları vardır:

Serial 0 (RX) ve 1 (TX) : Bu pinler TTL seri data almak (receive – RX) ve yaymak (transmit – TX) içindir.

Harici kesmeler (2 ve 3) : Bu pinler bir kesmeyi tetiklemek için kullanılabilir.

PWM: 3, 5, 6, 9, 10, ve 11 : Bu pinler analogWrite () fonksiyonu ile 8-bit PWM sinyali sağlar.

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) : Bu pinler SPI kütüphanesi ile SPI haberleşmeyi sağlar.

LED 13 : Dijital pin 13 e bağlı bir leddir. Pinin değeri High olduğunda yanar, Low olduğunda söner.

Arduino kartı üzerinde bulunan pinleri kullanmak için pinleri giriş veya çıkış olarak ayarlamanız gerekmektedir.

Dijital pin INPUT olarak tanımladığınızda bu ayarladığınız pinin durumunu okuyacağınız anlamına gelir ve basit devrelerde buton kullanımı için gereklidir. Butona basıldığında giriş olarak ayarlanan pin üzerinde bir gerilim oluşur ve arduino bu değişimi digitalRead() komutu ile okur.

Dijital pin çıkış OUTPUT olarak ayarlandığında ise devrede akım bekleyen bir eleman olduğu anlamına gelir, örnek olarak pin çıkışına bir led bağlandığında ledin durumunu değiştirmek için kullanabilrsiniz.

pinMode()

pinMode komutu belirtilen pini giriş veya çıkış olarak ayarlar.

pinMode(pinNo,mod); Şeklinde yazılır

pinNo kısmına Arduino pinlerinden biri yazılır,

mod kısmına INPUT, OUTPUT veya INPUT_PULLUP yazılır.

INPUT: belirtilen pini giriş olarak ayarlar,
OUTPUT: belirtilen pini çıkış olarak ayarlar,
INPUT_PULLUP: belirtilen pini giriş ve dahili pull-up direncini aktif eder. Böylece buton bağladığınızda harici pull-up direnci takmanıza gerek kalmaz.

Buton veya sensör gibi bir giriş elemanı kontrol edilecekse, o pin GİRİŞ olarak tanımlanmalıdır.

pinMode(pinNo,INPUT);

pinMode(10,INPUT); > 10 Nolu pin Giriş olarak tanımlandı.

Eğer bir pinden LED, röle motor gibi bir çıkış elemanı kontrol edilecekse o pin ÇIKIŞ olarak tanımlanmalıdır.

pinMode(pinNo,OUTPUT);

pinMode(13,OUTPUT); > 13 Nolu pin Çıkış olarak tanımlandı.

Örnek Kod





/* diyot.net */

void setup()
{
  pinMode(13, OUTPUT);          // 13 Numaralı pin çıkış olarak ayarlandı
}

void loop()
{
  digitalWrite(13, HIGH);       // dijital 13 pin Açık
  delay(1000);                  // 1 saniye bekleme
  digitalWrite(13, LOW);        // dijital 13 pin Kapalı
  delay(1000);                  // 1 saniye bekleme
}


digitalWrite()

Dijital bir pin çıkış olarak ayarlandığında, ayarlanan pine LOW veya HIGH yazmak için kullanılır. LOW değeri pini 0V (GND) seviyesine çeker, HIGH değeri ise arduino nun çıkış voltajı olan +5V a yükseltir. Ancak bu Arduino DUE gibi kartlar 3.3V ile çalıştığı için çıkışta 3.3V alınır.

Kullanımı

digitalWrite(pinNo,HIGH); veya digitalWrite(pinNo,LOW); şeklindedir.
1. Parametre hangi pinin kullanılacağı,
2. parametre ise pinin durumu.

digitalWrite(7,HIGH); > 7 nolu pinden 5V çıkış verildi (Lojik-1)
digitalWrite(9,LOW); > 9 nolu pinden 0V çıkış verildi (Lojik-0)

Örnek Kod

/* diyot.net */
int ledPin = 10;                 //   LED 10 numaralı pine bağlandı
void setup()
{
  pinMode(ledPin, OUTPUT);          // ledPin ( pin 10 ) çıkış olarak ayarlandı
}

void loop()
{
  digitalWrite(ledPin, HIGH);       // Led Yanıyor
  delay(1000);                  // 1 saniye bekliyoruz
  digitalWrite(ledPin, LOW);        // Led Sönüyor
  delay(1000);                  // 1 saniye bekliyoruz
}

Not :

 digitalWrite(ledPin,HIGH)   yerine digitalWrite(10,HIGH) yazabilirdik

örneğimizdeki bu kod ile arduino nun 10. pini çıkış olarak ayarlandı ve 1 saniye aralıkla 10. numaralı pin durumu değiştildi. 10 numaralı pine bir led bağlayarak ledin 1 saniye aralıkla yanıp söndüğünü görebiliriz.

digitalRead()

Dijital giriş olarak tanımlanan bir pin üzerindeki değeri okur ve bir sonuç döndürür. Bu sonuç HIGH veya LOW dur. Biz bu sonuca göre işlemler yapabiliriz. En basit örnek olarak buton verilebilir. Butona basıldığında digitalRead() fonksiyonu bize HIGH değeri döndürür ve led yanar.

Kullanımı : digitalRead(pin) şeklindedir. Buradaki “pin” bizim giriş olarak ayarladığımız pin numarasıdır. Veya pin numarasını atadığımız değişken olabilir.

Örnek Kod

/* diyot.net */

int ledPin = 13;   // LED  13 numaralı pine bağlandı
int inPin = 7;     // Buton 7 numaralı pine bağlandı
int val = 0;       // Okunan değerin saklanacağı değişkenimiz

void setup()
{
  pinMode(ledPin, OUTPUT);      // Dijital 13 Numaralı pin çıkış olarak ayarlandı
  pinMode(inPin, INPUT);        // Dijital 7 Numaralı pin giriş olarak ayarlandı
}

void loop()
{
  val = digitalRead(inPin);     // Giriş pinimizin değeri okunuyor.
  digitalWrite(ledPin, val);    // Giriş pininden okunan değer ledPinine yazılıyor.
}

Benzer Yazılar

YAZAR : Admin

- Elektronik Mühendisi - E.Ü. Tıp Fakültesi Kalibrasyon Sorumlusu Test kontrol ve kalibrasyon sorumlu müdürü (Sağ.Bak. ÜTS) - X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Usta Öğretici (MEB) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino Analog Pinler

Yaşadığımız ortamda her etki analog bir sinyale karşılık gelir. Bu etkileri ölçen sensörler de genellikle …

Bir cevap yazın