Страница 1 из 1

Помогите расчитать скорость по задержке.

Добавлено: Ср июн 14, 2006 18:34:04
Spider
В общем проблема у меня с математикой случилась.
Наконец дошли руки до моего незаконченого БК.
Решил приделать к этому делу спидометр и тахометр. Принцип у всех одинаковый, тока частота расчёта разная. Ну да не в этом дело.
Было у меня изначально 2 подхода:
1. Завести инмпульсы от спидометра на T0/T1 и тем самым увеличивать значение Счётчика аля Таймера. Затем параллельно работающим таймером от тактовой процессора снимать с предыдущего значения м выводить. Реализовалось - не понравилось. К примеру скорость 100 км/ч есть 166.6(6) имп/сек. таймер же получает значение 166 в резуьтате скорость выводится как 98 км/ч или получает 167 и выводтся как 102 км/ч. Опять же не понравилась задержка в расчётаах, т.е. скорость я могу снимать с частотой не более чем 4 раза в секунду, то же касается и тахометра, если со скоростью ещё куда не шло, то тахометру такая "редкость" не доупутима. На глаз видны скачки и нет "плавности".
2. Этот способ мне понравился всем кроме одного - я не могу расчитать значение :) Состоит он из 1 (16 бит) таймера и внешнего прерывания INT0/1 (одно на спидометр одно на тахометр). Таймер щёлкает себе на фоне и никак больше не проявляет себя (разве что прерывание по переполнению, об этом позже). Внешнее же прерывание срабатывает при приходе импульса со спидометра (или катушки в случае тахометра). По INT я смотрю дельту которую таймер отщёлкал с последнего момента вызова этого прерывания и тем самым вычисляю сколько времени прошло между 2мя импульсами. Вот тут и начинается самое интересное. Вот я получил некое значение времени между 2мя импульсами. Я знаю, что за 1 метр пути спидометр выдёт мне 6 импульсов из которых у меня уже есть 2 как минимум. При этом я знаю время между ними. Казалось бы что ещё нужно? Аж нет. Не могу рачитать результат - скорость.

Помогите :) Я понимаю что задача для 3его класаа начальной школы...

Добавлено: Ср июн 14, 2006 22:12:32
xelos
если 6 импульсов есть 1 метр, на 6 импульсов у тебя 5 временных инервалов, каждый из которых равен 1/5 = 0.2 метра. Твои 2 импульса это и есть 1 временной интервал или 20 см.
чтобы получить скорость делим расстояние на время :) т.е. скорость есть 0.2/t м/с (t должно быть в секундах). ну а преобразовать в км/ч, надеюсь сам можешь ;)

Добавлено: Чт июн 15, 2006 03:53:13
Spider
Я сейчас тоже встал и решил. Оказывается надо чаще спать :) Спасибо.

Добавлено: Вт июн 20, 2006 04:52:21
Mamonth
Spider, есть же ещё интеграторы.... Конденсатор лепишь, и измеряешь на нем напряжение. Получится плавненько. И мерить нужно будет не импульсы, а напряжение на конденсаторе. Так работает большинство тахометров.

Добавлено: Ср июл 26, 2006 12:35:51
Spider
Добыл я такую железяку как Датчик Расхода Топлива. Суть его в том, что он на каждый прокаченный бензонасосом литр топлива даёт 16000 импульсов.

