Haberler

Dönme Kodlayıcıları – Nasıl çalışır, Arduino ile nasıl kullanılır

Dönme enkoderi, dönen bir milin açısal konumunu belirlemek için kullanılan bir konum sensörüdür. Bu işlevselliği elde etmek için modüller aracılığıyla bir Arduino ile kullanılabilir. Farklı işlevsel teknolojileri benimseyen iki ana tür döner enkoder (Kesin enkoder ve Artımlı enkoder) mevcut olduğundan, bunların nasıl çalıştığını merak etmek kaçınılmazdır.

Bu nedenle, bugünkü döner enkoder eğitiminde, döner enkoderler hakkında bilmeniz gereken her şeyi ve bunu Arduino ile nasıl kullanmaya başlayabileceğinizi anlatacağım!


Döner Enkoder Türleri ve Nasıl Çalışır?

Mekanik Kesin Döner Enkoderler

Kesin bir döner enkoder, kodlanmış milin her konumu için benzersiz bir kod ile açıyı ölçen bir enkoderdir. Bu sayede, ölçüm aralığındaki her konum, bir diskte belirli bir kod ile tanımlanır. Bu, sayıcıların gereksinimini ortadan kaldırır çünkü konumsal değerler, enkoderin gücü kesildiğinde bile her zaman doğrudan erişilebilir durumdadır.

Mekanik bir kesin enkoder, metal bir disk ile inşa edilen yaygın bir düşük maliyetli seçenektir ve şu şekilde çalışır:

  • Bir mil üzerindeki metal disk, sabit bir alıcı cihaz ile birlikte kullanılır ve döner
  • Mil dönerken, benzersiz bir kod deseni üretilir
  • Bu, milin her konumunun bir desene sahip olduğu anlamına gelir
  • Bu desen, tam konumu belirlemek için kullanılır

Yukarıdaki açıklama, mekanik kesin döner sensörün nasıl çalıştığını açıklar, ancak döner konum değişikliklerini algılamak için iki başka yöntem vardır; Optik veya manyetik sensör değişiklikleri. Bu iki algılama yöntemini aşağıda tartışacağız.

Optik Kesin Döner Enkoderler

Optik kesin döner enkoderler, ışık kaynağının ve fotodetektörün optik desenleri algılamasına izin vermek için şeffaf ve opak yüzey alanlarına sahip cam veya plastik malzeme disk ile inşa edilir. Bu tür bir algılama, diskin konumunu herhangi bir anda belirlemeye yardımcı olur.

Optik döner enkoderlerle konum belirleme süreci:

  1. Mil ile bağlı disk döner
  2. Diskin desenine bağlı olarak, geçen ışık ya iletilir ya da engellenir
  3. İletilen ışık, fotodetektörde elektrik akımlarına dönüştürülür
  4. Dönüştürülen akım, konumu, hızı, açıyı vb. belirlemek için dijital sinyallere dönüşür

Manyetik Kesin Enkoderler

Manyetik kesin enkoderler, enkoder konumunu temsil etmek için bir dizi manyetik kutup ile inşa edilir ve genellikle Hall Etkisi veya manyetorezistif sensörler kullanır. Optik enkoderlerle benzer bir çalışma prensibine sahiptir, ancak ışık yerine sensörler, manyetik alanlardaki değişiklikleri algılar.

Manyetik döner enkoderlerle konum belirleme süreci:

  1. Disk bağlı döner
  2. Manyetik sensörler, dönerken manyetik alandaki değişikliği algılar
  3. Bu tür değişiklikler sinüs dalgalarına dönüştürülür ve istenen çıktıyı üretmek için dijital sinyallere yükseltilir

Artımlı Enkoder

Kesin enkoderlerle karşılaştırıldığında, artımlı enkoder, kodlanmış milin kesin açısını okumak yerine açısal yer değiştirmelerdeki değişiklikleri okuyarak çalışır.

Artımlı enkoder nasıl çalışır

Ayrıca bir quadrature olarak bilinen döner artımlı enkoder, mil dönerken kare dalgalar üreten iki çıkış sinyali, A ve B’ye sahiptir. Kare dalga frekansı, milin dönüş hızını gösterirken, A-B faz ilişkisi dönüş yönünü gösterir.

Bazı döner artımlı enkoderler, milin dönerken çıkardığı darbe sayısını sayan ayrı bir sayıcı aracılığıyla dönüş miktarını belirler.

Böyle döner artımlı enkoderler, manyetik döner enkoderlerle konum belirleme sürecinden geçer:

  • Milin döner yer değiştirmesi gerçekleşir
  • Bunun sonucunda, enkoder buna göre bir darbe dizisi çıkarır
  • Referans noktasında yer alan ayrı bir sayıcı, istenen çıktıyı üretmek için darbe sayısını sayar

