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

Обсуждаем цифровые устройства...
Ответить
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

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

Сообщение 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его класаа начальной школы...
Реклама
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

если 6 импульсов есть 1 метр, на 6 импульсов у тебя 5 временных инервалов, каждый из которых равен 1/5 = 0.2 метра. Твои 2 импульса это и есть 1 временной интервал или 20 см.
чтобы получить скорость делим расстояние на время :) т.е. скорость есть 0.2/t м/с (t должно быть в секундах). ну а преобразовать в км/ч, надеюсь сам можешь ;)
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Реклама
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Я сейчас тоже встал и решил. Оказывается надо чаще спать :) Спасибо.
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Spider, есть же ещё интеграторы.... Конденсатор лепишь, и измеряешь на нем напряжение. Получится плавненько. И мерить нужно будет не импульсы, а напряжение на конденсаторе. Так работает большинство тахометров.
Today fine night...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

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

Куда лучше завести этот датчик для съёма значений. На таймер или на прерывание (последних свободных уже нет :( ). И как лучше снимать значения для анализа. К примеру стоит машина с заведённым двигателем. И как у неё расход? делить на ноль незя, расход есть а пробега нет. В таком случае выводить расход в час?
В общем как лучше сделать посоветуйте?
Реклама
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Скажу честно я в автомобилях не особо понимаю . Но раз двигатель работает он же чёто крутит . Отдуда и бери с помощью таха и на ацп. Там же генератор вроде есть может с него напругу брать.
Настоящий кот всегда либо голоден,
либо невыспался ...
Реклама
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Как бы вопрос стоял не о том от куда напругу брать, а о том как лучше реализовать приём ипульсов и расчитывать полученные данные
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Пожалуй, не совсем в тему, но все ж вопрос:

а как лучше всего измерять при помощи МК длину импульса?
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Я это делаю по прерыванию и смотрю временной интервал между срабатываниями.
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

Так почему же счётчиком тоже делать не можешь устанавливай прерывание по совпадению режим CTC и ставь в регистр сравнения 1.
Буит тоже самое. Или нет.
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Прерывание жалко :) Для другого сгодилось бы
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

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

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

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

Контролер я запустил на 16Mhz но он не менее устойчиво повёл себя и на 20Mhz я даже его испытывал в морозильнике и заставлял на EtherNet данные плевать :)
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

функции обработки прерываний скока времени выполняются? в смысле за скока тактов кварца?
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

при 100 км/ч скорость будет 28 м/с (примерно), или 28*6 = 168 импульсов в сек, или каждые 6 мс.

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

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


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

если SPI - то как долго проц будет по SPI говорить? с какой частотой?
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Гость

Сообщение Гость »

ну функи ещё помереем, в основном там тока увеличения счётчиков импульсов и съём значений тамеров. Всё остальное в майне. SPI планируется как можно быстрее :) посмотрим сколько 3310 потянет, x65 тянет 10Mhz, но это при длине шлейфа не более 2 см :) при больших у меня не получилось.
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

только аккуратней - я для расчетов взял средние величины, не максимальные. так грубо, если, то все времена, что я привел надо на 2 поделить.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

Aheir писал(а):Пожалуй, не совсем в тему, но все ж вопрос:

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

Вернуться в «Цифровая техника»