Haberler

Arduino İvmeölçerler: ADXL356, ADXL345 vs ADXL335

Mems ivmeölçerler basit, taşınabilir ve uygulanabilir, ama nasıl başlayacağız? Hangi ivmeölçer bir sonraki Arduino projeniz için en uygun? Bu blogda, sizi 3 eksenli bir ivmeölçer olan ADXL356 ile tanıştıracağım. Ayrıca ADXL345 ile ADXL335 karşılaştırmasını da ele alacağım!

Seeed’de, Arduino kartlarıyla bağlanmak için geniş bir 3 eksenli ivmeölçer yelpazesi sunuyoruz. Ancak, uygun birini nasıl seçeceğinizi merak ediyorsanız veya bir satın alma kılavuzu arıyorsanız, makaleme göz atabilirsiniz.

ADXL356

ADXL356, endüstriyel sınıf, yüksek stabilite, hassasiyet ve düşük güç tüketimine sahip ADI ADXL serisi üç eksenli bir ivmeölçerdir.

Analog çıkışlı ADXL356, düşük gürültü yoğunluğu, düşük 0 g ofset kayması ve düşük güç tüketimi ile seçilebilir ölçüm aralıklarına sahip bir 3 eksenli ivmeölçerdir. ADXL356, endüstri lideri gürültü, sıcaklık değişimlerinde minimal ofset kayması ve uzun vadeli stabilite sunarak, minimal kalibrasyon ile hassas uygulamalar sağlar.

ADXL356’nın iki versiyonu vardır:

  • ±10 g ve ±20g aralığını destekleyen ADXL356B
  • ±10g ve ±40g aralığını destekleyen ADXL356C

Gördüğünüz yukarıdaki ivmeölçer sensörü, ADXL356C versiyonunu kullanan Grove – 3-Axis Analog Accelerometer ±40g‘dir. Endüstriyel sınıf teknolojisi, az kalibrasyon gerektiren nispeten doğru sonuçlar elde edilmesini sağlar.

ADXL356C’nin entegrasyonu, Grove-3-Axis Analog Accelerometer üzerinde performans avantajları sunar. İşte neden harika olduğu:

Endüstri lideri teknoloji

Minimal kalibrasyon ile hassas uygulamalar, endüstri lideri gürültü, sıcaklık değişimlerinde minimal ofset kayması ve uzun vadeli stabilite ile sağlanabilir.

Uzun vadeli sıcaklık stabilitesi

Hermetik paketi, 0g ofsetin sıcaklıkla karşılaştırıldığında mükemmel uzun vadeli stabilite sunar (tüm eksenler için): maksimum 0.75mg/
°C

Kablosuz durum izleme için ideal

ADXL356’nın yüksek frekanslardaki düşük gürültüsü, kablosuz durum izleme için idealdir.

Ultra düşük güç tüketimi

Normal çalışma modu – 150 μA, Bekleme modu ise yalnızca 21 μA’dır.

Grove-3-Axis Analog Accelerometer ±40g (ADXL356C)’yi özel kılan nedir?

Bu ivmeölçerdeki entegre Grove portu, 4 pinli Grove arayüzünü kullanarak tak-çalıştır kullanımına olanak tanır. Bu sayede standart Arduino cihazınıza veya Seeeduino’ya (Seeed’in Arduino versiyonu) bağlamak kolaydır; geleneksel karmaşık ve dağınık jumper kabloları yerine.

Ürün uygulamaları şunları içerir:

  • İvme ölçüm birimleri (IMU’lar)/yükseklik ve yön referans sistemleri (ADHR’ler)
  • Platform stabilizasyon sistemleri
  • Durum izleme
  • Sismik görüntüleme
  • Eğim algılama
  • Robotik

ADXL serisi karşılaştırması: ADXL356 vs ADXL345 vs ADXL335

Ana farklılıklar aşağıdaki tabloda ele alınmıştır, daha sonra daha ayrıntılı inceleyeceğiz.

ADXL356 ADXL345 ADXL335
Aralık ±10g ile ±40g ±16g ±3g, küçük aralıkta hassas okumalar
Arayüz Analog SPI, I²C Analog
Güç Tüketimi Düşük
Tipik: 150µ
Düşük
Tipik: 140µ
Standart
Tipik: 350µ
Fiyatlandırma Yüksek Düşük En düşük
Bonus Özellikler Önceki bölümde ele alındı Bazı yerleşik fonksiyonlar Bonus Özellik Yok

ADXL356: Özellik Kralı

ADXL356’nın, ivmeölçer spektrumunun üst segmentine ait olması nedeniyle, genel olarak daha iyi özelliklere sahip olduğunu söyleyebiliriz. Bu nedenle, diğer iki modelle doğrudan karşılaştırmasını daha fazla incelemeyeceğiz, çünkü bu en adil olanı olmaz.