Куда лучше завести этот датчик для съёма значений. На таймер или на прерывание (последних свободных уже нет :( ). И как лучше снимать значения для анализа. К примеру стоит машина с заведённым двигателем. И как у неё расход? делить на ноль незя, расход есть а пробега нет. В таком случае выводить расход в час?
В общем как лучше сделать посоветуйте?

Добавлено: Ср июл 26, 2006 19:48:17
moLCHec
Скажу честно я в автомобилях не особо понимаю . Но раз двигатель работает он же чёто крутит . Отдуда и бери с помощью таха и на ацп. Там же генератор вроде есть может с него напругу брать.

Добавлено: Ср июл 26, 2006 20:14:40
Spider
Как бы вопрос стоял не о том от куда напругу брать, а о том как лучше реализовать приём ипульсов и расчитывать полученные данные

Добавлено: Чт июл 27, 2006 02:09:33
Aheir
Пожалуй, не совсем в тему, но все ж вопрос:

а как лучше всего измерять при помощи МК длину импульса?

Добавлено: Чт июл 27, 2006 06:22:54
Spider
Я это делаю по прерыванию и смотрю временной интервал между срабатываниями.

Добавлено: Чт июл 27, 2006 07:24:28
moLCHec
Так почему же счётчиком тоже делать не можешь устанавливай прерывание по совпадению режим CTC и ставь в регистр сравнения 1.
Буит тоже самое. Или нет.

Добавлено: Чт июл 27, 2006 07:29:32
Spider
Прерывание жалко :) Для другого сгодилось бы

Добавлено: Сб авг 05, 2006 21:07:14
Spider
Что-то расслабились все... НЕ СПАТЬ!
Вот вам задачка, чтобы не скучно было.
Как вы думаете, будет ли правильным и как это будет работать повесить 3 датчика с выходами в виде импульсов на 3 внешних прерывания типа INT{N} на ATMEGA16/128 и снимать с них значения? При этом эти датчики следующие:
Спидометр - 6 импульсов на метр пути.
Тахометр - 4 импульса на оборот (это ещё не проверено и никто только сказать не может)
ДРТ - 16000 на литр.

Некоторые "константы":
max обороты: 7000/мин
max скорость 180 км/ч (реально я быстрее 170 не ездил)
расход: 10 лит/100км (очень грубо, но это печальная правда)

справятся ли прерывания и контроллер? А ему ещё это всё обрабатывать на SPI выплёвыывть в LCD.

Контролер я запустил на 16Mhz но он не менее устойчиво повёл себя и на 20Mhz я даже его испытывал в морозильнике и заставлял на EtherNet данные плевать :)

Добавлено: Вс авг 06, 2006 10:49:56
xelos
функции обработки прерываний скока времени выполняются? в смысле за скока тактов кварца?

Добавлено: Вс авг 06, 2006 11:02:22
xelos
при 100 км/ч скорость будет 28 м/с (примерно), или 28*6 = 168 импульсов в сек, или каждые 6 мс.

плюс к этому, пусть 5000 об/мин или 84 об/с или 84*4 = 336 имп/с или каждые 3 мс.

с расходом бензина сложнее, но пусть расчет сделан при скорости 100 км/ч. т.е. литр на 10 км, т.е. литр каждые 6 мин или 360 сек. или 360/16000 -> импульс каждые 23 мс.


все зависит какие долгие функции прерываний и что еще надо делать, но так, навскидку с кварцем 20 МГц, все это потянет.

если SPI - то как долго проц будет по SPI говорить? с какой частотой?

Добавлено: Вс авг 06, 2006 12:07:21
Гость
ну функи ещё помереем, в основном там тока увеличения счётчиков импульсов и съём значений тамеров. Всё остальное в майне. SPI планируется как можно быстрее :) посмотрим сколько 3310 потянет, x65 тянет 10Mhz, но это при длине шлейфа не более 2 см :) при больших у меня не получилось.

Добавлено: Вс авг 06, 2006 12:12:55
xelos
только аккуратней - я для расчетов взял средние величины, не максимальные. так грубо, если, то все времена, что я привел надо на 2 поделить.

Добавлено: Вс авг 06, 2006 12:15:07
xelos
Aheir писал(а):Пожалуй, не совсем в тему, но все ж вопрос:

а как лучше всего измерять при помощи МК длину импульса?
по идее аналоговый компаратор мк для измерения длины импульса. с таймером.