AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.07.2016, 09:22
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
Нужно было считать импульсы за 1 секунду и потом выводить обороты.
|
Считай за четверть секунды и выводи полученный результат умноженный на 4.
|
|
|
|
22.07.2016, 09:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от Signalshik2
|
Я прикинул у меня получилось длина окружности колеса примерно 3,14м(Пи кстати получилось). Как тут увязать 6 импульсов, я не понял? Кстати, скажите мне еще конструкцию датчика. Я полагал, что это геркон приклееный к раме, а на колесе приклеенный магнит. Так?
|
У меня конечно опыта мало, но вот такое я никак не мог выдумать))) Зная что в природе есть датчик скорости у автомобилей ))))) И вот на это я и сказал - не нужно выдумывать. Человек это написал, и на это все начали фантазировать как бабки у подъезда )). Вы смотрю воспринимаете критику оооочень критично. А это ведь просто общение.
|
|
|
|
22.07.2016, 09:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Someone, Я прикинул, что при 600 об/мин получается 10 имп/сек. За 0.25 с получается всеравно запаздывание маленькое но заметное. Обороты повышаются резко а индикация запаздывает немного.
|
|
|
|
22.07.2016, 10:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
Обороты повышаются резко а индикация запаздывает немного
|
А потому что работает усредняющий фильтр. Чтоб показания не дёргались.
Так нужны обороты или скорость?
Нет времени (за вас) считать, на сколько изменяется скорость автомобиля за секунду (теоретический предел: мощность 100л.с. ускоряет массу 1000кг ) так быстро, что заметно запаздывание?
Тогда берём сигнал с датчика коленвала (там запаздывание порядка 1/50 оборота ![Прикольно](images/smilies/icon_wink3.gif) ) и сигнал датчика с выхода коробки. По соотношению одной частоты к другой вычисляем включённую передачу, по датчику коленвала - моментальную скорость. (ещё надо посчитать ускорение и внести поправку на смятие резины колёс и упругости кузова ![Прикольно](images/smilies/icon_wink3.gif) )
Последний раз редактировалось makakus; 22.07.2016 в 10:22.
|
|
|
|
22.07.2016, 11:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,612 раз(а) в 3,604 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
За 0.25 с получается всеравно запаздывание маленькое но заметное. Обороты повышаются резко а индикация запаздывает немного.
|
У стрелочных спидометров и тахометров запаздывание еще большее, и это нормально воспринимается. Зато стрелка двигается плавно, не дергается туда-сюда.
Зачем и кому нужна мгновенная индикация скорости? Даже если ее реализовать, то все испортят мозги - ведь тогда они не будут успевать обработать полученную информацию со скоростью ее поступления.
|
|
|
Сказали "Спасибо" Alex9797
|
|
|
22.07.2016, 12:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
makakus, скорость я сделал. Теперь нужны обороты.
Подключил сигнал как тут http://cxem.net/avto/electronics/images/4-150-1.png
PHP код:
|
ISR(TIMER1_OVF_vect)
{
x_speed++;
x=0;
y=0;
z=0;
t=0;
speed=0;
if (x_speed › 1) {speed_sr=0;x_speed=0;}
}
ISR(TIMER1_CAPT_vect)
{
x_speed=0;
//count_imp++;
if(x==0) //в первый заход считываем таймер в переменную х
{
x=ICR1;
}
else //во второй заход считываем в y, находим разницу
{
y=ICR1;
z=(y-x);
x=y;
t=125000/z;
speed=t*0.1;//измеренная частота сигнала делится на 10
speed_temp+=speed;
i_speed++;
if (i_speed == 20) {
i_speed=0;
speed_sr=speed_temp*0.05; speed_temp=0;
}
}
}
|
Вот так сейас всё обрабатывается. speed_sr выводится на индикацию....
|
|
|
|
22.07.2016, 13:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Сделал тахометр. Спасибо. Там значение с регистра захвата нужно было по другому обрабатывать. не так как на спидометре....
осталось немного отфильтровать показания и все...
Последний раз редактировалось miwutka; 22.07.2016 в 14:10.
|
|
|
|
28.07.2016, 10:41
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
Обороты повышаются резко а индикация запаздывает немного.
|
Ну да, четверть секунды. Дели на 5. На 6. Да хоть на 10. Сомневаюсь, что водилы только и смотрят, а сколько же там оборотов, да в течении четверти секунды реагируют на изменения к примеру в 10 оборотов. Так что помимо возможностей (нынешняя электроника позволяет делать очень многое) надо учитывать и целесообразность.
|
|
|
|
28.07.2016, 10:45
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Спидометр атмега 8
ЗЫ: Кстати, измеряя за часть секунды, и умножая, ты неявно закладываешь фильтр, гистерезис, кратный делителю (он же множитель). Например деля и умножая на 4, очевидно, что не получишь 102 оборота например. Получишь либо 100 (25 импульсов за четверть секунды) либо 104 (26 импульсов за четверть секунды).
|
|
|
|
28.07.2016, 10:51
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Спидометр атмега 8
ЗЫЫ: И кстати, делитель-множитель лучше брать кратный степени два. Тогда компилятор деление и умножение заменит простыми сдвигами, что положительно скажется и на объёме кода, и на скорости его выполнения. Сиё утверждение справедливо для любой архитектуры, не имеющей встроенных аппаратных умножителей и делителей.
|
|
|
Сказали "Спасибо" Someone
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:35.
|
|