Оглавление:
Видео: ADXL345 с использованием Arduino Uno R3: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом уроке мы узнаем, как использовать датчик ускорения ADXL345.
Шаг 1: Компоненты
- Плата Arduino Uno * 1
- USB-кабель * 1
- ADXL345 * 1
- Макетная плата * 1
- перемычки
Шаг 2: Принцип
Акселерометр используется для измерения силы, создаваемой во время ускорения. Самым фундаментальным из них является общеизвестное ускорение свободного падения, равное 1g.
Измеряя ускорение свободного падения, вы можете рассчитать угол наклона устройства к ровной поверхности. Анализируя динамическое ускорение, вы можете определить, как движется устройство. Например, самобалансирующаяся доска или ховерборд применяет датчик ускорения и гироскоп для фильтра Калмана и коррекции осанки.
ADXL345
ADXL345 - это небольшой, тонкий, маломощный 3-осевой акселерометр с высоким разрешением (13 бит) для измерения при нагрузке до ± 16 г. Данные цифрового вывода форматируются как 16-битное дополнение до двух и доступны через цифровой интерфейс SPI (3- или 4-проводный) или I2C. В этом эксперименте используется цифровой интерфейс I2C.
Он хорошо подходит для измерения статического ускорения свободного падения в приложениях для измерения наклона, а также динамического ускорения, возникающего в результате движения или удара. Его высокое разрешение (4 мг / младший значащий бит) позволяет измерять изменение наклона менее чем на 1,0 °. А превосходная чувствительность (3,9 мг / младший значащий бит при 2 г) обеспечивает выходной сигнал с высокой точностью до ± 16 г.
Как работает ADXL345
ADXL345 определяет ускорение с помощью чувствительного компонента спереди, а затем компонент считывания электрического сигнала преобразует его в электрический сигнал, который является аналоговым. Затем встроенный в модуль AD адаптер преобразует аналоговый сигнал в цифровой.
X_OUT, Y_OUT и Z_OUT - это значения по осям X, Y и Z соответственно. Поместите модуль лицевой стороной вверх: Z_OUT может достигать максимум + 1g, минимум X_OUT составляет -1g в направлении Ax, а минимум Y_OUT составляет -1g в направлении Ay. С другой стороны, переверните модуль вверх дном: минимум Z_OUT равен -1g, максимум X_OUT равен + 1g в направлении Ax, а максимум Y_OUT равен + 1g в направлении Ay., как показано ниже. Поверните модуль ADXL345, и вы увидите изменение трех значений.
когда канал A переключается с высокого уровня на низкий уровень, если канал B имеет высокий уровень, это означает, что поворотный энкодер вращается по часовой стрелке (CW); если в этот момент канал B находится на низком уровне, это означает вращение против часовой стрелки (CCW). Таким образом, если мы прочитаем значение канала B, когда канал A имеет низкий уровень, мы можем узнать, в каком направлении вращается энкодер.
Принцип: См. Принципиальную схему модуля Rotary Encoder ниже. Из него видно, что контакт 3 поворотного энкодера, а именно CLK на модуле, является каналом B. Контакт 5, который является DT, является каналом A. Чтобы узнать направление вращения записывающего устройства, просто прочтите значение CLK и DT.
В схеме есть микросхема регулятора напряжения 3,3 В, поэтому вы можете запитать модуль от 5 В или 3,3 В.
Поскольку SDO подключен к GND, адрес I2C ADXL345 - 0x53, 0xA6 для записи, 0xA7 для чтения.
Функция контактов модуля ADXL345.
Шаг 3: Процедуры
Шаг 1. Постройте схему.
Шаг 2:
Загрузите код с
Шаг 3:
Загрузите скетч на плату Arduino Uno
Щелкните значок «Загрузить», чтобы загрузить код на плату управления.
Если в нижней части окна отображается «Готово», это означает, что скетч был успешно загружен.
После загрузки откройте Serial Monitor, где вы увидите обнаруженные данные. При изменении ускорения модуля цифра в окне соответственно изменится.
Шаг 4: Код
// ADXL335
/********************************
ADXL335
примечание: vcc5v, но ADXL335 Vs составляет 3,3 В.
Схема:
5 В: VCC
аналог 0: ось x
аналог 1: ось Y
аналог 2: ось z
После сжигания
программы, откройте окно отладки монитора последовательного порта, где вы можете увидеть, как отображаются обнаруженные данные. При изменении ускорения цифра будет меняться соответственно.
*********************************
/Эл. адрес:
// Сайт: www.primerobotics.in
const int xpin =
A0; // ось x акселерометра
const int ypin =
A1; // ось Y
const int zpin =
A2; // ось z (только в 3-осевых моделях)
установка void ()
{
// инициализируем последовательную связь:
Serial.begin (9600);
}
пустой цикл ()
{
int x = аналоговое чтение (xpin); // читать из xpin
задержка (1); //
int y = аналоговое чтение (ypin); // читать с ypin
задержка (1);
int z = аналоговое чтение (zpin); // читать с zpin
float zero_G = 338.0; // Блок питания ADXL335
по Vs 3,3 В: 3,3 В / 5 В * 1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serial.print(y);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
плавать
zero_Gx = 331.5; // вывод zero_G оси x: (x_max + x_min) / 2
плавать
zero_Gy = 329.5; // выход zero_G оси y: (y_max + y_min) / 2
float zero_Gz = 340.0; //
zero_G вывод оси z: (z_max + z_min) / 2
Масштаб с плавающей запятой =
67.6; // питание от Vs 3.3V: 3.3v / 5v * 1024 / 3.3v * 330mv / g = 67.6g
поплавок scale_x =
65; // масштаб оси x: x_max / 3.3v * 330mv / g
поплавок scale_y =
68.5; // масштаб оси y: y_max / 3.3v * 330mv / g
float scale_z =
68; // масштаб оси z: z_max / 3.3v * 330mv / g
Serial.print (((float) x
- zero_Gx) / scale_x); // выводим значение x на серийный монитор
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy) / scale_y); // выводим значение y на серийный монитор
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz) / scale_z); // выводим значение z на серийный монитор
Serial.print ("\ n");
задержка (1000); // ждем 1 секунду
}
Шаг 5: Анализ кода
Код для эксперимента ADXL345 состоит из 3 частей: инициализация каждого порта и устройства, сбор и сохранение данных, отправленных с датчиков, и преобразование данных.
Рекомендуемые:
Мониторинг ускорения с использованием Raspberry Pi и AIS328DQTR с использованием Python: 6 шагов
Мониторинг ускорения с помощью Raspberry Pi и AIS328DQTR с использованием Python: Ускорение конечно, я думаю, в соответствии с некоторыми законами физики. - Терри Райли Гепард использует удивительное ускорение и быстрое изменение скорости при преследовании. Самое быстрое существо, выброшенное на берег, время от времени использует свой максимальный темп, чтобы поймать добычу
3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: 6 шагов
Трехосевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: подумайте о гаджете, который может проверить точку, в которой ваш внедорожник наклонен, чтобы задержаться. Разве это не было бы приятно, если кто-то настроится, когда есть вероятность опрокидывания? Очевидно да. Было бы правда
Neopixel Ws2812 Радужный светодиодный светильник с ручкой M5stick-C - Запуск Rainbow на Neopixel Ws2812 с использованием M5stack M5stick C с использованием Arduino IDE: 5 шагов
Neopixel Ws2812 Радужный светодиодный светильник с ручкой M5stick-C | Запуск Rainbow на Neopixel Ws2812 с использованием M5stack M5stick C с использованием Arduino IDE: Привет, ребята, в этой инструкции мы узнаем, как использовать светодиоды neopixel ws2812 или светодиодную ленту, светодиодную матрицу или светодиодное кольцо с платой разработки m5stack m5stick-C с Arduino IDE, и мы сделаем радуга с этим
RF 433MHZ Радиоуправление с использованием HT12D HT12E - Создание радиочастотного пульта дистанционного управления с использованием HT12E и HT12D с частотой 433 МГц: 5 шагов
RF 433MHZ Радиоуправление с использованием HT12D HT12E | Создание радиочастотного пульта дистанционного управления с использованием HT12E и HT12D с частотой 433 МГц: в этой инструкции я покажу вам, как сделать радиоуправляемый пульт дистанционного управления с использованием модуля приемника передатчика 433 МГц с кодированием HT12E & ИС декодера HT12D. В этом руководстве вы можете отправлять и получать данные, используя очень-очень дешевые КОМПОНЕНТЫ, КАК: HT
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino - Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера - Радиоуправляемый вертолет - Самолет на радиоуправлении с использованием Arduino: 5 шагов (с изображениями)
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino | Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера | Радиоуправляемый вертолет | Самолет на радиоуправлении с использованием Arduino: для управления автомобилем на радиоуправлении | Квадрокоптер | Дрон | Самолет RC | Лодка с дистанционным управлением, нам всегда нужны приемник и передатчик, предположим, для RC QUADCOPTER нам нужен 6-канальный передатчик и приемник, а такие типы TX и RX слишком дороги, поэтому мы сделаем один на нашем