Arduino
OKUDUĞUNUZ KONU
AS5040 Rotary Encoder İnceleme ve Kullanımı
0

AS5040 Rotary Encoder İnceleme ve Kullanımı

Yazar : Tunahan PARLAYICI30 Haziran 2017

İyi günler arkadaşlar, mezun olmaya yaklaştığım şu günlerde işsizliğin de vermiş olduğu bir boşlukla birlikte kendimi yazıya vermiş bulunmaktayım dua edin iş bulayım, ne kadar çabuk iş bulursam sizin başınızı o kadar az ağrıtırım, ayrıca ilk yazım olması sebebiyle kusurlarım olursa affola. Şaka bir yana, bu gün size mühendisliğin vazgeçilmez elemanları olan sensörlerden biri hakkında bilgiler vereceğim.

Algılayıcımızın adı “AS5040 Rotary Sensor”. AMS adında Avusturya merkezli bir şirketin üretmiş olduğu bu sensör, adından da anlaşılacağı gibi bir açı algılayıcı. Açı algılayıcılar etrafımızda pek kullanılmıyor gibi görünsede aslında, robotikten milli savunmaya birçok alanda kullanılmaktadır. Örneğin, bir robot kolun, eklem (joint) noktasındaki iki elemanın arasındaki açıyı veya bir tankın taretinin açısını hesaplayıp istediğimiz yere nişan almasını sağlayabiliriz.

Elbette kullanıldığı yere göre, bu algılayıcıların kaliteleri dolayısıyla da fiyatları değişmektedir. AS5040 Rotary Sensor ise hem bir öğrencinin işini rahatlıkla görecek hem de fiyatı karşılanabilecek bir elektronik elemanımızdır.

Elemanımızın öbek çizeneği ve uyarlayıcısı ile birlikte resimleri aşağıdaki gibidir.

 

AS5040 10 bit çözünürlüğe ve dakikada 30000 devir ölçme yeteneğine sahiptir. Ayrıca besleme gerilimi 3.3 veya 5 volttur, bu yüzden de mkrodenetleyiciler ile kolay bir şekilde çalışabilmektedir. Nasıl çalıştığına gelecek olursak, AS5040’ın hemen önüne yerleştirilen bir mıknatıs sayesinde (satın aldığınızda yanında gönderiliyor) mıknatısın dönüşünde oluşan manyetik farklılığı algılıyor. Burada mıknatısın dengeli birşekilde ve AS5040’a paralel olacak şekilde duruyor oluşu önemli bir faktör yoksa, dönüşlerde manyetik alanda istenmeyen değişikliklere yol açıp açının yanlış algılanmasına neden olabilmektedir.

AS5040’ın mikrodenetleyici bağlantısı çok basittir. Aşağıda AMS tarafından yayınlanan Arduino kodları ile bağlantı bilgisi yer almaktadır.


#include <AS5040.h>

// CHANGE THESE AS APPROPRIATE
#define CSpin 2
#define CLKpin 3
#define DOpin 4

// OUTPUT PINS
#define enc_a 6
#define enc_b 7
#define enc_z 8
AS5040 enc (CLKpin, CSpin, DOpin) ;

// Set mode to quadrature (A + B + index), monitor via serial IF
void setup ()
{
Serial.begin (115200) ; // NOTE BAUD RATE
if (!enc.begin ())
Serial.println ("Error setting up AS5040") ;
}

void loop ()
{
Serial.print (enc.read (), HEX) ;
Serial.print (" ") ;
Serial.print (enc.status (), BIN) ;
Serial.print (" ") ;
Serial.print (enc.valid () ? "OK" : "Fault") ;
Serial.print (" ") ;
Serial.println (enc.Zaxis ()) ;
delay (400) ;
}

Kodlar denenmiştir ve herhangi bir sorun bulunmamaktadır. Arduino kodu istenilen açıyı 1023 üstünden hesaplamaktadır, istenildiği takdirde !enc.read () üstünde ufak bir matematik hesaplaması ile açıyı 360 derece cinsine çevirebilirsiniz.

Arduino kodları, kütüphanesi, resimler AMS’nin sitesinden alınmıştır, daha ayrıntılı bilgi için aşağıda verilmiş olan kaynakları inceleyebilirsiniz.

Kaynaklar

http://ams.com/eng/Support/Demoboards/Magnetic-Position-Sensors/Angle-Position-On-Axis/AS5040-Adapterboard

http://ams.com/eng/Products/Magnetic-Position-Sensors/Angle-Position-On-Axis/AS5040

Dipçe: Kullanmayı düşünenler için adaptörlü olanı tavsiye ederim, ayrıca yanında mıknatısı ile gelmektedir.

SİZCE NASIL OLMUŞ?
Beğendim
86%
İlginç
14%
Eh İşte
0%
Anlamadım
0%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Tunahan PARLAYICI
Tunahan PARLAYICI
Opera dinleyen, gitar çalan, tiyatro oynayan, boş zamanlarında uzayı izleyen... şaka şaka sadece mühendis olmaya, İTÜ'de kazasız belasız yüksek lisansını bitirmeye çalışan bir Konyalı. Etliekmeğin gücü adına!
YORUMLAR

YORUM YAP