Съдържание:
- Стъпка 1: Изисква се хардуер:
- Стъпка 2: Свързване на хардуера:
- Стъпка 3: Код за измерване на ускорението:
- Стъпка 4: Приложения:
Видео: Измерване на ускорението с помощта на ADXL345 и частичен фотон: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
ADXL345 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Той измерва статичното ускорение на гравитацията в приложенията за отчитане на наклона, както и динамичното ускорение в резултат на движение или удар. Неговата висока разделителна способност (3,9 mg/LSB) позволява измерване на промените в наклона под 1,0 °.
В този урок е илюстрирано взаимодействието на сензорния модул ADXL345 с фотон на частици. За да прочетем стойностите на ускорението, използвахме частици с адаптер 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)
#define Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
void setup ()
{
// Задаване на променлива
Particle.variable ("i2cdevice", "ADXL345");
Particle.variable ("xAccl", xAccl);
Particle.variable ("yAccl", yAccl);
Particle.variable ("zAccl", zAccl);
// Инициализира I2C комуникацията като MASTER
Wire.begin ();
// Инициализира серийна комуникация, зададена скорост на предаване = 9600
Serial.begin (9600);
// Стартиране на I2C предаване
Wire.beginTransmission (Addr);
// Изберете регистър на честотната лента
Wire.write (0x2C);
// Изберете скорост на изходни данни = 100 Hz
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);
}
void loop ()
{
беззнакови int данни [6];
за (int i = 0; i <6; i ++)
{
// Стартиране на I2C предаване
Wire.beginTransmission (Addr);
// Изберете регистър на данни
Wire.write ((50+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);
}
// Конвертираме данните в 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 е:", String (xAccl));
Particle.publish ("Ускорението в оста Y е:", String (yAccl));
Particle.publish ("Ускорението в Z-ос е:", String (zAccl));
}
Функцията Particle.variable () създава променливите за съхраняване на изхода на сензора, а функцията Particle.publish () показва изхода на таблото за управление на сайта.
Изходът на сензора е показан на снимката по -горе за ваша справка.
Стъпка 4: Приложения:
ADXL345 е малък, тънък, 3-осен акселерометър с ултра ниска мощност, който може да се използва в телефони, медицински инструменти и др. Приложението му включва също игри и посочващи устройства, промишлени инструменти, лични навигационни устройства и защита на твърдия диск (HDD).
Препоръчано:
Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
Измерване на магнитно поле с помощта на HMC5883 и частичен фотон: HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Измерване на влажност с помощта на HYT939 и частичен фотон: 4 стъпки
Измерване на влажност с помощта на HYT939 и частичен фотон: HYT939 е цифров сензор за влажност, който работи по I2C комуникационен протокол. Влажността е основен параметър, когато става въпрос за медицински системи и лаборатории, така че за да постигнем тези цели, се опитахме да свържем HYT939 с малиново пи. Аз
Измерване на ускорението с помощта на H3LIS331DL и фотон на частици: 4 стъпки
Измерване на ускорението с помощта на H3LIS331DL и частичен фотон: H3LIS331DL, е маломощен високоефективен 3-осен линеен акселерометър, принадлежащ към семейството „нано“, с цифров I²C сериен интерфейс. H3LIS331DL има избираеми от потребителя пълни скали от ± 100g/± 200g/± 400g и е в състояние да измерва ускорения w
Измерване на ускорението с помощта на BMA250 и фотон на частици: 4 стъпки
Измерване на ускорението с помощта на BMA250 и частичен фотон: BMA250 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2C цифров интерфейс. Измерва статичното
Измерване на налягането с помощта на CPS120 и частичен фотон: 4 стъпки
Измерване на налягането с помощта на CPS120 и частичен фотон: CPS120 е висококачествен и евтин капацитивен сензор за абсолютно налягане с напълно компенсирана мощност. Той консумира много по-малко енергия и се състои от ултра малък микро-електро-механичен сензор (MEMS) за измерване на налягането. Сигма-делта базирана