2×16 Input Output Kartı tasarlayacaız arkadaşlar, yani Arduino MEGA’ ya takılabilecek 16 kanal input ve 16 kanal output shield devremiz olacak. Bu devre sayesinde Arduino MEGA kullanarak 16 giriş siyali okuyabilir ve 16 adet röleyi kontrol edebilirsiniz.

Aşağıdaki Arduino’ ya takılacak geçiş kartı baskı devresini bulabilirsiniz. Bu devre üzerinde IDC 20pin soket koydum. Bu şekilde kolayca diğer kartlar ile haberleştirmeyi yapabilirsiniz. Mega’ nın 22 – 53. pinlerini kullanmaktadır. sol taraftaki pinleri 16 adet input olarak ayarladım, sağ taraftaki pinleride 16 kanal röle kartı için ayarladım. Dilerseniz siz 32 kanal input yada 32 kanal output yapabilirsiniz.

2×16 Input Output Kartı

16 kanal Input Kartına yaylı klemensler koydum bunları kullanması çok pratik. Parelel bağlı 1 buton ve seri bağlı direnç LED ile butona basılınca led yanacak şekilde bağlantılarını yaptım. Bu sayede kartın çalışıp çalışmadığını butona basarak kontrol edebilirisinz.

Röle kartı olarak piyasada hazır satılan 16 kanal düşük tetiklemeli röle kartını kullandım. Bu kartta dikkat etmeniz gereken nokta ters tetikleme olması yani röleyi çektirmek için ilgili pine 0 vermeniz gerekiyor.

16 Kanal Röle Kartı
16 Kanal Röle Kartı

Bu kartlar ile geçiş kartı arasındaki bağlantıları yassı çok damarlı kablo ile yapabilirsiniz çok pratik. Besleme kısmına gelince Röle kartını(12V luk ise) 12V ile beslediğiniz zaman üzerinde 5V regülesi olduğu için Arduino oradan beslenebilir. Arduino için harici bir besleme yapmanıza gerek kalmayabilir.

16 kanal input 16 kanal outpu Arduino MEGA
16 kanal input 16 kanal outpu Arduino MEGA

Bu devreyi yapmak isteyen arkadaşlar için yassı damarlı kabloların pin bağlantılarına dikkat etmelerini ve bağlantıları yaparken ters bağlantı yapmamaları için çok dikkatli olmalarını tavsiye ediyorum. Özellikle IDC soketleri tersine düzene dikkat edin. Bağlantıları doğru yaptıktan sonra aşağıdaki Arduino kodu ile test edebilirsiniz. Bu kod sayesinde hangi butona basarsanız onun karşılığı olan röle çektirilmektedir.

/*
tarih: 20.12.2018
yazan: Remzi Şahinoğlu
web  : www.kaizen40.com
board: Arduino MEGA
*/

//*************** GİRİŞ/ÇIKIŞ TANIMLAMALARI ****************//
const int input_pins[] = {28,30,26,32,24,34,22,36,52,38,50,40,48,42,46,44};
const int output_pins[] = {31,29,33,27,35,25,37,23,39,53,41,51,43,49,45,47};

//***************** KONFİGURASYON AYARLARI *****************//
void setup()
{
  for (int i = 0; i < 16; i++)                              // 16 input ve output
  {
    pinMode(input_pins[i], INPUT_PULLUP);                   // girişleri ayarla
    pinMode(output_pins[i], OUTPUT);                        // çıkışları ayarla
    digitalWrite(output_pins[i], HIGH);                     //çıkışları sıfırla
  }
}

//************************ ANA PROGRAM *********************//
void loop()
{
  for (int i = 0; i < 16; i++)
  {
    if (digitalRead(input_pins[i]) == 0)
    {
      digitalWrite(output_pins[i], LOW);
    }
    else
    {
      digitalWrite(output_pins[i], HIGH);
    }
  }
  delay(50);
}

İyi çalışmalar,


0 yorum

Bir cevap yazın

Avatar placeholder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.