Mundarija:

H3LIS331DL va Arduino Nano yordamida tezlashtirishni o'lchash: 4 qadam
H3LIS331DL va Arduino Nano yordamida tezlashtirishni o'lchash: 4 qadam

Video: H3LIS331DL va Arduino Nano yordamida tezlashtirishni o'lchash: 4 qadam

Video: H3LIS331DL va Arduino Nano yordamida tezlashtirishni o'lchash: 4 qadam
Video: How to use H3LIS331DL 3-Axis Linear Accelerometer with arduino to detect Harsh braking of vehicle? 2024, Noyabr
Anonim
Image
Image

H3LIS331DL-bu "nano" oilasiga mansub, kam quvvatli, yuqori quvvatli, 3 o'qli chiziqli tezlatgich, raqamli I²C ketma-ket interfeysi. H3LIS331DL foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlar ± 100g/± 200g/± 400g va 0,5 Gts dan 1 kHz gacha bo'lgan chiqish tezligi tezligini o'lchashga qodir. H3LIS331DL -40 ° C dan +85 ° C gacha bo'lgan harorat oralig'ida ishlashi kafolatlangan.

Ushbu qo'llanmada biz H3LIS331DL ning Arduino Nano bilan o'zaro aloqasini namoyish qilmoqchimiz.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. H3LIS331DL

2. Arduino Nano

3. I2C kabeli

4. Arduino Nano uchun I2C qalqoni

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi asosan sensor va arduino nano o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

H3LIS331DL I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!

Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Tezlikni o'lchash uchun Arduino kodi:

Tezlashtirishni o'lchash uchun Arduino kodi
Tezlashtirishni o'lchash uchun Arduino kodi
Tezlashtirishni o'lchash uchun Arduino kodi
Tezlashtirishni o'lchash uchun Arduino kodi

Endi arduino kodidan boshlaylik.

Sensor modulini arduino bilan ishlatganda, biz Wire.h kutubxonasini o'z ichiga olamiz. "Wire" kutubxonasida sensorlar va arduino kartalari o'rtasida i2c aloqasini osonlashtiradigan funktsiyalar mavjud.

Foydalanuvchining qulayligi uchun butun arduino kodi quyida keltirilgan:

#qo'shing

// H3LIS331DL I2C manzili - 0x18 (24)

#aniqlang Addr 0x18

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani ishga tushiring, bod tezligi = 9600

Serial.begin (9600);

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Boshqarish registrini tanlang 1

Wire.write (0x20);

// X, Y, Z o'qlarini yoqish, quvvat rejimini yoqish, 50 Gts ma'lumotlarni uzatish tezligi

Wire.write (0x27);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Boshqarish registrini tanlang 4

Wire.write (0x23);

// To'liq o'lchovni o'rnating, +/- 100g, doimiy yangilanish

Wire.write (0x00);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (300);

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [6];

uchun (int i = 0; i <6; i ++)

{

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Ma'lumotlar reestrini tanlang

Wire.write ((40+i));

// I2C uzatishni to'xtating

Wire.endTransmission ();

// 1 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 1);

// 6 bayt ma'lumotni o'qing

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

agar (Wire.available () == 1)

{

ma'lumotlar = Wire.read ();

}

}

kechikish (300);

// Ma'lumotni aylantirish

int xAccl = ((ma'lumotlar [1] * 256) + ma'lumotlar [0]);

int yAccl = ((ma'lumotlar [3] * 256) + ma'lumotlar [2]);

int zAccl = ((ma'lumotlar [5] * 256) + ma'lumotlar [4]);

// Ma'lumotlarni ketma -ket monitorga chiqarish

Serial.print ("X o'qida tezlashtirish:");

Serial.println (xAccl);

Serial.print ("Y o'qida tezlashtirish:");

Serial.println (yAccl);

Serial.print ("Z o'qida tezlashtirish:");

Serial.println (zAccl);

kechikish (300);

}

Arduino -da kodni yozish va ketma -ket portdagi o'qishlaringizni tekshirish kifoya. Chiqish yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

H3LIS331DL kabi akselerometrlar, asosan, o'z o'yinlarini o'yinlarda topadi va profilni almashtirishni ko'rsatadi. Ushbu sensorli modul, shuningdek, mobil ilovalar uchun quvvatni boshqarishning ilg'or tizimida ham qo'llaniladi. H3LIS331DL-bu uch fazali raqamli tezlashtirish sensori bo'lib, u chipda harakatlanuvchi tetikli uzilishlar boshqaruvchisi bilan jihozlangan.

Tavsiya: