Mündəricat:

ADXL345 və Particle Photon istifadə edərək sürətlənmənin ölçülməsi: 4 addım
ADXL345 və Particle Photon istifadə edərək sürətlənmənin ölçülməsi: 4 addım

Video: ADXL345 və Particle Photon istifadə edərək sürətlənmənin ölçülməsi: 4 addım

Video: ADXL345 və Particle Photon istifadə edərək sürətlənmənin ölçülməsi: 4 addım
Video: BTT - Manta E3EZ - TFT32 SPI 2024, Iyun
Anonim
Image
Image

ADXL345, kiçik, nazik, ultralow gücü, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçüsü olan 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Tilt algılama tətbiqlərində cazibənin statik sürətlənməsini, həmçinin hərəkət və ya şok nəticəsində yaranan dinamik sürətlənməni ölçür. Yüksək qətnaməsi (3.9 mg/LSB), meyl dəyişikliklərinin 1.0 ° -dən aşağı ölçülməsinə imkan verir.

Bu təlimatda ADXL345 sensor modulunun hissəcik fotonu ilə qarşılıqlı əlaqəsi təsvir edilmişdir. Sürətləndirmə dəyərlərini oxumaq üçün I2c adapteri olan hissəciklərdən istifadə etdik. Bu I2C adapteri sensor moduluna qoşulmağı asanlaşdırır və daha etibarlıdır.

Addım 1: Lazım olan avadanlıq:

Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur
Avadanlıq tələb olunur

Məqsədimizə çatmaq üçün ehtiyacımız olan materiallar aşağıdakı aparat komponentlərindən ibarətdir:

1. ADXL345

2. Foton hissəcikləri

3. I2C Kabeli

4. Partikül fotonu üçün I2C Shield

Addım 2: Hardware Bağlantısı:

Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama
Avadanlıq Bağlama

Avadanlıq bağlama bölməsi əsasən sensor və hissəcik fotonu arasında lazım olan naqillərin əlaqələrini izah edir. İstənilən çıxış üçün hər hansı bir sistem üzərində işləyərkən düzgün əlaqələrin təmin edilməsi əsas zərurətdir. Beləliklə, zəruri əlaqələr aşağıdakılardır:

ADXL345 I2C üzərində işləyəcək. Sensorun hər bir interfeysini necə bağlayacağınızı göstərən nümunə naqillər diaqramı.

Qutudan kənarda, lövhə I2C interfeysi üçün konfiqurasiya olunmuşdur, buna görə də başqa cür agnostiksinizsə bu əlaqəni istifadə etməyi məsləhət görürük.

Lazım olan tək şey dörd teldir! Vcc, Gnd, SCL və SDA pinləri üçün yalnız dörd əlaqə lazımdır və bunlar I2C kabelinin köməyi ilə bağlanır.

Bu əlaqələr yuxarıdakı şəkillərdə göstərilmişdir.

Addım 3: Sürətləndirmə Ölçmə Kodu:

Sürətləndirmə Ölçmə Kodu
Sürətləndirmə Ölçmə Kodu

İndi hissəcik kodundan başlayaq.

Sensor modulunu hissəciklə birlikdə istifadə edərkən application.h və spark_wiring_i2c.h kitabxanasını daxil edirik. "application.h" və spark_wiring_i2c.h kitabxanası, sensor və hissəcik arasındakı i2c əlaqəsini asanlaşdıran funksiyaları ehtiva edir.

İstifadəçinin rahatlığı üçün bütün hissəcik kodu aşağıda verilmişdir:

#daxil edin

#daxil edin

// ADXL345 I2C ünvanı 0x53 (83)

#təyin Edr 0x53

int xAccl = 0, yAccl = 0, zAccl = 0;

boş quraşdırma ()

{

// Dəyişən təyin edin

Particle.variable ("i2cdevice", "ADXL345");

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// I2C ünsiyyətini MASTER olaraq başladın

Wire.begin ();

// Serial rabitəni işə salın, baud dərəcəsini = 9600 olaraq təyin edin

Serial.begin (9600);

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Bant genişliyi dərəcəsi qeydini seçin

Wire.write (0x2C);

// Çıxış məlumat sürətini seçin = 100 Hz

Wire.write (0x0A);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Güc idarəetmə qeydini seçin

Wire.write (0x2D);

// Avtomatik yuxu söndürməni seçin

Wire.write (0x08);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Məlumat formatı qeydini seçin

Wire.write (0x31);

// Tam qətnamə seçin, +/- 2g

Wire.write (0x08);

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

gecikmə (300);

}

boşluq döngəsi ()

{

imzasız int məlumatları [6];

üçün (int i = 0; i <6; i ++)

{

// I2C ötürülməsinə başlayın

Wire.beginTransmission (Addr);

// Məlumat qeydini seçin

Wire.write ((50+i));

// I2C ötürülməsini dayandırın

Wire.endTransmission ();

// Cihazdan 1 bayt məlumat tələb edin

Wire.requestFrom (Addr, 1);

// 6 bayt məlumat oxuyun

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

əgər (Tel.available () == 1)

{

data = Wire.read ();

}

gecikmə (300);

}

// Məlumatı 10 bitə çevirin

int xAccl = (((data [1] & 0x03) * 256) + data [0]);

əgər (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((data [3] & 0x03) * 256) + data [2]);

əgər (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((data [5] & 0x03) * 256) + data [4]);

əgər (zAccl> 511)

{

zAccl -= 1024;

}

// Göstərişlər panelinə məlumat çıxarın

Particle.publish ("X Eksenində Sürətləndirmə:", String (xAccl));

Particle.publish ("Y Eksenində Sürətləndirmə:", String (yAccl));

Particle.publish ("Z Eksenində Sürətləndirmə:", String (zAccl));

}

Particle.variable () funksiyası sensorun çıxışını saxlamaq üçün dəyişənlər yaradır və Particle.publish () funksiyası saytın tablosuna çıxışı göstərir.

Sensor çıxışı istinad üçün yuxarıdakı şəkildə göstərilmişdir.

Addım 4: Tətbiqlər:

Tətbiqlər
Tətbiqlər

ADXL345, kiçik, nazik, ultralow güc, 3 oxlu akselerometrdir ki, bu da Telefonlar, Tibbi alətlər və s. İstifadəsinə Oyun və işarə cihazları, Sənaye alətləri, Fərdi naviqasiya cihazları və Sabit disk sürücüsü (HDD) qorunması daxildir.

Tövsiyə: