4 сообщения в этой теме

Дано: отладочная плата STM32F303VC, индукционный датчик.

Доброго времени суток, суть моего проекта в  детектировании вибраций(ударов) при помощи аналогового датчика.

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

image.png.6c5dfd3015fe1e7c39610351e9d8a5fb.png

Информация по датчику.

Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды.
Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения.
Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания:

контакт обозначенный «–» – общий контакт;

средний контакт – напряжение питания;

контакт S – аналоговый выходной сигнал датчика.

Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока.

Характеристики:

принцип действия: индукционный;
выходной сигнал: аналоговый;
напряжение питания: 3,3 – 5 вольт постоянного тока;
размеры: 30 х 18 х 11;
вес: 2 г.

Shock.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    297
37 минут назад, Kirill Lubinets сказал:

то ли я ошибся с алгоритмом его работы

А какой алгоритм используется в программе? Если можно, напишите коротко своими словами. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Инициализирую порт А(там находится АЦП) и порт В(там находятся распаянные светодиоды), конфигурирую светодиоды и АЦП1(ножна PA0).

АЦП 10-битный значит он сможет детектировать 1024 различных  напряжений на амплитуде 0-5 V. 
Из этого выходит что чувствительность(шаг квантования) равен 5мВ.

Когда датчик приводят в возбуждение(трисут, стукают,дергают) в нем возникает ЭДС самоиндукции что гасит напряжение:

1.Датчик в работе значит на выходе будет менее 5V(напряжение питания);

2.Датчик в спокойствие на выходе будет 5V(напряжение питания);
 

 

АЛГОРИТМ(while)

 

1.Считываю значение с АЦП1, делаю паузу, запрещаю дальнейшие преобразование
2.Делаю расчет текущего потенциала на датчике ( значение АЦП * 5(напряжение питания)/1024(разрядность АЦП) )
3.Сравниваю с условием состояния датчика
3.1. Зажигаю один из светодиодов(в зависимости от состояния датчика)

3.2. Делаю паузу

3.3.Тушу светодиод, включаю на АЦП1 преобразования

 

Думаю я ощибся в условии срабатывания датчика среагировавшего на удар.

 

if(u <  1400)

тогда удар был зажечь зеленый светодиод

else

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    297
16 минут назад, Kirill Lubinets сказал:

в нем возникает ЭДС самоиндукции

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

Тут даже не нужно АЦП использовать, потому что при срабатывании датчик выдаёт серию импульсов 5В-0В -5В-0В-5В ... Надо просто подать этот сигнал на ножку порта и включить прерывания на этой ноге. Тогда при появлении импульсов на ноге сработает прерывание, и в обработчике прерывания уже можно включать светодиод. 

 

cxem_shock_sensor1.png

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: DimonRX
      Всем доброго времени суток!
      В AVR-ках я новичёк и очень нуждаюсь в вашей помощи.
      Задача у меня следующая. Есть драйвер управления серводвигателем на ATmega88. Помимо основной задачи ATmega88 через 74HC164D выводит на сдвоенный 7-ми сегментный индикатор направление вращения мотора в виде анимации (вращает сегмент по или против часовой стрелки). Рядом есть некая поделка на ATmega8, одной из задач которой является определение направления вращения мотора и, в зависимости от направления, выполнение различных действий. Как мне это сделать? Как подружить две меги? Всем заранее спасибо.
    • Автор: Петр Серёгин
      Здравствуйте, у меня проблема.
      Не программируется ATmega2561-8AU. Программатор USBASP. Микроконтроллер 100% рабочий. Питание и контакты программатора припаяны правильно.
      Что можете посоветовать? 
    • Автор: Леонид:3
      Приветствую всех любителей турбореактивной тяги любителей и профессионалов 
      Имеется АЦП 12 бит, 750 КГц, для крейта КАМАК. Но ввиду его ограничения по длине выборки в 65536 точек (для наших задач желательно больше в разы), настала пора его менять. 
      В виду того что КАМАК уже устаревший стандарт у нас сейчас идет поиск решения нашей проблемы (прошу не предлагать крейты NI), глаз упал на крейты l-card, но их покупку решили оставить на попозже. 
      Собственно суть, перед мною стоит задача научиться изготавливать АЦП для подключения к компьютеру. А это значит: освоить работу со скоростными интерфейсами (LVDS, PCI-e и т.п.)(ибо требования выдвигающиеся к АЦП следующие, от 14 бит и от 1 МГц, и хотелось бы получать информацию с АЦП в реальном времени). 
      Вас Уважаемые я прошу подсказать литературу по данной тематике. А также подсказок в выборе интерфейсов самих микросхем АЦП и их путей согласования с интерфейсами компьютера.
      P.S. Конечно такой сложный АЦП я сразу собирать не планирую, сначала научиться работать с интерфейсами, после собрать очень простенький АЦП. 
      P.P.S Управлять планируется через LabView.
      да, осциллографические приставки имеются, но работая через USB они крайне медленные.
    • Автор: RIMUS1989i
      Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?

  • Сообщения

    • В курилке ("отвлекись эмбеддеры") начали выражать недовольство пенсионно-налоговой реформой под прикрытием футбольного мундиаля, сначала стали пропадать особо резкие сообщения...., а теперь и сам казус пропал (недоступен уже пару дней). С уважением, Сергей.
    • Для домашнего использования на характеристику поля особо обращать внимание не стОит, так как показывает она возможности акустики по озвучиванию помещения. Например, мониторы дальнего поля позволяют работать с высокими уровнями звукового давления и с расширенной частотной полосой вниз, словно хорошие домашние напольники, а мониторы ближнего поля - суть малыши для размещения на столе. Эту акустику для использования дома нужно обязательно слушать. Да любую акустику при выборе нужно слушать. А студийная аппаратура вообще достаточно специфична и многим кажется скучной. У нее хорошая линейность, высокое звуковое разрешение, но тембральным разнообразием часто не балует, отчего звучание кажется "мертвым" и однообразным.
    • Позвольте вопрос. А что за акустика? Потому как у меня Каппа 600 даже вечером на комфортном для домашних уровне громкости все просто прекрасно играет в 20 квадратах.
    • А мультик в руки и померить  ток?сколько?
    • Авторасстановка может помочь, например светодиоды по кругу Автотрассировка - экономия времени "Одна из наших плат была проделана квалифицированным инженером в течение 2 недель. Чтобы изучить возможности системы TopoR CAD, мы передали эту задачу специалистам Eremex и были впечатлены, узнав, что они проделали эту работу в течение часа. Кроме того, большая часть работы была выполнена путем автоматической маршрутизации с незначительными ручными исправлениями. Однако качество маршрутизации было лучше, чем качество нашего варианта" ручной вариант Топор
    • В принципе типично драйвер + силовой каскад, включаю через лампу смотрю на ток потребления (норма около 0.2А) и что на затворах ключей творится (на верхнем плече осциллограф ловит наводки, лечится подключением инвертора через трансформатор 220-220), далее если всё окей - ток на минимум и к балласту, так же нужно следить за затворами ключей, скважность должна изменять под нагрузкой Хочу выразить благодарность всем кто мне помогал, для меня это бесценный опыт!