• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Акселерометр на ADXL345 с использованием Arduino

 

 

В этом руководстве вы узнаете, как подключить акселерометр ADXL345 к Arduino Uno. Мы также покажем вам, как написать программу, использующую библиотеку датчиков Adafruit ADXL345.

ADXL345 - недорогой трехосевой МЭМС-акселерометр с низким энергопотреблением, который поддерживает последовательные интерфейсы I2C и SPI. MEMS означает « микроэлектромеханическая система» , что означает, что ADXL345 содержит микроскопический механический компонент, который помогает определять ускорение. Схема акселерометра ADXL345 довольно проста и не требует каких-либо сложных деталей или проводки и может быть подключена напрямую к Arduino. Ниже мы включили все шаги, которые вам нужно будет выполнить, чтобы подключить

 

 

акселерометр ADXL345 к Arduino Uno.

Подключите контакт GND ADXl345 к контакту GND на Arduino.

Подключите вывод VCC ADXL345 к выводу 3v3 на Arduino.

Подключите контакт SCL ADXL345 к контакту SCL на Arduino.

Подключите вывод SDA ADXL345 к выводу SCL на Arduino.

 

Схема ниже также очень полезна для правильного подключения Arduino к ADXL345.

Если вы используете плату Adafruit ADXL345, вы также можете использовать соединение 5 В, поскольку эта коммутационная плата содержит схему для выравнивания напряжения до требуемых 3 В.

 

 

Импорт библиотек

Написание кода для чтения данных с акселерометра - относительно простой процесс благодаря библиотекам, которые мы можем использовать.

В этом проекте Arduino мы будем использовать библиотеку « Adafruit Unified Sensor » и библиотеку « Adafruit ADXL345 ».

1.Для начала откройте меню библиотеки в среде Arduino IDE, выбрав Sketch ( 1. ) -> Include Library ( 2. ) -> Manage Libraries ( 3. )

 

 

2.В этом окне найдите Adafruit ADXL345 ( 1. ) и найдите « Adafruit ADXL345 от Adafruit » ( 2. ), это должен быть единственный результат поиска.

Установите последнюю версию библиотеки, нажав кнопку « Установить » ( 3. ), как показано ниже.

 

 

3.Теперь в том же окне найдите « Унифицированный датчик Adafruit » ( 1. ) и найдите библиотеку ( 2. ).

После обнаружения нажмите кнопку « Установить » ( 3. ), чтобы продолжить.

 

 

Кодирование акселерометра

1. В среде Arduino IDE введите следующие строки кода.

Мы объясним каждый раздел кода акселерометра Arduino, чтобы вы поняли, как все это работает и что делает каждый важный бит.

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_ADXL345_U.h>

Мы начинаем с включения всех файлов заголовков библиотеки, на которые мы будем полагаться для большей части функциональности нашей программы.

Библиотека Wire используется в библиотеке ADXL345, поэтому Arduino может взаимодействовать с акселерометром по последовательному протоколу i2C.

Библиотека « Adafruit_Sensor » необходима, поскольку она является основой библиотеки ADXL345, которую мы используем. Он выполняет несколько различных задач для библиотеки ADXL345 и используется в качестве основы для большинства библиотек датчиков Adafruit.

Последняя библиотека, которую мы импортируем, - это « Adafruit_ADXL345 ». Эта библиотека обрабатывает весь код для взаимодействия с акселерометром от Arduino.

Мы будем использовать эту библиотеку для считывания данных об ускорении с датчика.

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();

Эта строка инстанцирует библиотеку Adafruit ADXL345 для переменной « Accel ».

Переменная « Accel » будет иметь настраиваемый объект, который позволит получить доступ к многочисленным вспомогательным функциям для взаимодействия с акселерометром ADXL345.

void setup(void)

{

   Serial.begin(9600); 

 

   if(!accel.begin())

   {

      Serial.println("No ADXL345 sensor detected.");

      while(1);

   }

}

Эта функция « setup () » запускается автоматически при включении Arduino.

Мы начинаем с запуска функции « Serial.begin () », чтобы Arduino могла отправлять сообщения через последовательное соединение. В эту функцию мы передаем скорость передачи 9600 бод .

После этого мы используем функцию « Accel » объектов « begin () », чтобы начать его соединение с нашим акселерометром ADXL345.

Затем мы проверяем результат, возвращаемый этой функцией. Если он возвращает « False », мы затем распечатываем сообщение на монитор последовательного порта, предупреждающее пользователя о том, что нам не удалось получить доступ к акселерометру ADXL345.

Если произошла ошибка, мы запускаем бесконечный цикл, используя « while (1) », это гарантирует, что мы никогда не войдем в основной цикл. Чтобы выйти из этого цикла, вам нужно перезапустить Arduino.

void loop(void)

{

   sensors_event_t event;

   accel.getEvent(&event);

   Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");

   Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");

   Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("  ");

   Serial.println("m/s^2 ");

   delay(500);

}

Эта функция « loop () » автоматически запускается после завершения выполнения функции « setup () ».

В этой функции мы создаем переменную с именем « event », которая использует структуру « сенсор_event_t ».

Затем мы используем функцию getEvent () нашего « ускоренного » объекта , передавая переменную события, которую мы определили ранее.

Эта функция « getEvent () » будет извлекать данные из акселерометра и заполнять передаваемую в него структуру (в данном случае переменную « event ») соответствующими данными.

Затем мы распечатываем значения ускорения X , Y и Z , которые были сохранены в нашей переменной « событие ». Все три значения доступны через вектор « event.acceleration ».

Наконец, мы задерживаем повторное выполнение цикла на 500 мс , используя функцию « delay () ».

2. Когда все будет сделано, ваш окончательный код должен выглядеть так, как мы показали ниже.

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_ADXL345_U.h>

 

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();

 

void setup(void)

{

   Serial.begin(9600); 

   if(!accel.begin())

   {

      Serial.println("No ADXL345 sensor detected.");

      while(1);

   }

}

void loop(void)

{

   sensors_event_t event;

   accel.getEvent(&event);

 

   Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");

   Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");

   Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("  ");

   Serial.println("m/s^2 ");

   delay(500);

}

 Тестирование акселерометра Arduino ADXL345

1.Чтобы загрузить код в Arduino, нажмите кнопку « Подтвердить » ( 1. ), а затем нажмите кнопку « Загрузить » ( 2. )

 

 

Если у вас возникнут проблемы, проверьте код, чтобы убедиться, что все правильно.

Также убедитесь, что ваш Arduino подключен и он выбран в меню Инструменты -> Порт:

2. Теперь ваш акселерометр Arduino должен быть запущен и передавать данные через последовательный монитор.

Сейчас самое подходящее время для загрузки Serial Monitor, чтобы вы могли видеть измерения, выполняемые акселерометром ADXL345.

Вы можете открыть программное обеспечение монитора последовательного порта Arduino, щелкнув « Инструменты » ( 1. ), затем щелкнув « Монитор последовательного порта » ( 2. )

 

 

3. В последовательном мониторе вы должны начать видеть данные с акселерометра ADX345, подключенного к вашему Arduino.

 

 

Я надеюсь, что к концу этого урока у вас будет работать акселерометр Arduino, и данные будут именно такими, как вы ожидаете от них.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024