Döner Enkoderler vs Potansiyometre

Döner enkoderleri daha iyi anlamak için, en yakın karşılaştırması olan potansiyometre ile karşılaştırmaktan daha iyi bir yol yoktur; çünkü bir milin dönüşünü algılayan cihazlar söz konusu olduğunda genellikle ikisi arasında bir seçim yapılır.

İkisi arasındaki karşılaştırmalı detaylara girmeden, işte döner enkoderlerin günümüzde daha çok tercih edilen seçenek olmasının nedenleri:

  • Dijital giriş, analog giriş ile karşılaştırıldığında, çıktının mikrodenetleyici ile kolayca eşleştirilmesini sağlar
  • Sürekli dönebilme yeteneği, mükemmel çözünürlük sağlar
  • Açık açısal konum, daha yüksek hassasiyet, bilinen temas ve döngü açısı sınırlaması olmaması

Ancak, bununla birlikte, mikrodenetleyici kartları ile kolay eşleştirme sağlayan dijital potansiyometreler de mevcuttur.


Döner Enkoder Seçimi ve Uygulama

Bir sonraki Arduino projeniz için bir döner enkoder seçme sürecinizi kolaylaştırmak için, Seeed’den bazı öneriler hazırladık! Muhtemelen bu yerleştirmeleri daha önce görmüşsünüzdür, ancak her seçeneğin sunduğu şeylerin bir dökümünü burada bulabilirsiniz.

Anahtarlı Döner Enkoder

Arduino ile döner mil algılamaya başlamak için basit bir döner enkodere mi ihtiyacınız var? Bu önerilen seçenek tam size göre!

Toplamda 5 pini olan bu cihazın, bir tarafta döner kodlama için 3 pin bulunmakta ve basıldığında diğer iki pin kısa devre yapmaktadır; bu sayede kullanırken herhangi bir işlevsellikten yoksun kalmazsınız!

Bu döner enkoderi Arduino ile nasıl kullanabileceğinizi öğrenmek isterseniz, lütfen ürün sayfamızı kontrol edin!

Grove – 12-bit Manyetik Döner Konum Sensörü / Enkoder (AS5600)

Hem manyetik potansiyometre hem de manyetik enkoder olarak mükemmel güvenilirlik ve dayanıklılıkla çalışabilen bir seçeneğe mi ihtiyacınız var? Bu seçenek tam size göre!

Hem iki şekilde de çalışmakla kalmaz, hem de geleneksel bir enkoder/potansiyometre ile karşılaştırıldığında, Grove – AS5600, temas etmeyen, açısal dönüş sınırlaması olmayan ve yüksek hassasiyetli bir seçenektir!

  • Bu, Hall Etkisi’ne dayanan yerleşik Hall sensörü ile mümkün kılınmıştır

Arduino ile arayüz sağlamak, yerleşik Grove Arayüzümüz sayesinde basit hale gelir; jumper kabloları ve breadboard kullanmak yerine tak ve çalıştır!

Daha fazla bilgi almak isterseniz; veri sayfasını ve bu döner enkoderi Arduino ile nasıl kullanabileceğinizi kontrol edin ürün sayfamızdan!

