Датчик ускорения ADXL345 и STM32 (XYZ, DOUBLE TAP, FREE-FALL, ACTIVITY)
Вставка
- Опубліковано 24 чер 2021
- 📝 Статья: cxemka.com/92-podklyuchenie-a...
🏷️ GY-291 ADXL345 3-Axis Sensor Acceleration (1.80💲): ali.ski/VZIsJX
🏷️ ADXL345 3-axis IIC / SPI (0.89💲): ali.ski/_kPiu
🏷️ Digital Sensor ADXL345 (1.12💲): ali.ski/AEE6Y
🏷️ ADXL345BCCZ LGA-14 5pcs (8.01💲): ali.ski/exjU_E
🏷️ 5pcs ADXL345 ADXL345BCCZ LGA-14 (4.50💲): ali.ski/VrtD0z
🏷️ 5pcs ADXL345 Modules (9.40💲): ali.ski/8Ftz4T
🏷️ STM32F401 Module (3.50💲): ali.ski/_tqycX
🏷️ STM32F401 Black Pill USB C(3.88💲): ali.ski/-uchC5
🏷️ STM32F401 DevBoard Type-C (3.46💲): ali.ski/pdJsU
🛒 Мой мультиметр T21D RM113D (13.81💲): ali.ski/ED0syl
↪️ GitHub: github.com/Egoruch/ADXL345-ST...
#adxl345 #stm32 #stm32cubeide
✒️ В этом видео рассмотрено подключение акселерометра (датчика ускорения) ADXL345 в STM32 через I²C, который имеет несколько прерываний по событиям:
- двойной/одиночный удар;
- активность/неактивность;
- свободное падение;
это очень круто и классно, потому что дает возможность просто переложить слежку за значениями ускорения датчику, а возникшее событие отлавливать чтением регистра или вообще на выводе в качестве внешнего прерывания. - Наука та технологія
Коротко і по суті. Дякую за підказку з таблицею ініціації значень.
голос за кадром напоминает первые гундосые переводы американских "видиков")
Спасибо за видео! А разве структура не тратит место во flash памяти? Имхо это не лучший способ задавать табличные значения, все таки лучше через define.
Комментарий для активности канала
Интересно, как высчитать частоту вибрации, типа инпутшейпинга в клиппере ?
Как подключить 4шт adxl345 к ардуино нано? Потянет? Цель- вывести на экран смартфона 4 графика от этих датчиков, для анализа вибрации в разных местах
Попробывал повторить шаг с получением ID устройства на mpu9250 (на палте gy91) (так же с stm32f411), по адресу регистра 0x75 (WHO_AM_I) должен прилететь 0x71 , но приходит какая-то хрень ;C
Попробывал вкатится в эти ваши камушки, а тут такая подстава, ну жду видос/статью по mpu9250 :)
нашел почему не работало
у тебя в статье указанно:
HAL_I2C_Master_Transуmit(&hi2c1, ADXL_ADRESS, 0x00, 1, 1000);
но 3-ий аргумент (который "0x00") должен быть указателем, например так:
uint8_t reg = 0x75;
HAL_I2C_Master_Transmit(&hi2c1, GY91_ADR, ®, 1, 50);
@@oqqa5295 спасибо, исправил
Хороший акселерометр. В своё время я активно его использовал, но потом от него отказался в пользу более энергоэффективного.
Так у этого в режиме измерения 23 мкА. У альтернативы в разы меньше?
@@akvilion7365 меньше, например у LIS2DW12 при частоте 25 Гц потребление 1,5 мкА, при частоте 1,6 Гц, потребление 380 нА.
Может лайтовый курс сделать по Кубам? IDE, Monitor, Prog? Как раз СТ-шники их обновили.
можно, но там вроде все как и было
@@cxemkacom3623 подписату надо как то расширять. Мб такие ролики подтянут новичков и просмотры.
@@akvilion7365 сложно угадать, мб monitor и зайдет
@@cxemkacom3623 попробуйте про него. Что позволяет, какая max скорость обмена и тп. Кратенько, чтоб не гробить на ролик три дня. В качестве эксперимента - зайдет не зайдет.
@@cxemkacom3623 у Мединцева есть ролик по нему, +ещё у забугорного блогера. Но они по 20 минут длятся. У тебя же стиль сжатый, всё по делу. Если ролик выйдет в 2-3 раза короче уже повысится шанс что выберут его при просмотре в качестве туториала. Потом можно и сабы прикрутить на английском. Не дело это, когда контент годный, а подписчиков болт.
20:25 где продолжение ?
Подскажите мне нужны ускорения только с одной оси. сколько можно получить отсчетов за секунду
3200
Страница 14:
www.analog.com/media/en/technical-documentation/data-sheets/ADXL345.pdf
@@cxemkacom3623
как в режиме SPI 3wire получать только 32 и 33 (Х) регистры в потоке ?
3200 выборок в секунду полУчите при подключении к SPI. Если подключение как в видео, по I2C, максимальная частота выборки вчетверо меньше: 800 выборок/с при максимальной скорости передачи I2C в 400кГц.
@@bvn6136 Спасибо.
Для получения потока данных по SPI надо свою программу в микроконтроллер писать: в видео подключение по I2C, а не по SPI - существенное отличие.
Перед началом измерения (передачи потока) надо инициализировать регистры ADXL, выбрав режим измерения и запустив непрерывное измерение.
Затем в программе микроконтроллера мониторить состояние бита регистра Rg 0x30/bit7 (data_ready). При установке бита считывать состояния регистров 0x32...0x37 и передавать их потоком.
Если нужна передача данных только от одного канала, при скорости передачи данных в 115200бит/с (микроконтроллером по USB или UART) максимальная частота преобразования снизится с 3200выборок/с до 1600выб/с.
Так... Бандикам, папка Лб, а это что? Почему контроллер MIDI?
на какой секунде?
@@cxemkacom3623 18:02 я думал пасхалка XD
до чего же противная озвучка, информация конечно полезная, но озвучка зсе портит
Объясните кто-нибудь, зачем мы сдвигаем адрес датчика на шине 0x53?
#define ADXL_addr (0x53
В видео сделано верно: адрес в виде, представленном в документации, надо сдвигать влево на 1 разряд. Цитата из даташита:
"Альтернативный адрес I2C 0x53 (ПОСЛЕ КОТОРОГО СЛЕДУЕТ БИТ Чтение/ЗАПИСЬ) можно выбрать подачей лог.0 на контакт ALT ADDRESS (конт.12).Это соответствует
значению адреса 0xA6 для записи и 0xA7 для чтения."
Для записи в программу существенно в нём только "адрес 0xA6 для записи 0xA7 для чтения".
ST, например, для своих датчиков пишет адреса в двоичном виде, и в изложении ST это выглядело бы так:
базовый адрес I2C: 1010 011xb, т.е., адрес для записи 1010 0110b (0xA6), для считывания 1010 0111b (0xA7).
Вероятно, ардуино требуется 7-битный адрес (0x53), а его сдвиг влево и добавление младшего бита (справа) для формирования I2C адреса записи или считывания выполняется средой разработки. Не исключено, что среда разработки ардуино правильно обработает и 8-битный адрес (0xA6), если в старшем бите 8-разрядного адреса окажется единица.
@@bvn6136 Спасибо большое, за ответ!