Массовый расходомер
- Войдите на сайт для отправки комментариев
Здравствуйте уважаемы форумчане!
Хочу обратиться к вам с помощью, поскольку сам в ардуино пока не разбираюсь, а мне нужно сделать небольшой проект, и был бы благодарен любой помощи. У меня есть 2 аналоговых сигнала , с немного различными фазами, и мне для подсчёта моего расхода топлива необходимо подсчитать временной интервал (пометил красным на рисунке ниже) между двумя этими же сигналами.
У меня есть небольшие наброски, но они на логике, а именно, взять 2 компаратора преобразовать синусоидальный сигнал в прямоугольный, а далее по фронту спада, используя генератор кратковременных импульсов, через RS триггер выдавать на выходе единицу при улавливании 1ого сигнала, и сбросе, при улавливании 2ого сигнала, а далее длину импульса на выходе триггера считать при помощи генератора тактовых импульсов, и кол-во импульсов записывать в счётчик, далее по формуле преобразовать в нужны мне расход.
Ребята подскажите как подобную систему можно реализовать через ардуино? Может есть какие, полезные статьи, а я по своей невнимательности проморгал, и если уже как-то повторяюсь, то сильно не сердитесь на меня) буду рад любой вашей помощи!=)
1. А почему возникла мысль использовать именно Ардуино?
2. Какие характерные времена и напряжения? Какая нужна точность?
Извиняюсь, что сразу не написал характеристики. А точность сильной роли не играет.
Диапозон напряжения(U): 50-3000мВ
Временное интервал(τ): 2-102,5мс
Период следования(Т): 100-300мс
А решил делать на ардуино вместо логики, т.к. мне предъявили требования актуальности, что то на современных образцах собрать. И ардуино вроде неплохо вписывается в данные рамки, поскольку в ней практически есть всё необходимое, осталось только разобраться как всё это дело реализовать)
Ардуино - прекрасный проект, который позволяет снизить порог вхождения в робототехнику до уровня старшеклассника. И с другой стороны позволяет плавно перейти от "игрушечной" робототехники к "взрослой".
Но не следует заблуждаться: Ардуино позволяет легко собрать несколько десятков учебных примеров, но как только речь заходит о реальном (не учебном) проекте, оказывается, что концепции Ардуино недостаточно, и нужно переходить на AVR. Если Вы перед этим сделали несколько десятков учебных проектов, то реальный не доставит Вам больших сложностей. Ни никто не может гарантировать, что попытка начать сразу с реального проекта приведет к успеху.
И, хотя ничего сложного в Ваших хотелках нет, это может оказаться намного сложнее любого учебного проекта.
Для низких частот можно без ассемблера наверное, если взять готовую библиотеку TimerOne или ей подобную, позволяющую выполнять периодические действия. Потом по таймеру делать аналогРеад двух входов. Сигналы предварительно подвесить
ну а как определить пересечение через 0 подумайте сами, или погуглите
Начать, видимо, нужно с создания схемы, чётко срабатывающей по Вашим сигналам. А уже имея верные импульсные сигналы, обрабатывать их на ардуино. Например, подсчитывать количество импульсов в счётчике ардуно "протикавших" за время тау.
Представьте Вашу схемотехнику.
Да тут же все просто реализуется как два пальца об асфальт.
Парой компараторов из положительных полуволн сделать прямоугольные импульсы которые подать на входы аппаратных прерываний с прерыванием по RISE. По прерыванию с одного входа запускаем таймер, по прерыванию с другого останавливаем. Таймер программируем на 10-20-50 мкс в зависимости от требуемой точности и прибавляем единичку к переменной в которой окажется длительность по каждому прерыванию от таймера. Ардуина вообще бОльшую часть времени будет простаивать в безделье если ей еще какую работу не придумать. Какой ассемблер )))
Подскажите пожалуйста, как реализовать компаратор, а то перерыл кучу форумов, и до сих пор не понял как через компаратор сделать.
Например, так как в этой статье на рис10 и 11
http://electrik.info/main/praktika/696-shemy-na-komparatorah.html