Piyasada yaygın olarak bulabileceğimiz basit ivmeölçer modüllerinin başında ADXL345 geliyor. Bu basit modül büyük abisi MPU6050 kadar yetenekli olmasa da, basit eksen hareketlerini takip edebilmemizi sağlıyor.
ADXL345 I2C veri iletişim arayüzünü destekliyor ve bu sayede Arduino’ya kolaylıkla bağlanabiliyor. Çip aslında 3,3 Volt ile çalışıyor ancak modül üzerinde bulunan gerilim regülatörü sayesinde Arduino’da 5 Volt ile kullanılabiliyor.
ADXL345’i Arduino’ya bağlamak için devre kurulumuna geçelim;
Bu modülü herhangi bir kütüphane kullanmadan çalıştırmak mümkün. Ancak Arduino kütüphaneleri her zaman olduğu gibi bu sefer de işimizi kolaylaştırıyor. Bunun için Jeff Rowberg‘in hazırladığı iki kütüphaneden ve Arduino içinde yer alan Wire kütüphanesinden yararlanacağız.
Kullandığımız ilk kütüphane Arduino’nun basit I2C haberleşme için içinde barındırdığı Wire. Diğer kütüphanelerden biri ise Rowberg’in diğer kütüphanelerini kullanmak için gereken ana kütüphane olan I2Cdev. Son kütüphanemiz modülümüzün adını taşıyan ADXL345. Bu iki kütüphaneyi Rowberg’in GitHub sayfasındaki paketin içinde bulabiliyoruz. Ancak size kolaylık olsun diye kütüphaneleri sitemize yükledik, buradan indirebilirsiniz: I2Cdev | ADXL345
Aşağıdaki sketch ADXL345 modülüne bağlanıyor ve modülden gelen ham verileri Seri Port Ekranı’nda görüntülüyor.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/* ADXL345 Arduino ile Nasıl Kullanılır? ADXL345 ivmeölçer modülünün detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ #include "Wire.h" #include "I2Cdev.h" #include "ADXL345.h" ADXL345 sensor; int ivme_x, ivme_y, ivme_z; // Kullanacağımız değişkenler void setup() { Wire.begin(); Serial.begin(9600); // Seri Port Ekranı'nı başlatıyoruz sensor.initialize(); // Sensör kütüphanesini devreye alıyoruz Serial.print("Test: "); // Öncelikle bağlantıyı bir test edelim Serial.println(sensor.testConnection() ? "BAŞARILI" : "BAŞARISIZ!"); } void loop() { sensor.getAcceleration(&ivme_x, &ivme_y, &ivme_z); Serial.print("X: "); Serial.print(ivme_x); Serial.print("\t"); Serial.print("Y: "); Serial.print(ivme_y); Serial.print("\t"); Serial.print("Z: "); Serial.println(ivme_z); delay(200); } |