Страница 81 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:01:37
Magicanin
Ну насколько я знаю даже на холостом ходу обороты держатся на уровне 900 об/мин, или я не прав!
Даже на этих оборотах погрешность не будет превышать 50 об/мин, чем выше количество тем меньше погрешность. В любом случае будет точнее чем стрелочный малоинформативный тахометр.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:13:36
AVRDaemon
средние холостые от 800 до 900 это норма.
Код: Выделить всё
я посмотрел что при одном Гц у меня на жки значение 59463 = 1 ГЦ
^ сама частота
^ время между импульсами
при 100 ГЦ значение на жки 1249
следовательно можно получить точный тахометр, расчитав делитель для таймера.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:14:56
edm2007
Magicanin, я так понимаю он говорит о том что не была бы погрешность +- 100 оборотов... А так считать как угодно можно. Хоть количество импульсов хоть время между ними. Тем же таймером в режиме захвата, например...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:19:32
AVRDaemon
я считаю время между импульсами, и пытаюсь конвертировать их в частоту.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:24:47
Magicanin
Зная малоизученность вопроса со стороны господина AVRDaemon, решил предложить самый простой способ, чтоб не заморачивался с коэффициентами и конвертированием.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:26:35
edm2007
Да конечно, самый простой вариант.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:29:36
AVRDaemon
формулу не подскажете?

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:32:28
edm2007
Простите, формулу чего? Как перевести количество оборотов за 1 секунду в количество оборотов в минуту?

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:33:25
Magicanin
Единственная сложность подбор кварца, чтобы при выбранном прескаллере на выходе была секунда либо другое удобоваримое значение. Или второй вариант Timer1 с независимым часовым кварцем на 32768
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:35:41
edm2007
Не вижу проблем. Прерывание по совпадению и все. Секунда великолепно получается.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:41:04
AVRDaemon
нашел другой код, попробую адаптировать..
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:44:26
Magicanin
Тоже вариант если будет успевать прерываться до переполнения.

Можно если использовать подсчет переполнений.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:52:04
Magicanin
следовательно можно получить точный тахометр, расчитав делитель для таймера.
Погрешности в этом варианте так же не избежны.
Т.к. с приходом внешнего прерывания таймер сбросится не закончив цикл и прировняется к наименьшему предыдущему значению.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 17:52:31
AVRDaemon
Magicanin писал(а):Тоже вариант если будет успевать прерываться до переполнения.

Можно если использовать подсчет переполнений.
вот этот код и нашел)

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 18:09:50
Magicanin
Нашел тут в закромах кусок кода от ваттметра-приставки к электросчетчику с импульсным выходом.
Что к чему уже и не вспомню, может поможет.
Принцип измерения тот-же
Код: Выделить всё
...
Config Timer1 = Timer , Prescale = 1024 , Capture Edge = Falling
On Capture1 Captmr
On Timer1 Per
...
Enable Interrupts
Enable Capture1
Enable Timer1
...
Sub Style6
F = R * 65535
F = F + Capture1
F = F /15885
F = 1125 / F
Locate 1 , 1 : Lcd "ЁoїpeІ»ЗeјaЗ Е».ЕЅ.:"
Locate 2 , 1 : Lcd Round(f) ; " Baїї "
Locate 3 , 1 : Lcd "Ko»-іo ёјѕy»Дcoі:"
Locate 4 , 1 : Lcd Imp
If Imp = 200 Then
Cls
Style = 1
End If
Reset Watchdog
End Sub
Captmr:
Incr Imp
Timercounter = Capture1
Timer1 = 0
R = 0
Return
Per:
Incr R
Return
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 18:24:13
edm2007
Таймер в режиме захвата. Плюс еще подсчет переполнений таймера... А вообще по мне, так жутко неудобно наблюдать за оборотами в виде цифр. Меняются обороты и на индикаторе каша.

Тут стрелка гораздо информативнее. Ну или дуга светодиодов... А цифрами разве что холостые выставлять хорошо.

И раз уж цифры, так лучше за секунду считать, пусть шаг 60 будет, все меньше дрыганий. Впрочем, это всего лишь мое мнение...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 04, 2011 18:31:01
AVRDaemon
поставил бы море плюсов вам, т.к показали хороший код, а обороты я хотел через waitms 300 выводить на ЖКИ.
благодарствую!
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт май 05, 2011 17:09:25
AVRDaemon
хм...
измерять время между импульсами самый лучший вариант, и более точный со сравнению подчета импульсов за секунду(врет аж на 60 об мин.)
у меня тут запара с расчетом нормальной частоты:
Код: Выделить всё
Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Dim Wtime As Byte
dim rpm as single
On Capture1 Captmr
Enable Interrupts
Enable Capture1
Wtime = 100
Do
Waitms Wtime
Locate 1 , 1
Rpm = Capture1
Lcd "rpm: " ; Rpm ; " "
Loop
Captmr:
Timer1 = 0
Return
этот код считает время между импульсами, при одном герце выводит на жки 59463
при 100гц выводит 1249
(что это может быть, я незнаю, похоже на время между двумя сигналами, и в чем оно измеряется я так и не понял)
может кто нибудь подскажет формулу вычисления об/мин из этих значений?
заранее благодарен.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт май 05, 2011 17:36:02
edm2007
Называйте вещи своими именами, не врет а шаг 60 оборотов.

Оно и логично. Может стоит разобраться нормально с работой таймера по захвату? Да и вообще с работой таймера. С предделителями, со временем одно тика таймера и прочее...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт май 05, 2011 17:45:02
AVRDaemon
делать на таймере, который считает импульсы в секунду, и затем их умножать на 60, получим менее точный результат с погрешностью 60 (кэп)
я хочу сделать на различии времени между импульсами(шагами) а выложенный код и есть в режиме захвата.
помогите только понять: это миллисекунды? 1246мс? или что?