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

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

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

Видео: H3LIS331DL болон бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам
Видео: CERN - Бурхны бөөм буюу Хигс бозон гэж юу вэ ? 2024, Арваннэгдүгээр
Anonim
Image
Image

H3LIS331DL нь дижитал I²C серийн интерфэйстэй, "нано" гэр бүлд хамаарах бага хүчин чадалтай, 3 тэнхлэг бүхий хурдны хэмжигдэхүүн юм. H3LIS331DL нь ± 100g/± 200g/± 400g хэрэглэгчийн сонгож болох бүрэн масштабтай бөгөөд 0.5 Гц -ээс 1 кГц хүртэлх гаралтын өгөгдөл дамжуулах хурдатгалыг хэмжих чадвартай. H3LIS331DL нь -40 ° C -аас +85 ° C хүртэл температурын урт хугацаанд ажиллах баталгаатай.

Энэхүү гарын авлагад бид H3LIS331DL -ийн бөөмийн фотонтой хэрхэн холбогдож байгааг харуулах болно.

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

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

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

1. H3LIS331DL

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

3. I2C кабель

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

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

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

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

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

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

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

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

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

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

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

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

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

#оруулах

#оруулах

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

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

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

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

{

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

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

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

Wire.begin ();

// Цуваа холболтыг эхлүүлж, baud rate = 9600 -ийг тохируулна уу

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

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

Wire.beginTransmission (Addr);

// Хяналтын бүртгэлийг сонгоно уу 1

Wire.write (0x20);

// X, Y, Z тэнхлэгийг асаах, асаах горим, өгөгдөл дамжуулах хурд 50 Гц

Wire.write (0x27);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// Хяналтын бүртгэлийг сонгоно уу 4

Wire.write (0x23);

// Бүрэн хэмжээсийг тохируулах, +/- 100г, тасралтгүй шинэчлэх

Wire.write (0x00);

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

Wire.endTransmission ();

саатал (300);

}

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

{

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

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

{

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

Wire.beginTransmission (Addr);

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

Утас. бичих ((40 + 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);

}

// Өгөгдлийг хөрвүүлэх

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

хэрэв (xAccl> 32767)

{

xAccl -= 65536;

}

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

хэрэв (yAccl> 32767)

{

yAccl -= 65536;

}

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

хэрэв (zAccl> 32767)

{

zAccl -= 65536;

}

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

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

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

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

саатал (300);

}

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

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

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

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

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

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