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    312
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    312
16 минут назад, Kirill Lubinets сказал:

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

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

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

 

cxem_shock_sensor1.png

  • Одобряю 1

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


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

Найдите миллионы труднодоступных

электронных компонентов

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: Kudich
      Всех приветствую!
      Сам я программирую на стандартной среде ардуинки, и в одном проекте потребовалось увеличить частоту ШИМ на портах 5,6,9,10,11,13 Arduino Micro. На этой ардуино стоит Atmega32u4, есть тут знатоки avr? Как повысить частоту на этих пинах?
    • Автор: Evg69
      добрый день. Вернулся к микроконтроллерам после длительного перерыва. Сижу туплю и даже гугл не помог.
      Два вопроса по Atmel Studio 7. Режим отладки. Симуляция.
      1. Как включить окно в котором можно посмотреть что контроллер выплевывает
      в UART? Не содержимое регистра, а типа терминала.
      2. Как подсунуть студии файлик с содержимым EEPROM?
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Автор: Static
      Доброго дня всем!
      Не так давно решил опробовать использовать в схемах ATmega в корпусе TQFP и возник такой вопрос. На ней имеется аж три ноги на "-" и две под "VCC". Подсоединять нужно все или можно только по одной любой?
      Заранее благодарен за помощь.
    • Автор: Doublman
      Всем доброго времени суток.
      Развел платки - коммутаторы на основные МК.
      Платы коммутационные для HV PROG (параллельного программирования).
      Питание 5в оставил для перемычки (видно на фото).
      Комплект из 3-х плат ATMEGA 8, 16, 32, 48(P), 88, 164P, 168, 324P, 664P, 1284P, 8535, ATTINY 48, 2313.
      https://radikal.ru/fp/4f4203a9b1d54f9fbb92318c2234e576
      Имею 5 комплектов. Цена 450 за все 3 платки ("лист" на этой фотографии) Имею 5 комплектов. https://radikal.ru/fp/73ce63f7f99b4f7d9b744b2563204c1b
      Платки находится в Самаре, если почтой то +50р почте.