ADXL335 vs ADXL345

ADXL335, ölçüm modunda 150 μA düşük güç tüketimi ile üç eksenli bir MEMS ivmeölçerdir! Bu analog ivmeölçer, ±3 g minimum tam ölçek aralığına sahip düşük g ivmeölçerdir. Grove ADXL335, ±3 g minimum tam ölçek aralığı ile ivmeyi ölçebilir. Eğim algılama uygulamalarında yerçekiminin statik ivmesini ve hareket, darbe veya titreşimden kaynaklanan dinamik ivmeyi ölçebilir. Yerleşik Grove konektörü ile, bunu Arduino kartınıza kolayca takıp çalıştırabilirsiniz.

ADXL345, mobil cihaz uygulamaları için oldukça uygundur. Eğim algılama uygulamalarında yerçekiminin statik ivmesini ve hareket veya darbeden kaynaklanan dinamik ivmeyi ölçer. Yüksek çözünürlüğü (3.9 mg/LSB), 1.0°’den daha az eğim değişikliklerini ölçmeyi sağlar. Grove – ADXL345, ölçüm modunda 23 μA ve bekleme modunda 0.1 μA kadar düşük güç tüketimi ile birlikte gelir. Düşük güç modları, eşik algılama ve aktif ivme ölçümü ile akıllı hareket tabanlı güç yönetimi sağlar ve son derece düşük güç tüketimi ile çalışır. Ayrıca, Arduino kartları ve Seeeduino kartları ile kolayca bağlanmak için yerleşik 4 pinli Grove arayüzü (3-5VDC) vardır.

Uygulamalar:

ADXL345, dijital arayüzü sayesinde mobil uygulamalar için daha uygundur ve daha fazla potansiyel projeye kapı açar.

Kullanım Kolaylığı:

ADXL335, SPI/I2C yerine analog arayüzü sayesinde daha kolay kullanılabilir.

Genel karşılaştırma:

Genel olarak, ADXL335, ADXL345’in sahip olduğu aşağıdaki avantajları kaybeden daha eski bir ivmeölçer versiyonudur:

  • Daha geniş aralık
  • Daha iyi hassasiyet
  • Şunlar gibi bonus özellikler:
    • Aktif olmayan algılama
    • Serbest düşüş algılama
  • 1°’den daha az açı ölçümü
  • Daha düşük güç tüketimi

Bu avantajlar, ADXL345’i daha maliyet etkin bir seçenek haline getiriyor, ancak kullanım kolaylığı açısından bir şey akılda tutulmalıdır; SPI/I2C iletişim protokolü nedeniyle kullanımı karmaşık hale geliyor.


Önerilen İvmeölçerler

Karşılaştırmalı avantajlara rağmen, projenizin amacını keşfetmeli ve en uygun olanı seçmelisiniz. Her bir ivmeölçeri aşağıdaki gibi öneririm:

  • En maliyet etkin seçenek: ADXL345
  • Başlangıç/ilk kez kullanıcı seçeneği: ADXL335
  • En iyi performans ve en geniş kullanım uygulamaları: ADXL356

*Not: Tüm ivmeölçerler Arduino ile uyumludur

Eğer bir tercihiniz yoksa, işte kişisel önerim:

ADXL356, daha yüksek fiyat etiketine rağmen, uzun vadeli bir yatırım olarak düşünün. Kullanım kolaylığı ve en geniş olası uygulamalar, başlangıç kullanıcılarının kolayca başlamasını ve ileri düzey kullanıcıların faydalı bulmasını sağlar.


ADXL356 ile başlamak

ADXL356’yı almak konusunda düşünceleriniz varsa, bu bölüm sizin için. Eşleştirme kılavuzunu sizinle paylaşacağım.

İhtiyacınız olanlar:

