Оглавление:
- Шаг 1: Требуемое оборудование:
- Шаг 2: Подключение оборудования:
- Шаг 3: Код для измерения ускорения:
- Шаг 4: Приложения:
Видео: Измерение ускорения с помощью ADXL345 и Arduino Nano: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
ADXL345 - это небольшой, тонкий, сверхмалопотребляющий 3-осевой акселерометр с высоким разрешением (13 бит) и измерением до ± 16 г. Данные цифрового вывода форматируются как 16-битное дополнение до двоек и доступны через цифровой интерфейс I2C. Он измеряет статическое ускорение свободного падения в приложениях для измерения наклона, а также динамическое ускорение, возникающее в результате движения или удара. Его высокое разрешение (3,9 мг / младший значащий бит) позволяет измерять изменения наклона менее 1,0 °.
В этом руководстве показано взаимодействие модуля датчика ADXL345 с Arduino nano. Для считывания значений ускорения мы использовали Arduino с адаптером I2C. Этот адаптер I2C делает подключение к модулю датчика простым и надежным.
Шаг 1: Требуемое оборудование:
Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:
1. ADXL345
2. Arduino Nano
3. Кабель I2C
4. I2C Shield для Arduino Nano.
Шаг 2: Подключение оборудования:
В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Arduino nano. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:
ADXL345 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.
Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого.
Все, что вам нужно, это четыре провода! Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.
Эти соединения показаны на рисунках выше.
Шаг 3: Код для измерения ускорения:
А теперь давайте начнем с кода Arduino.
При использовании сенсорного модуля с arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.
Полный код Arduino приведен ниже для удобства пользователя:
#включают
// Адрес I2C ADXL345: 0x53 (83)
#define Addr 0x53
установка void ()
{
// Инициализируем связь I2C как МАСТЕР
Wire.begin ();
// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600
Serial.begin (9600);
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр пропускной способности
Wire.write (0x2C);
// Нормальный режим, частота выходных данных = 100 Гц
Wire.write (0x0A);
// Остановить передачу I2C
Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр управления мощностью
Wire.write (0x2D);
// Отключение автоматического перехода в спящий режим
Wire.write (0x08);
// Остановить передачу I2C
Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр формата данных
Wire.write (0x31);
// Самотестирование отключено, 4-проводный интерфейс, полное разрешение, диапазон = +/- 2g
Wire.write (0x08);
// Остановить передачу I2C
Wire.endTransmission ();
задержка (300);
}
пустой цикл ()
{
данные типа int без знака [6];
для (int я = 0; я <6; я ++)
{
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Выбираем регистр данных
Wire.write ((50 + i));
// Остановить передачу I2C
Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Адрес, 1);
// Чтение 6 байтов данных
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
если (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Преобразуем данные в 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;
}
// Выводим данные на последовательный монитор
Serial.print («Ускорение по оси X составляет:»);
Serial.println (xAccl);
Serial.print («Ускорение по оси Y составляет:»);
Serial.println (yAccl);
Serial.print («Ускорение по оси Z составляет:»);
Serial.println (zAccl);
задержка (300);
}
В библиотеке проводов Wire.write () и Wire.read () используются для записи команд и чтения выходного сигнала датчика.
Serial.print () и Serial.println () используются для отображения выходных данных датчика на последовательном мониторе Arduino IDE.
Выход датчика показан на картинке выше.
Шаг 4: Приложения:
ADXL345 - это небольшой, тонкий, 3-осевой акселерометр со сверхнизким энергопотреблением, который можно использовать в мобильных телефонах, медицинских приборах и т. Д. Его применение также включает игровые и указывающие устройства, промышленные приборы, персональные навигационные устройства и защиту жесткого диска (HDD).
Рекомендуемые:
Измерение ускорения с помощью ADXL345 и Particle Photon: 4 шага
Измерение ускорения с помощью ADXL345 и Particle Photon: ADXL345 - это небольшой, тонкий, сверхмалопотребляющий 3-осевой акселерометр с высоким разрешением (13 бит) для измерения при нагрузке до ± 16 g. Данные цифрового вывода форматируются как 16-битное дополнение до двоек и доступны через цифровой интерфейс I2C. Он измеряет
Измерение ускорения с помощью H3LIS331DL и Arduino Nano: 4 шага
Измерение ускорения с использованием H3LIS331DL и Arduino Nano: H3LIS331DL - это маломощный высокопроизводительный 3-осевой линейный акселерометр, принадлежащий к семейству «нано», с цифровым последовательным интерфейсом I²C. H3LIS331DL имеет выбираемую пользователем полную шкалу ± 100 г / ± 200 г / ± 400 г и может измерять ускорения w
Измерение ускорения с помощью H3LIS331DL и фотона частиц: 4 шага
Измерение ускорения с использованием H3LIS331DL и Particle Photon: H3LIS331DL - это маломощный высокопроизводительный 3-осевой линейный акселерометр, принадлежащий к семейству «нано», с цифровым последовательным интерфейсом I²C. H3LIS331DL имеет выбираемую пользователем полную шкалу ± 100 г / ± 200 г / ± 400 г и может измерять ускорения w
Измерение ускорения с помощью ADXL345 и Raspberry Pi: 4 шага
Измерение ускорения с помощью ADXL345 и Raspberry Pi: ADXL345 - это небольшой, тонкий, сверхмалопотребляющий 3-осевой акселерометр с высоким разрешением (13 бит) для измерения при нагрузке до ± 16 g. Данные цифрового вывода форматируются как 16-битное дополнение до двоек и доступны через цифровой интерфейс I2C. Он измеряет
Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: 4 шага
Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: H3LIS331DL - это маломощный высокопроизводительный 3-осевой линейный акселерометр, принадлежащий к семейству «нано», с цифровым последовательным интерфейсом I²C. H3LIS331DL имеет выбираемую пользователем полную шкалу ± 100 г / ± 200 г / ± 400 г и может измерять ускорения w