Tuş takımı kullanarak aktüatör nasıl kontrol edilir?

Bir Aktüatörü Tuş Takımıyla Nasıl Kontrol Edersiniz

Josh Nigh
Josh Nigh
PA Engineer

Bazen projelerimiz ek güvenlik gerektirir. Bu durum; kapı kilit mekanizmaları, makinelerin güvensiz veya yetkisiz kullanımının önlenmesi ya da daha niş bir örnek olarak kaçış odası aksesuarları gibi birçok farklı uygulamada karşımıza çıkabilir. Bu yazıda sizi bir tuş takımı–aktüatör montajı üzerinden geçirecek ve lineer aktüatörünüzün çalışmasını nasıl parola ile koruyabileceğinizi anlatacağız.

Şunları kullanacağız:

Aktüatörünüzün Kablolaması

Önce kablolamayla başlayacağız. Aktüatörünüzü uzatıp geri çekebilmek için 2 kanallı röle modülümüzün her iki kanalını da kullanmamız gerekecek. Böylece Röle Bir aktifken akım bir yönde, Röle İki aktifken ise akım tam tersi yönde akacaktır. Rölelerin hiçbiri veya ikisi birden aktif değilse aktüatöre akım gitmez. Bunu başarmak için aşağıdaki bağlantıları yapmamız gerekir.

Rölelerden Aktüatöre ve Güç Kaynağına

  • +12V, NC1’e (röle bir üzerindeki normalde kapalı uç) (beyaz kablo).
  • -12V, NO1’e (röle bir üzerindeki normalde açık uç) (siyah kablo).
  • NC1’den NC2’ye (mavi jumper kablo).
  • NO1’den NO2’ye (yeşil jumper kablo).
  • COMMON1’den Aktüatöre (aktüatörün kahverengi kablosu).
  • COMMON2’den Aktüatöre (aktüatörün mavi kablosu).