“`html

Grove – Optik Rotary Encoder

Sonunda en iyisini sakladık; bu optik rotary encoder, bir infrared verici ve iki fototransistör dedektörü içerir. Sadece hız/dönüş algılamak için değil, aynı zamanda dönüş yönünü de algılamak için uygundur!

Özellikleri şunlardır:

  • Çift fototransistör dedektörleri, dönüş yönünü belirleyebilir
  • Üzerinde LED göstergeleri
  • Arduino ile kullanım kolaylığı için Grove Arayüzü

Uygulamalar:

  • Otomotiv optik sensörleri
  • Encoder için hassas konum sensörü
  • Hareket, hız ve yön için sensör
  • “Dön ve it” kodlama için sensör

Not: Bu rotary encoder’ı daha sonra Arduino eğitimimizde kullanacağız, ancak daha fazla bilgi edinmek istiyorsanız ürün sayfamıza gidebilirsiniz!


Arduino ile Rotary Encoder Eğitimi

Artık Rotary Encoder’ın prensiplerini anladığımıza göre, bu eğitimle Arduino ile nasıl kullanabileceğinizi göstereceğiz!

Bu eğitim için ihtiyaç duyacaklarınız:

  • Seeeduino, Seeed’in kendi Arduino kartıdır ve orijinaline göre göreceli avantajlarla inşa edilmiştir
  • Bu eğitim için bir Arduino kartı kullanmak isterseniz, bu kartlar için geçerlidir
    • Arduino UNO, Arduino Mega, Arduino Leonardo, Arduino 101, Arduino Due

Donanımı birleştirmeye başlamadan önce, lütfen aşağıdakileri dikkate alın:

  • USB kablosunu nazikçe takın, portu zarar vermemek için ve veri aktarımını sağlayabilmek için 4 tel içeren USB kablosunu kullandığınızdan emin olun, 2 tel olan kablo veri aktarımı yapamaz

Donanım Montajı ve Pin Haritası:

Donanımı bir araya getirmeden önce, kullandığımız rotary encoder’ın donanım genel görünümünü ve pin haritasını burada bulabilirsiniz:

Donanım Montajı:

  • Adım 1: Grove – Optik Rotary Encoder’ı Base Shield’ın D5 portuna bağlayın
  • Adım 2: Grove – Base Shield’ı Seeeduino’ya takın
  • Adım 3: Seeeduino’yu bir USB kablosu ile PC’ye bağlayın

Yukarıdaki adımları tamamladıktan sonra şöyle görünmelidir:

Yazılım Konfigürasyonları ve Arduino Kütüphane Kodu

  • Adım 1: Arduino IDE’de Encoder Kütüphanesini yüklemek için imlecinizi Sketch -> Kütüphane Ekle -> Kütüphaneleri Yönet üzerine getirin
  • Adım 2: Açılan pencerede encoder’ı arayın ve Paul Stoffregen tarafından Encoder’ı bulun, Versiyon 1.4.1’i seçin ve yükle’ye tıklayın

Kütüphane yüklendiğinde, durum “yüklendi” olarak değişecek ve şimdi kapat’a tıklayabilirsiniz

  • Adım 3: Arduino IDE’yi yeniden başlatın. Aşağıdaki üç yoldan birini kullanarak örneği açın:
    • Arduino IDE’de doğrudan açmak için yol: Dosya -> Örnekler -> Encoder -> Temel
    • Bilgisayarınızda açmak için Basic.pde dosyasını tıklayın, bu dosyayı xxxx\Arduino\libraries\Encoder\examples\Basic konumunda bulabilirsiniz, burada XXXX Arduino IDE’yi yüklediğiniz yerdir
    • Aşağıdaki kodu yeni bir skeçte Arduino IDE’ye kopyalayın ve yapıştırın

Arduino Kodu:

/* Encoder Library - Basic Example
 * http://www.pjrc.com/teensy/td_libs_Encoder.html
 *
 * This example code is in the public domain.
 */

#include <Encoder.h>

// Change these two numbers to the pins connected to your encoder.
//   Best Performance: both pins have interrupt capability
//   Good Performance: only the first pin has interrupt capability
//   Low Performance:  neither pin has interrupt capability
Encoder myEnc(5, 6);
//   avoid using pins with LEDs attached

void setup() {
  Serial.begin(9600);
  Serial.println("Basic Encoder Test:");
}

long oldPosition  = -999;

void loop() {
  long newPosition = myEnc.read();
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    Serial.println(newPosition);
  }
}

Hızlı İpucu: Encoder’ınıza bağlı pinleri değiştirebilirsiniz. En iyi performans için; her iki pinin de kesme yeteneği vardır, bu nedenle kodun 13. satırını Encoder myEnc (2, 3) olarak değiştirebilirsiniz. Bu arada, sensörü base shield’ın D2 portuna bağlamalısınız.

  • Adım 4: Demo’yu yükleyin. Bunu nasıl yapacağınızdan emin değilseniz, kod yükleme kılavuzumuza göz atın
  • Adım 5: Arduino IDE’nin Seri Monitörünü açmak için Araçlar -> Seri Monitör’e tıklayın veya klavyenizde Ctrl + Shift + M tuşlarına basın. Baud hızını 9600 olarak ayarlayın

Eğer yukarıdaki eğitimi adım adım takip ettiyseniz, başarıya ulaşmalı ve aşağıdaki sonucu elde etmelisiniz:

Basic Encoder Test:
0
1
2
3
4
3
2
1
0
-1
-2
-3
-4

Artık engeli soldan sağa hareket ettirdiğinizde, sayım değeri 1 artacak ve engeli sağdan sola hareket ettirdiğinizde, sayım değeri 1 azalacaktır!


Özet

Bugünkü Rotary encoder’lar ve Arduino ile nasıl kullanılacağına dair rehberimiz bu kadar. Umarım bu, rotary encoder’ların ne olduğunu ve nasıl çalıştığını anlamanıza yardımcı olur!

“`

Leave a Reply

Your email address will not be published. Required fields are marked *