Jump to content

    

непонятность с акселерометром

пытаюсь сделать датчик перемещения объекта, просто чтоб была коробочка на нём закреплённая и реагировала на любое его перемещение

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

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

вот купил самый дешманский акселерометр LIS3DH и решил попробовать фиксировать ускорение

 

а теперь непонятность: постоянно присутствует шумовая помеха на уровне примерно 20% от полной шкалы, никак не могу её отфильтровать

попытка замерить среднее арифметическое по 256 замерам позволяет снизить ну до 15%, но неустойчиво, ложные сработки вылазят

при этом ещё и наклон датчика влияет на уровень помехи

вобщем при отсечке примерно на 30% от полной шкалы всё становится хорошо, никаких ложных сработок и влияния наклона, но при этом реагирует только на довольно резкие толчки, спокойная перестановка рукой не вызывает сработки

 

вопрос: это надо купить какой то более правильный и дорогой датчик? или что то не так с обработкой сигнала? ну не должно же быть такой сильной помехи, мне кажется

с питанием точно всё в порядке, оно от батарейки, точно без пульсаций и помех, схема примитивнейшая, датчик, пик12 и светодиод

сталкивался кто-нить с акселерометрами? подскажите куда копать

Share this post


Link to post
Share on other sites

Как вы его включали в режим?

 

LIS3DH_SetFullScale

LIS3DH_SetAxis

Эти функции выполняли (или соотв. регистры инициализировали)?

 

У меня с этим датчиком не было проблем.

Также вспоминаю, что он стоит еще на STM32F407G-Discovery.

И там есть пример управление указателем мышки наклонами платы. И все очень плавно возле нуля.

 

Share this post


Link to post
Share on other sites
с питанием точно всё в порядке, оно от батарейки

А Вы точно в этом уверены? Батарейка - не гарантия. Емкости по питанию достаточные стоят?

 

Share this post


Link to post
Share on other sites
Как вы его включали в режим?

 

LIS3DH_SetFullScale

LIS3DH_SetAxis

Эти функции выполняли (или соотв. регистры инициализировали)?

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

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

 

режим задан без внутренних фильтров, полный диапазон +\-2G

пока обрабатываю только одну ось Х, непрерывно проверяется флаг обновления даннных, они считываются-суммируются, так 256 раз

после этого проверяется результат по модулю и соответственно зажигается или не зажигается светодиод

затем снова полная переинициализация всего и по новой

 

для светодиода проверяется только старший байт результата, он имеет диапазон +\-127, проверяется по модулю

при значении проверки 10 светодиод горит вообще постоянно, при 15 уже почти нормально, но наклон платы примерно на 20 градусов и загорается, при проверке на 30 уже без всяких ложных сработок

 

 

А Вы точно в этом уверены? Батарейка - не гарантия. Емкости по питанию достаточные стоят?

батарейка литий 2032 на 3в, стоит керамика 10мкф и тантал 100мкф в параллель

отсюда же запитан PIC12F675, работает на внутреннем 4МГц генераторе

 

И там есть пример управление указателем мышки наклонами платы. И все очень плавно возле нуля.

а где можно посмотреть исходник примера? может что то прояснится

Share this post


Link to post
Share on other sites

Плату сами собирали (паяли) или купики готовую с этим мемсом? Я к тому, что при самостоятельной сборке, пайки могли неравномерно нагреть сам мемс и пошли шумы из-за этого. Уменя такое было в самом начале работы с этими мемсами. Описаный у вас рецидив похож на тот что был у меня. Также неравномерный, разный шум при наклонах.

Share this post


Link to post
Share on other sites
Плату сами собирали (паяли) или купики готовую с этим мемсом? Я к тому, что при самостоятельной сборке, пайки могли неравномерно нагреть сам мемс и пошли шумы из-за этого. Уменя такое было в самом начале работы с этими мемсами. Описаный у вас рецидив похож на тот что был у меня. Также неравномерный, разный шум при наклонах.

сам, на макетке

вроде не перегревал, в касание паял, сначала приклеил контактами вверх, мазнул флюса и по 1 волоску припая от контактов на макетку, а уж с макетки распаял на пик и питание

конечно вариант, хотя вроде больше 30 лет паяю почти ежедневно

сейчас ещё подумалось что может постоянное обращение по шине к кристаллу даёт помеху, надо попробовать настроить опрос по прерыванию готовности данных, а не постоянно проверять статус

 

главное потвердили что микросхемы принципиально не косячные, буду дальше экспериментировать

Share this post


Link to post
Share on other sites
главное потвердили что микросхемы принципиально не косячные, буду дальше экспериментировать

Мне кажется лучше чем впустую терять время, взять ещё один чип (другой, не LIS3DH) распаять рядом и сравнить показания.

Сам сейчас как раз начинаю работать с MPU-6050. Тоже I2C.

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites

Применял MMA8453Q и MMA8452Q - это практически то же самое, что и LIS3DH. Никаких проблем не было, заметных шумов тоже не замечал.

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

Но мне паяли и в ручную феном и в печке - проблем не было.

Share this post


Link to post
Share on other sites
Мне кажется лучше чем впустую терять время, взять ещё один чип (другой, не LIS3DH) распаять рядом и сравнить показания.

пока перепаял другой точно такой же (покупал 2 сразу), очень аккуратно и очень быстро, точно не перегрел

абсолютно ничего не изменилось

вариант кривой пайки явно отпал

Share this post


Link to post
Share on other sites

У нас в изделии LIS3DH используется как датчик наклона/перемещения.

Какого-то заметного "дребезга" не видно. По температуре заметно плывёт, да.

 

Если интересно, могу содержимое регистров рассказать. Правда, коллега мой, который это всё делал, решил, что встроенный фильтр - дрянь, и сделал свой. Это показывать не буду, извините.

Share this post


Link to post
Share on other sites

Как-то меня сильно смущает монтаж проводечками и конденсаторы фильтров в стороне. Лучше бы это все далать на плате и фильтры рядом и толстыми дорожками.

Share this post


Link to post
Share on other sites
Если интересно, могу содержимое регистров рассказать.

в принципе интересно, может я чото явно накосячил

у меня сейчас так

1F,21,22,24,25,26,2E,30,32,33,38,3A,3B,3C,3D - 00H

20 - 97H 1250Гц, все 3 оси разрешены

23 - 08H диапазон +\-2G

частоту менял на 50 и 400, никаких изменений

Edited by ddd-ekb

Share this post


Link to post
Share on other sites
сначала приклеил контактами вверх, мазнул флюса и по 1 волоску припая от контактов на макетку, а уж с макетки распаял на пик и питание

Кроме как блокировочные емкости не возле ножек, а после проводков - плохо,

 

может быть еще и проблема в таком монтаже с закреплением на верх корпуса.

Хотя теоретически датчик там - вытравленные объемные емкости в кремнии,

все-же это рассчитано на жесткое крепление за подложку.

Share this post


Link to post
Share on other sites

вобщем распаял рядом точно также LIS344 с аналоговым выходом

все глюки как рукой сняло

сейчас осталось только фильтрацию отстроить, чтоб вибрации всякие отсеивать

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this