Arduino’dan Tuş Takımına ve Röle Modülüne

  • Tuş takımındaki Pin 1-8’i, Arduino üzerindeki pin 2-9’a bağlayın (bu sırayla).
  • Arduino Pin 10, röle modülünde IN1’e.
  • Arduino Pin 11, röle modülünde IN2’ye.
  • Arduino 5V, röle modülünde VCC’ye.
  • Arduino GND, röle modülünde GND’ye.
  • Buzzer anodunu (uzun bacak) pin 12’ye bağlayın (isteğe bağlı).
  • Buzzer katodunu (kısa bacak) GND’ye bağlayın (isteğe bağlı).
    Arduino’dan Tuş Takımına ve Röle Modülüne

     

    Projenizin Kodlanması

    Tüm bağlantılarımızı yaptıktan sonra, artık koda hazırız. Bu kodun amacı, bir tuş takımından gelen girişleri okumak, doğru 5 haneli girişi aramak ve rölelerimizi buna göre çalıştırmaktır. Ayrıca geri bildirim sağlamak için isteğe bağlı bir buzzer kodu da vardır. Buzzer kullanmak istemiyorsanız, onu bağlamayabilir ve kodu olduğu gibi bırakabilirsiniz. Buzzer pinini başka bir şey için kullanmanız gerekiyorsa buzzer veya “beep” (bip) işlevleri için kullanılan tüm kodu silin veya yorum satırı yapın.

    Aşağıdaki kodda neredeyse her satırda yorumlar bulacaksınız (“//” işaretini takip eden açık gri metin). Bu yorumlar, sketchte neler olduğunu ve yapabileceğiniz değişiklikleri açıklar. Ayrıca daha ayrıntılı bir açıklama için burada bazı önemli bölümleri de parçalara ayıracağız.

    Aktüatörünüz için sınırsız kontrol seçenekleri sunan Arduino mikrodenetleyicilerimizi kullanın!

    Kurulum Kodu

    Kurulum kodumuzda, buzzer ve röle pinlerimizi çıkış olarak tanımlayacağız. Buzzer LOW’da başlayacak ve röleler HIGH’da başlayacak. Bu sayede Arduino’ya ilk güç verdiğimizde hepsi pasif olacaktır. Ayrıca Arduino’nun aktüatörün doğru durumunu bilmesi için “retract ()” fonksiyonunu bir kez çalıştıracağız.

     void setup() //başlangıçta bir kez çalışır { digitalWrite(buzzer, LOW);//buzzer’ı devre dışı bırakır digitalWrite(relay1,HIGH);//relay1’i devre dışı bırakır digitalWrite(relay2,HIGH);//relay2’yi devre dışı bırakır for(int i=10;i<14;i++) { pinMode(i,OUTPUT);//10 - 13 numaralı pinleri çıkış yapar } Serial.begin(9600);//Seri monitörü 9600 baud hızında başlatır (yalnızca hata ayıklama için) retract();//aktüatör başlangıçta uzatılmış değilse geri çeker; başlangıçta geri çekmesini istemiyorsanız bu satırı yorumlayın Serial.println("READY");//seri monitörün çalıştığını bildirir } 

    Tuş Takımı Kodu

    Bu sketch için Keypad.h kütüphanesini kullanıyoruz. Bu kütüphane, tuş takımımızdan giriş almak için kullandığımız işlevleri içerir. Bu kütüphaneyi kullanabilmek için, tuş takımımızdaki karakterleri eşlemek üzere iki boyutlu bir dizi oluşturmamız gerekir. Bu, önce tuş takımındaki satır sayısını ve sütun sayısını tanımlayarak yapılabilir. Ardından, tuş takımındaki her karakteri içeren dizimizi oluştururuz. Tuş takımımızda dört satır, dört sütun ve sekiz çıkış pini bulunur. Her satır için bir pin ve her sütun için bir pin vardır. Bunu kodumuzda, satır pinlerine bağlanan dijital girişleri içeren bir “rowPins” dizisi ve sütun pinlerine bağlanan dijital girişleri içeren bir “colPins” dizisi oluşturarak gösteriyoruz. Bir tuşa bastığımızda, satır pinlerinden birini sütun pinlerinden biriyle bağlarız. Örneğin 2 tuşuna basarsak, birinci satır pini ile ikinci sütun pini arasında kapalı bir devre oluştururuz.

     char customKey; //tuş takımına basılarak girilen karakterler const byte ROWS = 4; //dört satır const byte COLS = 4; //dört sütun char keys[ROWS][COLS] = { //"tuş eşlemenizi" burada düzenleyin {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {2, 3, 4, 5}; //tuş takımının satır pin çıkışlarına bağlanır byte colPins[COLS] = {6, 7, 8, 9}; //tuş takımının sütun pin çıkışlarına bağlanır Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); //NewKeypad sınıfının bir örneğini başlatır 

    Parola Kodu

    Lineer aktüatörün güvenli kontrolüne yönelik bu örnekte parolamız 5 hanedir, bu nedenle “Passcode_Length” değerini “6” olarak tanımlarız. Bunun nedeni, boş karakter için ilave bir alana ihtiyaç duymamızdır. Parola uzunluğunu değiştirmek isterseniz, 6 sayısını, istediğiniz parola uzunluğundan bir fazla olacak şekilde değiştirmeniz yeterlidir. Ardından “Passcode” değerini istediğiniz karakterlere göre değiştirin (varsayılan olarak “12345” ayarlanmıştır).

    Her basılan tuşa karşılık gelen karakter “Input” dizisinde saklanır. Bu dizi 5 karakter içerdiğinde, doğru parolaya sahip olup olmadığımızı görmek için “Input” ile “Passcode” değerlerini karşılaştırır. Değerler eşitse, kodumuz Arduino’ya aktüatörü uzatmasını mı yoksa geri çekmesini mi söyleyecektir (aktüatörün mevcut durumuna bağlı olarak). Parola yanlışsa, buzzer pini hızlıca üç kez yüksek seviyeye, sonra düşük seviyeye gider. Her iki durumda da ardından “clearInput()” fonksiyonu çağrılarak Input dizisi temizlenir ve yeni bir giriş için yer açılır.

    Uzatma ve Geri Çekme Kodu

    Bu kodda birbirine çok benzeyen iki fonksiyonumuz mevcut: “void extend()” ve “void retract()”. Çağrıldığında void extend(), Röle Bir’i LOW yazar ve aktif hâle getirir. Bu, bir devreyi kapatır ve aktüatöre pozitif bir gerilim uygular. Röle, “const int extendTime” değişkenine atanmış süre boyunca aktif kalır (varsayılan olarak 25.000 milisaniye). void retract() fonksiyonu da aynı şeyi yapar; ancak gerilimi ters çevirmek için Röle Bir yerine Röle İki’yi kullanır.

    void extend()//aktüatörü uzat { longBeep(); Serial.println("EXTENDING..."); digitalWrite(relay2,HIGH);//relay2’nin aktif olmadığından emin olur digitalWrite(relay1,LOW);//relay1’i aktif eder delay(extendTime); digitalWrite(relay1,HIGH);//relay1’i devre dışı bırakır Serial.println("DONE EXTENDING"); extended = true; //Arduino’ya aktüatörün uzatıldığını söyler longBeep(); } void retract()//aktüatörü geri çek { longBeep(); Serial.println("RETRACTING..."); digitalWrite(relay1,HIGH);//relay1’in aktif olmadığından emin olur digitalWrite(relay2,LOW);//relay2’yi aktif eder delay(retractTime); digitalWrite(relay2,HIGH);//relay2’yi devre dışı bırakır Serial.println("RETRACTING DONE"); extended = false; //Arduino’ya aktüatörün geri çekildiğini söyler longBeep(); }

    Son Dokunuşlar

    Tüm bağlantıları yaptıktan ve kodumuzu yükledikten sonra, parola korumalı çalışan bir aktüatör kontrol sistemine sahip olmalıyız. İlk kurulumda sorun yaşıyorsanız, Arduino IDE’deki seri monitör aracını kullanmayı deneyin. Sorunlarınızın koddan mı, kablolamadan mı yoksa arızalı bileşenlerden mi kaynaklandığını anlamakta son derece yardımcı olabilir.

    Bu kod, yalnızca parolayı değiştirmekle sınırlı kalmadan da modifiye edilebilir. Hız kontrolü sağlayabilmek için röle kartınızı bir MegaMoto shield ile değiştirmeyi ya da konum kontrolü için Hall etkili geri beslemeye sahip bir aktüatör kullanmayı düşünebilirsiniz.

    Umarız bu makale faydalı olmuştur! Bununla, başka bir uzaktan kumandalı lineer aktüatörle ilgili sorularınız varsa veya projenizi bizimle paylaşmak isterseniz lütfen bizi aramaktan veya e-posta göndermekten çekinmeyin.