“`html

*Seeeduino, Seeed’in Arduino Kartı versiyonudur

Donanım bağlantısı

  • Adım 1: Grove – 3-Axis Analog Accelerometer ±40g (ADXL356C) modülünü base shield’in A0 portuna bağlayın
  • Adım 2: Grove – Base Shield’i Seeeduino’ya takın
  • Adım 3: Seeeduino’yu bir USB kablosu ile PC’ye bağlayın

Yazılım yapılandırmaları

Arduino ile çalışıyorsanız, devam etmeden önce Arduino ile Başlarken sayfasını görmenizi öneririm

  • Adım 1: Github’dan Seeed_ADXL_356.ino dosyasını indirin veya aşağıdaki kodu kopyalayın:
#include <Arduino.h>

#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
  #define SERIAL SerialUSB
  #define SYS_VOL   3.3
#else
  #define SERIAL Serial
  #define SYS_VOL   5
#endif

float cali_data_xy;
float cali_data_z;
int16_t scale;

#define MODUEL_RANGE           40

#define MODULE_VOL             1.8

#define CALI_BUF_LEN           15
#define CALI_INTERVAL_TIME     250

float cali_buf_xy[CALI_BUF_LEN];
float cali_buf_z[CALI_BUF_LEN];

#define XY_PIN   A0
#define Z_PIN    A1

float deal_cali_buf(float *buf)
{
    float cali_val = 0;

    for(int i = 0;i < CALI_BUF_LEN;i++)
    {
        cali_val += buf[i];
    }
    cali_val = cali_val/CALI_BUF_LEN;
    return (float)cali_val;
}


void calibration(void)
{
    SERIAL.println("Lütfen modülü yatay konumda yerleştirin!");
    delay(1000);
    SERIAL.println("Kalibrasyona başlıyor........");

    for(int i=0;i<CALI_BUF_LEN;i++)
    {
        cali_buf_xy[i] = analogRead(XY_PIN);;
        cali_buf_z[i] = analogRead(Z_PIN);
        delay(CALI_INTERVAL_TIME);
    }
    cali_data_xy =  deal_cali_buf(cali_buf_xy);
    cali_data_z =  (float)deal_cali_buf(cali_buf_z);
    SERIAL.println("Kalibrasyon tamamlandı!!");
    scale = (float)1000 / (cali_data_z - cali_data_xy);
    cali_data_z -= (float)980 / scale;
    SERIAL.println(cali_data_xy);
    SERIAL.println(cali_data_z);
    SERIAL.println(scale);
}

void AccMeasurement(void)
{
    int16_t val_xy = 0;
    int16_t val_z = 0;
    val_xy = analogRead(XY_PIN);
    val_z = analogRead(Z_PIN);

    SERIAL.print("Ham veri xy  = ");
    SERIAL.println(val_xy);
    SERIAL.print("Ham veri z  = ");
    SERIAL.println(val_z);
    SERIAL.println(" ");

    val_xy -= cali_data_xy;
    val_z -= cali_data_z;
    SERIAL.print("x veya y pozisyonu ivmesi ");
    SERIAL.print(val_xy * scale / 1000.0);
    SERIAL.println(" g ");
    SERIAL.print("z pozisyonu ivmesi ");
    SERIAL.print(val_z * scale / 1000.0);
    SERIAL.println(" g ");
    SERIAL.println(" ");
    SERIAL.println(" ");
    SERIAL.println(" ");
    delay(1000);
}

void setup()
{
    SERIAL.begin(115200);
    #ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
    analogReadResolution(12);
    #endif
    calibration();
    SERIAL.print("Ölçek = ");
    SERIAL.println(scale);
}

void loop()
{
    AccMeasurement();
}
  • Adım 2: Demo’yu yükleyin. Kodu nasıl yükleyeceğinizden emin değilseniz, lütfen Kodu yükleme sayfasına bakın
  • Adım 3: Arduino IDE’nin Seri Monitörünü açmak için Araçlar-> Seri Monitör’e tıklayın. Veya Ctrl+Shift+M tuşlarına aynı anda basın. Baud hızını 115200 olarak ayarlayın
  • Adım 4: Kalibrasyon. Seri Monitördeki kalibrasyon ipuçlarını takip edin. Birkaç adımda tamamlanacaktır.
  • Adım 5: Sensör artık kullanılabilir, çıktı şu şekilde görünecektir
Lütfen modülü yatay konumda yerleştirin!
Kalibrasyona başlıyor........
Kalibrasyon tamamlandı!!
184.93
185.03
121
Ölçek = 121
Ham veri xy  = 185
Ham veri z  = 193

x veya y pozisyonu ivmesi 0.00 g 
z pozisyonu ivmesi 0.85 g 

Ham veri xy  = 188
Ham veri z  = 196

x veya y pozisyonu ivmesi 0.36 g 
z pozisyonu ivmesi 1.21 g

Özet

Genel olarak, ivmeölçerler birçok günlük uygulamada yaygın olarak kullanıldığından, bugün bir tane edinmeyi düşünebilirsiniz!

  • Grove-3-Axis Analog Accelerometer ±40g (ADXL356C) hakkında daha fazla bilgi için buraya gidebilirsiniz

Bir kez daha, ivmeölçerler ve satın alma rehberi hakkında daha fazla bilgi edinmek istiyorsanız, diğer blog yazımı kontrol edebilirsiniz!

“`

Leave a Reply

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