Мазмуну:

H3LIS331DL жана бөлүкчө фотонун колдонуу менен ылдамдатууну өлчөө: 4 кадам
H3LIS331DL жана бөлүкчө фотонун колдонуу менен ылдамдатууну өлчөө: 4 кадам

Video: H3LIS331DL жана бөлүкчө фотонун колдонуу менен ылдамдатууну өлчөө: 4 кадам

Video: H3LIS331DL жана бөлүкчө фотонун колдонуу менен ылдамдатууну өлчөө: 4 кадам
Video: 🇧🇷 ДНЕВНЫЕ БОРДЕЛИ РИО // ЗАБРАЛ ЛЬВИЦУ С ПЛЯЖА ДОМОЙ 🇧🇷 БРАЗИЛИЯ РИО ДЕ ЖАНЕЙРО 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)

#define 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 коюңуз

Serial.begin (9600);

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Башкаруу реестрин тандоо 1

Wire.write (0x20);

// X, Y, Z огун иштетүү, режимди күйгүзүү, 50Hz маалымат чыгаруу ылдамдыгы

Wire.write (0x27);

// I2C берүүнү токтотуу

Wire.endTransmission ();

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Башкаруу реестрин тандоо 4

Wire.write (0x23);

// Толук масштабды коюу, +/- 100г, үзгүлтүксүз жаңыртуу

Wire.write (0x00);

// I2C берүүнү токтотуу

Wire.endTransmission ();

кечигүү (300);

}

боштук цикл ()

{

кол коюлбаган int маалыматтары [6];

үчүн (int i = 0; i <6; i ++)

{

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Маалымат реестрин тандоо

Wire.write ((40 + i));

// I2C берүүнү токтотуу

Wire.endTransmission ();

// 1 байт маалымат сураңыз

Wire.requestFrom (Addr, 1);

// 6 байт маалыматтарды окуңуз

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

эгер (Wire.available () == 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-огунда ылдамдануу:", String (zAccl));

кечигүү (300);

}

Particle.

Сенсор чыгаруу үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

H3LIS331DL сыяктуу акселерометрлер көбүнчө оюндарды колдонууда табышат жана профилдин которулушун көрсөтүшөт. Бул сенсор модулу мобилдик тиркемелер үчүн заманбап кубатты башкаруу тутумунда да колдонулат. H3LIS331DL-бул үч фазалуу санариптик ылдамдатуу сенсору, ал интеллектуалдык микросхемадагы кыймылдын үзгүлтүккө учуроочу контроллери менен коштолгон.

Сунушталууда: