AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
07.08.2016, 17:14
|
#111
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
1 кгц с осцила давал показывало но импульсы были треугольные
|
У автора там звездочки, а энто значит - подбор.
0.33е-6 * 51е3 = 18е-3. другими словами, 18мс тау цепи. Не зная амплитуды входных импульсов трудно делать прогнозы. Но можно уменьиить емкость в восемнадцать раз смело. 0.015...0.022
Резюк лучше не трогать.
Сообщение от miwutka
|
импульсы были треугольные
|
А амплитуда? Причем, с ослика сигнал - вольта четыре, а на катушке минимум 12 и до четырехсот может быть. Тоже не надо забивать на это.
Лучше, конечно, осликом смотреть в натуре - гадать не надо будет.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
07.08.2016, 19:12
|
#112
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Ну вот что получилось. Это без конденсатора. Его поеду в гараж с осликом и буду всё смотреть что да как..... как частотомер работает отлично. Менял частоту шима - все четко меряет. А как тахометр не хочет )) В запасе еще алгоритм подавать импульсы на пин T1 то есть тактировать сам таймер. А по второму таймеру делать измерения. Раз у меня по прерыванию от INT0 работало само хорошо, то может на Т1 будет отлично работать..... Незнаю. На ютубе увидел как автор спидометр делал в общих чертах. Он один таймер тактировал так, а с помощью другого делал вычисления....
Но сначала в гараже теперь посмотрю что да как..... За окном DS18b20 говорит 34.8 градусов в тени.... Може сегодня поеду..... Задолбался уже, вроде так просто, а хрен там ))
кстати автор за такую панель 100 $ просит ..... Хочу сделать себе...
|
|
|
Сказали "Спасибо" miwutka
|
|
|
08.08.2016, 21:30
|
#113
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
МВА, ну да, я ж умножаю на 0.001 полученные обороты чтобы вывести на светодиоды. 30-ый светодиод это 3000 оборотов. Да, получается 30 000 об. Останется только проинтегрировать чтобы не очень быстро менялись показания и всё. Вечером проверю.
|
Всем привет.
miwutka, все пытаюсь догнать твой ответ и не получается. Если у тебя импульсы с катушки, то получается два импульса на оборот(с катушки при 3000 оборотов будет приходить частота 100 Гц. Функция подсчета частоты дает точный результат, если у тебя 3000 об/мин, то в переменной V будет число 3000 и никак не 30 000.
PHP код:
|
if (flag) { flag = 0; V=Math(N, T_clc_time, N_V); speed_temp+=V; i_speed++; if (i_speed == 10) { i_speed=0; speed_sr=speed_temp*0.1; speed_temp=0; } LED_bar(speed_sr);
|
здесь ты этую переменную усредняешь, если у тебя было 10 значений по 3000, то 3000 и осталось и передаешь в функцию LED_bar(speed_sr);, а дальше...:
PHP код:
|
void LED_bar(float rpm) { rpm=speed_sr*0.001; if ((rpm›rpm_old+1)||(rpm‹rpm_old-1)) { if ((rpm›=0)&&(rpm‹=2)) tah_LED=1; else tah_LED=rpm; // /1000;
|
среднее значение скорости делится на 1000 и уже число 3, а не 3000, идет дальше в расчет
Дальше я не знаю, что ты думал, так как у тебя куча переменных инициализирована пачками и никакого описания, а долго думать влом. Получается при 3000 об/мин в rpm должно быть 3?
И еще. У тебя переменная rpm инициализирована 2 раза. Одина раз здесь:
PHP код:
|
int rpm,rpm_temp,timer2,rpm_old;
|
и второй раз в описании фуркции:
PHP код:
|
void LED_bar(float rpm) { rpm=speed_sr*0.001;.....
|
хотя это не ошибка, просто одна переменная получается глобальная типа int (нигде не используется), а вторая локальная, типа float, и используется внутри функции.
Во внутрь функции передается через rpm переменная speed_sr. Если ты так будешь писать функции, то, к примеру данную функцию ты не сможешь использовать с другими переменными. Допустим эта функция может быть и не универсальная, но если ты так будешь писать в универсальной, то если ты используешь, например переменную Х, он заменится переменной speed_sr. надо было писать
rpm *= 0.001;
P.S. извини что покритиковал, если я неправ и ошибаюсь, пусть мастадонты программирования меня поправят.
Последний раз редактировалось МВА; 08.08.2016 в 22:05.
|
|
|
|
09.08.2016, 21:09
|
#114
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
МВА, спасибо за критику. Я хочу в коде использовать больше указателей. Так вроде удобнее и правильнее, но я их не доконца понимаю. У меня 72 светодиода. 1 светодиод равен 100 оборотов. Чтобы отобразить 3000(по факту 30000) оборотов я в функции LED_bar значение оборотов умножаю на 0.001 и получаю число 30. Но както по факту получается что измеряется 30 000 оборотов, умножаю на 0.001 и засвечиваю 30 штук светодиодов подряд. С осциллографа 1 кГц подаю сигнал. Умножаю значение rpm на 0.001 и засвечивается 10 светодиодов. Вот я и понял что оно пишет не 1000 в rpm а 10 000.
У меня раньше почти хорошо работало ан ИНТ0 ножке. Я считал импульсы, и потом их обрабатывал. Думаю для тахометра наверно правильнее считать импульсы за единицу времени, а не период. Период я вижу идеально подходит для частотомера..... Любой шим на стм32 делал и атмега меряет идеально. Думаю или импульсы подавать на ИНТ0 ногу(и плюсовать в прерывании переменную) или на ногу Т1 чтобы аппаратно считать. А вторым таймером делать накопление импульсов в другую переменную(интегрирование такое получается) и вычислять. Например раньше у меня обновление индикации было 3-4 раза в секунду. Чуток запаздывало заметно.... Сейчас думаю сделать для пробы 10 раз в секунду или 5.
|
|
|
|
09.08.2016, 21:10
|
#115
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
здесь ты этую переменную усредняешь
|
а как сделать не усреднение, а интегрирование...?
|
|
|
|
09.08.2016, 21:59
|
#116
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от miwutka
|
а как сделать не усреднение, а интегрирование...?
|
Я не знаю, что ты вкладываешь в это понятие. Счититать интегралы? Это не то. Для изменяющихся величин в аналоговой электронике интегрирующая RC цепь не дает резко поднятся скачку напряжения задерживая нарастание во времени. В принципе, нахождение среднего арифметического выполняет ту же функцию. Даже если есть небольшие колебания (неравномерности) следования импульсов, но те инерции не дадут им сильно менять свои значения, хотя люфты в трамплере, центробежный регулятор могут и внести разбежности. В общем, я не знаю, лучшего эффекта сделать более плавную работу, как усреднение. Может только с коэффициентом по экспериментировать можно. Я не понял, как у тебя управляются диоды. функция LED_bar() мне больше напоминает передатчик с трехпроводным интерфейсом, а что с приемной стороны я не понимаю. Если бы ты описал, например в ворде, и выложил, чтобы можно было понять. как это работает. А так, гадать на кофейной гуще, только мозг себе взрывать.
Последний раз редактировалось МВА; 09.08.2016 в 22:03.
|
|
|
|
09.08.2016, 22:56
|
#117
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Если бы ты описал
|
Я думаю так понятнее будет:
Есть 9 регистров сдвига. Все они подключены последовательно, ну 14 нога это данные, а с 9-ой ноги уходят данные на следующий регистр на 14-ую ногу. Так подключены 9 регистров. Выходит 72 светодиода. На регистрах подключено CLK, DATA, LACTH. Ну вот и все. Работает оно в статическом режиме. Это плата года полтора назад была сделана. Как сделаю тахометр нормальный переведу на динамику и регистрами по SPI буду управлять.....
PS Ну а усреднение значит оставлю такое. Я для RMS вольтметра своего также делал усреднение. Там четко сглаживает всякие всплески тока..... Со сглаживанием решил.
|
|
|
|
10.08.2016, 08:11
|
#118
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Спидометр атмега 8
Всем привет.
miwutka, не даром говорят "Утро вечера мудренее". Если у тебя нормально работает от ослика, значит схема рабочая. Ты при испытании подаешь частоту эквивалентной 30000 об/мин. а на машине в 10 раз ниже. Если у тебя простая система зажигания, а не тиристорная, (без датчика Холла) то тот конденсатор будет работать, раз он работал даже при 1 кГц. Просто пропорционально дели не на 1000, а на100. А если у тебя зажигание тиристорное, то там короткая длительность импульса и конденсатор лучше подбирать начиная от 100 nf.
Как раз получится, что 100 об/мин : 100 = 1 светодиод. ; 1000/100=10 св. 3000/100=30 св. и т.д.
Цитата:
|
Как сделаю тахометр нормальный переведу на динамику и регистрами по SPI буду управлять.....
|
А смысл? Перед регистрами ставить еще один МК, а потом опять эти же сигналы генерировать на месте?
Последний раз редактировалось МВА; 10.08.2016 в 08:43.
|
|
|
|
10.08.2016, 10:30
|
#119
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Спидометр атмега 8
Сообщение от МВА
|
Если у тебя простая система зажигания, а не тиристорная, (без датчика Холла)
|
Ну в жигуле какое, я знаю что оно бесконтактное там и всё... За кондер - а я и не подумал что нужно было делитель уменьшить......
|
|
|
|
11.08.2016, 01:00
|
#120
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 735
Сказал спасибо: 363
Сказали Спасибо 808 раз(а) в 380 сообщении(ях)
|
Re: Спидометр атмега 8
Жесть.......
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:13.
|
|