Агуулгын хүснэгт:

BMA250 ба Arduino Nano ашиглан хурдатгалын хэмжилт: 4 алхам
BMA250 ба Arduino Nano ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: BMA250 ба Arduino Nano ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: BMA250 ба Arduino Nano ашиглан хурдатгалын хэмжилт: 4 алхам
Видео: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Арваннэгдүгээр
Anonim
Image
Image

BMA250 бол жижиг, нимгэн, хэт өндөр хүчдэлтэй, 3 тэнхлэг бүхий хурдасгуур хэмжигч бөгөөд ± 16 гр хүртэл өндөр нарийвчлалтай (13 бит) хэмждэг. Дижитал гаралтын өгөгдлийг 16 битийн хос хэлбэрээр форматласан бөгөөд I2C дижитал интерфэйсээр дамжуулан авах боломжтой. Энэ нь хазайлтыг мэдэрч буй таталцлын статик хурдатгал, түүнчлэн хөдөлгөөн эсвэл цочролын үр дүнд бий болсон динамик хурдатгалыг хэмждэг. Түүний өндөр нарийвчлал (3.9 мг/LSB) нь хазайлтын өөрчлөлтийг 1.0 хэмээс бага хэмжих боломжийг олгодог.

Энэхүү гарын авлагад бид BMA250 ба Arduino Nano ашиглан перпендикуляр гурван тэнхлэг дэх хурдатгалыг хэмжих гэж байна.

Алхам 1: Шаардлагатай тоног төхөөрөмж:

Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж

Зорилгодоо хүрэхийн тулд бидэнд шаардлагатай материалууд нь дараахь тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.

1. BMA250

2. Ардуино Нано

3. I2C кабель

4. Arduino Nano -д зориулсан I2C бамбай

Алхам 2: Тоног төхөөрөмжийн холболт:

Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт

Тоног төхөөрөмжийн холболтын хэсэг нь үндсэндээ мэдрэгч ба arduino хооронд шаардлагатай утас холболтыг тайлбарладаг. Аливаа систем дээр ажиллахад шаардлагатай гаралтын хувьд зөв холболтыг хангах нь хамгийн чухал зүйл юм. Тиймээс шаардлагатай холболтууд дараах байдалтай байна.

BMA250 нь I2C дээр ажиллах болно. Мэдрэгчийн интерфэйс бүрийг хэрхэн яаж холбохыг харуулсан утасны диаграмын жишээ энд байна.

Хайрцагнаас гадуурх самбар нь I2C интерфэйс дээр тохируулагдсан байдаг тул хэрэв та өөр ойлголтгүй бол энэ холболтыг ашиглахыг зөвлөж байна. Танд ердөө дөрвөн утас л хангалттай!

Vcc, Gnd, SCL, SDA зүүг зөвхөн дөрвөн холболт шаарддаг бөгөөд эдгээр нь I2C кабелийн тусламжтайгаар холбогддог.

Эдгээр холболтыг дээрх зурган дээр харуулав.

Алхам 3: Хурдатгал хэмжих Arduino код:

Хурдатгал хэмжих Arduino код
Хурдатгал хэмжих Arduino код
Хурдатгал хэмжих Arduino код
Хурдатгал хэмжих Arduino код

Одоо Arduino кодоор эхэлье.

Arduino -тай мэдрэгчийн модулийг ашиглахдаа бид Wire.h номын санг агуулдаг. "Утас" номын сан нь мэдрэгч ба Arduino самбар хоорондын i2c холболтыг хөнгөвчлөх функцүүдийг агуулдаг.

Хэрэглэгчийн тав тухыг хангах үүднээс Arduino кодыг бүхэлд нь доор өгөв.

#оруулах

// BMA250 I2C хаяг нь 0x18 (24)

#тодорхойлох Addr 0x18

хүчингүй тохиргоо ()

{

// I2C холболтыг MASTER болгон эхлүүлэх

Wire.begin ();

// Цуваа холбоог эхлүүлэх, дамжуулах хурд = 9600

Цуваа эхлэх (9600);

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Хүрээ сонгох бүртгэлийг сонгоно уу

Wire.write (0x0F);

// +/- 2g хүрээг тохируулна уу

Wire.write (0x03);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Зурвасын өргөний бүртгэлийг сонгоно уу

Wire.write (0x10);

// 7.81 Гц зурвасын өргөнийг тохируулах

Wire.write (0x08);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission (); саатал (300);}

хоосон давталт ()

{

гарын үсэг зураагүй int өгөгдөл [0];

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Өгөгдлийн бүртгэлийг сонгох (0x02 - 0x07)

Wire.write (0x02);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// 6 байт хүсэх

Wire.requestFrom (Addr, 6);

// Зургаан байтыг уншина уу

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

хэрэв (Утас. боломжтой () == 6)

{

өгөгдөл [0] = Wire.read ();

өгөгдөл [1] = Wire.read ();

өгөгдөл [2] = Wire.read ();

өгөгдөл [3] = Wire.read ();

өгөгдөл [4] = Wire.read ();

өгөгдөл [5] = Wire.read ();

}

саатал (300);

// Өгөгдлийг 10 бит болгон хөрвүүлэх

float xAccl = ((өгөгдөл [1] * 256.0) + (өгөгдөл [0] & 0xC0)) / 64;

хэрэв (xAccl> 511)

{

xAccl -= 1024;

}

float yAccl = ((өгөгдөл [3] * 256.0) + (өгөгдөл [2] & 0xC0)) / 64;

хэрэв (yAccl> 511)

{

yAccl -= 1024;

}

float zAccl = ((өгөгдөл [5] * 256.0) + (өгөгдөл [4] & 0xC0)) / 64;

хэрэв (zAccl> 511)

{

zAccl -= 1024;

}

// Цуваа монитор руу өгөгдөл гаргана

Serial.print ("X-Axis дахь хурдатгал:");

Serial.println (xAccl);

Serial.print ("Y тэнхлэгт хурдатгал:");

Serial.println (yAccl);

Serial.print ("Z-Axis дахь хурдатгал:");

Serial.println (zAccl);

}

Утасны санд Wire.write () ба Wire.read () командыг бичиж, мэдрэгчийн гаралтыг уншихад ашиглагддаг. Arduino IDE -ийн цуваа дэлгэц дээр мэдрэгчийн гаралтыг харуулахад Serial.print () ба Serial.println () ашиглагддаг.

Мэдрэгчийн гаралтыг дээрх зурагт үзүүлэв.

Алхам 4: Өргөдөл:

Хэрэглээ
Хэрэглээ

BMA250 гэх мэт хурдатгал хэмжигч нь тоглоом, програмын тохиргоог ихэвчлэн ашигладаг. Энэхүү мэдрэгч модулийг гар утасны хэрэглээний дэвшилтэт эрчим хүчний удирдлагын системд ашигладаг. BMA250 бол гурван талт дижитал хурдатгалын мэдрэгч бөгөөд чип дээрх ухаалаг хөдөлгөөнт тасалдлын хянагчтай.

Зөвлөмж болгож буй: