Съдържание:

Измерване на ускорението с помощта на H3LIS331DL и фотон на частици: 4 стъпки
Измерване на ускорението с помощта на H3LIS331DL и фотон на частици: 4 стъпки

Видео: Измерване на ускорението с помощта на H3LIS331DL и фотон на частици: 4 стъпки

Видео: Измерване на ускорението с помощта на H3LIS331DL и фотон на частици: 4 стъпки
Видео: Залил Дедов САМОГОН!! Mark2 1JZ-GTE раздает ДОЛГИ!! 2024, Юли
Anonim
Image
Image

H3LIS331DL е високоефективен 3-осен линеен акселерометър с ниска мощност, принадлежащ към семейството „нано“, с цифров I²C сериен интерфейс. H3LIS331DL има избираеми от потребителя пълни скали от ± 100 g/± 200 g/± 400 g и е в състояние да измерва ускорения с изходни скорости на данни от 0,5 Hz до 1 kHz. Гарантирано е, че 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;

void setup ()

{

// Задаване на променлива

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Инициализира I2C комуникацията като MASTER

Wire.begin ();

// Инициализира серийна комуникация, задава скорост на предаване = 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);

// Задайте пълна скала, +/- 100g, непрекъснато актуализиране

Wire.write (0x00);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (300);

}

void loop ()

{

беззнакови 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 е:", String (xAccl));

Particle.publish ("Ускорението в оста Y е:", String (yAccl));

Particle.publish ("Ускорението в Z-ос е:", String (zAccl));

забавяне (300);

}

Функцията Particle.variable () създава променливите за съхраняване на изхода на сензора, а функцията Particle.publish () показва изхода на таблото за управление на сайта.

Изходът на сензора е показан на снимката по -горе за ваша справка.

Стъпка 4: Приложения:

Приложения
Приложения

Акселерометрите като H3LIS331DL намират своето приложение най -вече в игрите и превключването на профилите на дисплея. Този сензорен модул се използва и в усъвършенстваната система за управление на захранването за мобилни приложения. H3LIS331DL е триаксиален цифров сензор за ускорение, който е интегриран с интелигентен контролер за прекъсвания, задействан от движение на чипа.

Препоръчано: