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

ADXL345 ба бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам
ADXL345 ба бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: ADXL345 ба бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам

Видео: ADXL345 ба бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам
Видео: BTT - Manta E3EZ - TFT32 SPI 2024, Оны зургадугаар сарын
Anonim
Image
Image

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

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

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

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

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

1. ADXL345

2. Бөөмийн фотон

3. I2C кабель

4. Бөөмийн фотоны I2C бамбай

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

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

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

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

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

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

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

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

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

Одоо бөөмийн кодоос эхэлье.

Мэдрэгч модулийг бөөмстэй хамт ашиглахдаа application.h болон spark_wiring_i2c.h номын санг оруулна. "application.h" болон spark_wiring_i2c.h номын сан нь мэдрэгч ба бөөмийн хооронд i2c холболтыг хөнгөвчлөх функцуудыг агуулдаг.

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

#оруулах

#оруулах

// ADXL345 I2C хаяг нь 0x53 (83)

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

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

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

{

// Хувьсагчийг тохируулах

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

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

Wire.begin ();

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

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

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

Wire.beginTransmission (Addr);

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

Wire.write (0x2C);

// Гаралтын өгөгдлийн хурдыг = 100 Гц сонгох

Wire.write (0x0A);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// Эрчим хүчний хяналтын бүртгэлийг сонгоно уу

Wire.write (0x2D);

// Автоматаар унтраах сонголтыг сонгоно уу

Wire.write (0x08);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// Өгөгдлийн форматын бүртгэлийг сонгоно уу

Wire.write (0x31);

// Бүрэн нарийвчлалыг сонгоно уу, +/- 2g

Wire.write (0x08);

// I2C дамжуулалтыг дуусгавар болгох

Wire.endTransmission ();

саатал (300);

}

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

{

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

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

{

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

Wire.beginTransmission (Addr);

// Өгөгдлийн бүртгэлийг сонгоно уу

Утас. бичих ((50+i));

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

Wire.endTransmission ();

// Төхөөрөмжөөс 1 байтын өгөгдөл хүсэх

Wire.requestFrom (Addr, 1);

// 6 байтын өгөгдлийг уншина уу

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

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

{

өгөгдөл = Wire.read ();

}

саатал (300);

}

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

int xAccl = (((өгөгдөл [1] & 0x03) * 256) + өгөгдөл [0]);

хэрэв (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((өгөгдөл [3] & 0x03) * 256) + өгөгдөл [2]);

хэрэв (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((өгөгдөл [5] & 0x03) * 256) + өгөгдөл [4]);

хэрэв (zAccl> 511)

{

zAccl -= 1024;

}

// Мэдээллийг хяналтын самбарт гаргах

Particle.publish ("X-Axis дахь хурдатгал нь:", String (xAccl));

Particle.publish ("Y-Axis дахь хурдатгал нь:", String (yAccl));

Particle.publish ("Z-Axis дахь хурдатгал нь:", String (zAccl));

}

Particle.variable () функц нь мэдрэгчийн гаралтыг хадгалах хувьсагчдыг үүсгэдэг ба Particle.publish () функц нь сайтын хяналтын самбарт гаралтыг харуулдаг.

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

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

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

ADXL345 нь гар утас, эмнэлгийн багаж хэрэгсэл гэх мэт жижиг, нимгэн, хэт давтамжтай, 3 тэнхлэгтэй хурдатгал хэмжигч бөгөөд түүний хэрэглээ нь тоглоом, заагч төхөөрөмж, үйлдвэрлэлийн багаж хэрэгсэл, хувийн навигацийн төхөөрөмж, хатуу дискний хамгаалалтыг агуулдаг.

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