ADXL345 3 Eksen İvme Ölçer Sensör Modülü GY-291
ADXL345, küçük, düşük güç tüketimine sahip 3 eksende çıkış verebilen bir açısal ivme ölçer sensörüdür. ±16g'lik bir algılama alanına sahip olup, I²C hattı üzerinden ve SPI hattı üzerinden çıkış alınabilir.
Kart üzerinde dahili voltaj regülatörü bulunduğundan 3-5V arası bir giriş gerilimi ile beslenebilir.Kart üzerinde bununla beraber iki adet kesme pini de bulunmaktadır. Bu pinler, serbest düşüş, dokunma veya çift dokunma için ayarlanarak çıkış vermesi sağlanabilir.
ADXL345 3 Eksen İvme Ölçer Sensör Modülü GY-291, yüksek hassasiyetli, düşük güç tüketimli ve kompakt boyutlu bir ivme ölçer sensörüdür. X, Y ve Z eksenleri boyunca ivme ölçümü yapabilen bu modül, eğim algılama, hareket tespiti ve titreşim analizi gibi çok çeşitli uygulamalar için idealdir.
13-bit çözünürlük ve ±16g'ye kadar ayarlanabilir ölçüm aralığı sunan ADXL345, hem I2C hem de SPI haberleşme protokollerini destekler. Düşük güç tüketimi ve yüksek hassasiyeti sayesinde batarya ile çalışan projelerde bile uzun süreli kullanım sağlar.
ADXL345 3 Eksen İvme Ölçer Sensör Modülü, robotik, giyilebilir teknolojiler, oyun kontrolleri ve hareket algılama projelerinizde kullanım için mükemmel bir seçimdir. Arduino ve diğer mikrodenetleyicilerle kolayca entegre edilebilen bu sensör, Modüller kategorimizde bulunan diğer elektronik bileşenlerle projelerinizi geliştirmenize olanak tanır.
Teknik Özellikler
ADXL345 3 Eksen İvme Ölçer Sensör Modülünün detaylı teknik özellikleri aşağıda listelenmiştir.
- Sensör Tipi: ADXL345 dijital ivme ölçer
- Eksen Sayısı: 3 eksen (X, Y, Z)
- Ölçüm Aralığı: Ayarlanabilir (±2g, ±4g, ±8g, ±16g)
- Çözünürlük: 13-bit (0.004g/LSB, 4mg/LSB)
- Haberleşme: I2C ve SPI arayüzü desteği
- I2C Adresi: 0x53 (varsayılan)
- Besleme Gerilimi: 3.3V - 5V DC
- Çalışma Akımı:
- Ölçüm modunda: 40μA (tipik)
- Bekleme modunda: 0.1μA
- Giriş Pinleri:
- VCC: Besleme voltajı (3.3V - 5V)
- GND: Toprak
- CS: Chip Select (SPI modu için)
- SCL/SCK: Seri Clock (I2C/SPI)
- SDA/SDI: Seri Data (I2C/SPI)
- SDO: Seri Data Out (sadece SPI)
- INT1: Kesme 1
- INT2: Kesme 2
- Özel Fonksiyonlar:
- Serbest düşme algılama
- Tek/çift darbe algılama
- Aktivite/hareketsizlik izleme
- Tepkileme algılama
- Yönelim algılama
- Veri Çıkış Hızı: 0.1Hz - 3200Hz
- FIFO Bellek: 32 seviyeli
- Çalışma Sıcaklığı: -40°C ile +85°C arası
- Boyutlar: 20mm x 15mm x 2mm
- Montaj Delikleri: 2 adet, 2mm çapında
- Şok Dayanımı: 10,000g
Bağlantı ve Kullanım
ADXL345 3 Eksen İvme Ölçer Sensör Modülünün Arduino ve diğer mikrodenetleyicilerle bağlantı şeması ve kullanım talimatları.
İpucu: ADXL345, varsayılan olarak ±2g ölçüm aralığında çalışır. Daha geniş aralıklar için ayarları yazılım üzerinden değiştirmeniz gerekir. Yüksek G uygulamaları için ±16g modunu seçin.
I2C Bağlantısı (Arduino İle):
ADXL345 sensörünü Arduino ile I2C protokolü üzerinden bağlamak için:
- VCC → Arduino 3.3V veya 5V (modül üzerinde voltaj regülatörü varsa)
- GND → Arduino GND
- SDA → Arduino A4 (UNO, Nano) veya SDA pini (Mega, Leonardo)
- SCL → Arduino A5 (UNO, Nano) veya SCL pini (Mega, Leonardo)
- CS → Bağlanmıyor veya VCC'ye bağlanıyor (I2C modu için)
- SDO → GND'ye bağlanarak I2C adresi 0x53 seçilir, VCC'ye bağlanarak 0x1D seçilir
SPI Bağlantısı (Arduino İle):
ADXL345 sensörünü Arduino ile SPI protokolü üzerinden bağlamak için:
- VCC → Arduino 3.3V veya 5V
- GND → Arduino GND
- CS → Arduino Dijital Pin (örn. D10)
- SDO → Arduino MISO (D12)
- SDA → Arduino MOSI (D11)
- SCL → Arduino SCK (D13)
Arduino Kodu Örneği (I2C):
Aşağıdaki örnek kod, ADXL345 sensöründen I2C üzerinden veri okur ve X, Y, Z eksenlerindeki ivme değerlerini seri monitörde gösterir:
#include
#include
#include
Adafruit_ADXL345_U accel = Adafruit_ADXL345_U(12345); // Sensöre benzersiz bir ID veriliyor
void setup() {
Serial.begin(9600);
Serial.println("ADXL345 İvme Sensörü Testi");
// Sensör başlatma
if(!accel.begin()) {
Serial.println("ADXL345 sensörü bulunamadı! Bağlantılarınızı kontrol edin.");
while(1);
}
// Sensör özelliklerini ayarlama
accel.setRange(ADXL345_RANGE_16_G); // Ölçüm aralığını ±16g'ye ayarla
// Sensör detaylarını göster
displaySensorDetails();
}
void loop() {
sensors_event_t event;
accel.getEvent(&event);
// X, Y, Z eksenlerindeki ivme değerlerini yazdır
Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" m/s^2, ");
Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" m/s^2, ");
Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.println(" m/s^2");
delay(500);
}
void displaySensorDetails() {
sensor_t sensor;
accel.getSensor(&sensor);
Serial.println("------------------------------------");
Serial.print("Sensör: "); Serial.println(sensor.name);
Serial.print("Sürücü Ver.: "); Serial.println(sensor.version);
Serial.print("Benzersiz ID: "); Serial.println(sensor.sensor_id);
Serial.print("Maks. Değer: "); Serial.print(sensor.max_value); Serial.println(" m/s^2");
Serial.print("Min. Değer: "); Serial.print(sensor.min_value); Serial.println(" m/s^2");
Serial.print("Çözünürlük: "); Serial.print(sensor.resolution); Serial.println(" m/s^2");
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}
Yukarıdaki kod için "Adafruit_ADXL345_U" ve "Adafruit_Sensor" kütüphanelerini Arduino IDE'deki Kütüphane Yöneticisi'nden yüklemeniz gerekir.
Sensörden tam potansiyel ile yararlanmak için, darbe algılama, aktivite izleme, serbest düşme tespiti gibi özellikleri yapılandırabilirsiniz. ADXL345 veri sayfasında bu özellikler için gereken register ayarları detaylı olarak açıklanmıştır.
Uygulama Alanları
ADXL345 3 Eksen İvme Ölçer Sensör Modülünün kullanılabileceği çeşitli projeler ve uygulama alanları.
Robotik ve Hareket Kontrolü
- Robot dengesi ve yönelim kontrolü
- Dönen veya hareket eden robot parçalarının izlenmesi
- Robotta düşme algılama ve koruma sistemleri
- Uzaktan kumanda ve hareket algılayıcı kontroller
- Drone ve uçan araçların stabilizasyonu
- Self-balancing robotlar ve taşıtlar
Giyilebilir Teknoloji ve Spor Uygulamaları
- Adım sayar ve aktivite izleyici
- Spor hareket analizi cihazları
- Düşme algılama ve acil durum bildirimi
- Uyku kalitesi takip sistemleri
- Sanal ve artırılmış gerçeklik cihazları
- Giyilebilir oyun kontrolleri
Endüstriyel ve Mühendislik Uygulamaları
- Titreşim analizi ve bakım izleme
- Yapısal sağlık izleme sistemleri
- Şok ve darbe kaydedici cihazlar
- Navigasyon ve inertial ölçüm sistemleri
- Eğim ölçer ve seviye sensörleri
- Araç kullanım ve güvenlik sistemleri
Proje Örnekleri
ADXL345 3 Eksen İvme Ölçer Sensör Modülü kullanılarak yapılabilecek detaylı proje örnekleri.
- Dijital Su Terazisi ve Açı Ölçer
- Akıllı Titreşim Analiz Cihazı
- Hareket Kontrollü Oyun Kumandası
Sorun Giderme ve İpuçları
ADXL345 3 Eksen İvme Ölçer Sensör Modülü kullanırken karşılaşılabilecek yaygın sorunlar ve çözüm yöntemleri.
Yaygın Sorunlar ve Çözümleri
- Sensör Algılanmıyor veya Veri Okunamıyor: ADXL345 sensörünüz düzgün çalışmıyorsa veya mikrodenetleyici tarafından tanınmıyorsa, birkaç olası neden ve çözüm üzerinde durabilirsiniz. İlk olarak, bağlantılarınızı kontrol edin; I2C modunda SDA ve SCL pinleri doğru şekilde bağlanmalı, SPI modunda ise CS, MOSI, MISO ve SCK bağlantıları doğru olmalıdır. I2C modunda sensör varsayılan olarak 0x53 adresini kullanır (SDO pin'i GND'ye bağlandığında), ancak bu adres diğer cihazlarla çakışabilir. SDO pin'ini VCC'ye bağlayarak adresi 0x1D'ye değiştirebilirsiniz. I2C adresini doğrulamak için bir I2C tarayıcı kodu çalıştırabilirsiniz. Güç kaynağınızın stabil ve yeterli olduğundan emin olun; ADXL345 3.3V'da daha kararlı çalışır. Pull-up dirençlerinin I2C hatlarında bulunduğunu kontrol edin (genellikle 4.7kΩ). Son olarak, farklı bir kütüphane deneyebilir veya düşük seviyeli register komutları kullanarak sensörle doğrudan iletişim kurabilirsiniz. Sorun devam ederse, sensör modülü hasar görmüş olabilir.
- Tutarsız veya Gürültülü Ölçümler: ADXL345 sensöründen aldığınız verilerde beklenmeyen dalgalanmalar veya gürültü varsa, birkaç teknik kullanarak ölçüm kalitesini iyileştirebilirsiniz. Mekanik titreşimleri azaltmak için sensörü sünger veya köpük üzerine monte edebilir veya titreşim sönümleyici malzemeler kullanabilirsiniz. Yazılım tarafında dijital filtreleme uygulamanız önemlidir; hareketli ortalama filtreleri, medyan filtreleri veya tamamlayıcı filtreler kullanarak ham verileri düzeltebilirsiniz. Örnek bir hareketli ortalama kodu:
const int numReadings = 10;
float readings[numReadings];
int readIndex = 0;
float total = 0;
float average = 0;
void loop() {
// Eski değeri çıkar
total = total - readings[readIndex];
// Yeni değeri oku
sensors_event_t event;
accel.getEvent(&event);
readings[readIndex] = event.acceleration.x;
// Yeni değeri toplama ekle
total = total + readings[readIndex];
// İndeksi artır
readIndex = readIndex + 1;
// Dizinin sonuna gelinirse başa dön
if (readIndex >= numReadings) {
readIndex = 0;
}
// Ortalamayı hesapla
average = total / numReadings;
// Filtrelenmiş değeri kullan
Serial.print("Filtrelenmiş X: ");
Serial.println(average);
delay(50);
}
Ayrıca, ADXL345'in dahili filtreleme özelliklerini kullanabilirsiniz; örnekleme hızını (bandwidth) uygulamanıza göre ayarlayarak yüksek frekanslı gürültüyü azaltabilirsiniz. Son olarak, güç kaynağınızın temiz olması (dekuplaj kapasitörleri kullanımı) ve sensör kablolarınızın elektromanyetik girişimden etkilenmemesi için kısa tutulması veya korumalı kablo kullanılması önemlidir.
- Kalibrasyon Sorunları ve Sürüklenme: İvme sensörleri zamanla offset değerlerinde sürüklenme yaşayabilir veya montaj açısından kaynaklanan sapmalar gösterebilir. Doğru ölçümler için kalibrasyon şarttır. Temel bir kalibrasyon için, sensörü hareketsiz şekilde her eksen boyunca pozitif ve negatif yönlerde 1g ivmeye (90 derece döndürerek) maruz bırakın ve okumaları kaydedin. İdeal olarak, +1g için yaklaşık +256 dijital değer (±2g modunda), -1g için -256 değer beklenir. Gerçek okumalar ile beklenen değerler arasındaki fark, offset değerlerini verir. Bu offset değerlerini kodunuzda çıkararak düzeltme yapabilirsiniz:
// Kalibrasyon offset değerleri
float xOffset = -12.5;
float yOffset = 7.8;
float zOffset = -5.2;
void loop() {
sensors_event_t event;
accel.getEvent(&event);
// Kalibre edilmiş değerler
float xCal = event.acceleration.x - xOffset;
float yCal = event.acceleration.y - yOffset;
float zCal = event.acceleration.z - zOffset;
Serial.print("Kalibre X: "); Serial.print(xCal);
Serial.print(", Y: "); Serial.print(yCal);
Serial.print(", Z: "); Serial.println(zCal);
delay(100);
}
Daha hassas uygulamalar için, sıcaklık değişimlerinin etkisini de dikkate alan bir kalibrasyon yöntemi geliştirilebilir. Son olarak, sensörün mekanik montajının sağlam olduğundan emin olun; gevşek montaj, tutarsız ölçümlere neden olabilir.
- Pil Ömrü ve Güç Tüketimi Sorunları: Batarya ile çalışan projelerde, ADXL345'in güç tüketimi önemli bir konudur. Sensörün güç tüketimini optimize etmek için çeşitli yaklaşımlar kullanabilirsiniz. İlk olarak, ADXL345'in dahili güç yönetim özelliklerini kullanın; düşük güç modu, bekleme modu veya otomatik uyku modu gibi. Örnekleme hızını (bandwidth ve output data rate) ihtiyacınıza göre ayarlayın; yüksek örnekleme hızları daha fazla güç tüketir. Sürekli okuma yerine, belirli aralıklarla veya tetikleme ile okuma yaparak güç tasarrufu sağlayabilirsiniz. Aşağıdaki kod örneği, ADXL345'i düşük güç modunda kullanmayı gösterir:
// Düşük güç modu ayarları
void setupLowPowerMode() {
// BW_RATE register (0x2C)
// Bit D4 (LOW_POWER): 1 = Düşük güç modu açık
// Bit D3-D0 (Rate): 0110 = 6.25 Hz (düşük veri hızı)
Wire.beginTransmission(0x53); // ADXL345 adresi
Wire.write(0x2C); // BW_RATE register
Wire.write(0x16); // 0001 0110 = Low power mode, 6.25 Hz
Wire.endTransmission();
// POWER_CTL register (0x2D)
// Bit D3 (Measure): 1 = Ölçüm modu açık
// Bit D2 (Sleep): 0 = Uyku modu kapalı
Wire.beginTransmission(0x53);
Wire.write(0x2D);
Wire.write(0x08); // Ölçüm modu açık
Wire.endTransmission();
}
Ayrıca, mikrodenetleyicinizin uyku modlarını kullanarak, veri okuma arasında sistemi düşük güç durumuna alabilirsiniz. Arduino'nun deep sleep modları veya ESP8266/ESP32'nin light sleep/deep sleep modları, pil ömrünü önemli ölçüde uzatabilir. Son olarak, regulatör verimliliğini arttırmak için düşük quiescent current'li regulatörler kullanabilir veya doğrudan 3.3V pil kaynağı ile çalışabilirsiniz.
Performans İpuçları
- Hassas açı ölçümleri için tamamlayıcı filtre veya Kalman filtresi kullanın
- Etkin çalışma için sensörün kullanılmayan eksenleri kapatılabilir
- Darbe algılama için sensörün yerleşik kesme özelliklerini kullanın
- Yüksek frekanslı titreşim izlemek için yüksek veri hızı (3200Hz) kullanın
- Hareketsizlik algılama özelliği ile pil ömrünü uzatın
- Daha iyi doğruluk için sensörü düz ve sağlam bir yüzeye monte edin
İlgili Ürün Kategorilerimiz
Arduino geliştirme kartları ile ADXL345 sensörünüzü entegre ederek hareket algılama, titreşim analizi ve yönelim ölçümü gibi projeler geliştirebilirsiniz.
Ürünleri İncele →
ADXL345 ile birlikte kullanabileceğiniz ekran modülleri, kablosuz iletişim modülleri ve diğer sensörlerle projelerinizi daha kapsamlı hale getirebilirsiniz.
Ürünleri İncele →
Neden Voltaj.Net'ten Almalısınız?
Voltaj.Net, elektronik komponent ve geliştirme platformları konusunda Türkiye'nin güvenilir tedarikçisi olarak kaliteli ürünleri uygun fiyatlarla sunmaktadır.
- Kalite Güvencesi: Test edilmiş ve onaylanmış, güvenilir sensör modülleri
- Teknik Destek: Ürün kullanımı ve projeleriniz konusunda uzman desteği
- Hızlı Teslimat: Stoktan hızlı gönderim ve takip edilebilir kargo
- Tamamlayıcı Ürünler: Projeleriniz için gerekli tüm elektronik bileşenler
- Uygun Fiyatlar: Kaliteden ödün vermeden rekabetçi fiyatlandırma
- Güvenilir Alışveriş: Kolay sipariş ve iade süreci, güvenli ödeme seçenekleri
Ürün Hakkında Sıkça Sorulan Sorular
ADXL345 sensörü 5V ile çalışır mı?
Sensör 3.3V ile çalışmak için tasarlanmıştır. Çoğu modül üzerinde regülatör bulunur ve 5V giriş kabul edebilir, ancak lojik seviyeler için seviye dönüştürücü gerekebilir.
I2C ve SPI arasındaki fark nedir, hangisini kullanmalıyım?
I2C daha az pin kullanır (2 pin) ve bağlantısı kolaydır. SPI daha hızlıdır (4 pin) ve çoklu sensör kullanımında adres çakışması yaşanmaz. Basit projeler için I2C yeterlidir.
ADXL345 sensörü yapabileceğim en hassas açı ölçümü nedir?
Statik koşullarda yaklaşık ±1° hassasiyetle açı ölçümü yapabilirsiniz. Filtreler kullanarak ve düzgün kalibre ederek bu değeri iyileştirebilirsiniz.
Yerçekimi ivmesini nasıl kaldırabilirim?
Gerçek hareket ivmesini ölçmek için sensörün yönelimini hesaplayıp, her eksendeki yerçekimi bileşenini çıkarmanız gerekir. Bu, dönüşüm matrisleri kullanılarak yapılır.
Sensör değerleri zamanla sürükleniyor, nasıl çözebilirim?
Düzenli kalibrasyon yaparak offset değerlerini güncelleyin. Sıcaklık değişimleri ve mekanik gerilimler sürüklenmeye neden olabilir. Statik koşullarda sıfırlama rutini ekleyebilirsiniz.
Sensörden maksimum örnekleme hızı nedir?
ADXL345, 3200Hz'e kadar çıkış veri hızı (ODR) sunar. Ancak mikrodenetleyicinizin işlem gücü ve I2C/SPI haberleşme hızı pratik örnekleme hızınızı sınırlayabilir.
ADXL345 sensörü Android/iOS cihazlarla doğrudan kullanılabilir mi?
Doğrudan bağlantı mümkün değildir. Arduino veya ESP8266/ESP32 gibi bir mikrodenetleyici köprü olarak kullanılıp, Bluetooth veya WiFi üzerinden veri aktarılabilir.
Sensörü nasıl kalibre edebilirim?
Sensörü altı yönde (±X, ±Y, ±Z) sabit tutarak okumalar alın. Teorik olarak ±1g değerlerini karşılaştırarak offset ve ölçek faktörlerini hesaplayın ve uygulayın.