Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Тахометр, Спидометр - одометр (Нужна помощь по программе для спидометра)
Тахометр, Спидометр - одометр
ADMIN Дата: Пт, 03.06.2011, 10:11  |                                                                                                                Сообщение # 16
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Слева на главной странице есть ссылка в меню сайта - Каталог статей. Или перейди по этой ссылке. Там - добавить статью. Остальное - то же самое.
xppirat Дата: Пт, 03.06.2011, 13:57  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 23
Репутация: 0   ±
Замечания:   ±
На сайте с 20.03.2011

Статус: Offline

Все, статья перемещена - http://www.picbasic.ru/publ/spidometr_odometr_i_takhometr/4-1-0-88
Diam Дата: Пн, 06.06.2011, 21:07  |                                                                                                                Сообщение # 18
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 31.05.2011

Статус: Offline

Хотелось, чтобы в программе тахометр появились комментарии. Ну, раз уж для народа выложили статью.
Строка: Tcon Con 245 - откуда родилась такая константа?
Если честно, врет тахометр безбожно biggrin
Прибор красивый получился - тут слов нет. ЗдОрово.


С уважением Александр
xppirat Дата: Вт, 07.06.2011, 11:25  |                                                                                                                Сообщение # 19
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 23
Репутация: 0   ±
Замечания:   ±
На сайте с 20.03.2011

Статус: Offline

Quote (Diam)
Tcon Con 245 - откуда родилась такая константа?

Константа родилась из Протеуса. т. к. калиброванного источника сигнала небыло пришлось поверить Протеусу.
А подсчитывать задержки на выполнение других команд было лень happy

Сообщение отредактировал xppirat - Вт, 07.06.2011, 11:26
Diam Дата: Вт, 07.06.2011, 17:23  |                                                                                                                Сообщение # 20
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 31.05.2011

Статус: Offline

Понятно. Только такие приборы маленько по другому называются - типа показометр. happy Без обид конечно.
А, это - RPM = Imp * 50 / 10. Ну 10 понятно - прячем показания 4 разряда, а 50 - почему итог переменной умножаем на 50 секунд?
В общем есть много почему.
Не подумай, что я докапываюсь - просто тоже необходим тахометр, но не на авто, а на токарный станок. Хотел взять за основу алгоритм твоей
программы. Сам то я с Бейсиком 3 дня как знаком - пока слабо самому что нибудь путнее написать.
Хотел именно на 84 построить (штук 10 надо куда то пристраивать).

С уважением, извини если обидел


С уважением Александр
xppirat Дата: Ср, 08.06.2011, 00:55  |                                                                                                                Сообщение # 21
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 23
Репутация: 0   ±
Замечания:   ±
На сайте с 20.03.2011

Статус: Offline

Quote (Diam)
А, это - RPM = Imp * 50 / 10. Ну 10 понятно - прячем показания 4 разряда, а 50 - почему итог переменной умножаем на 50 секунд?

Конечно без обид, прямо указывая человеку на его ошибки – это путь к исправлению этих ошибок.
50 это не секунды, а некая величина скажем так.

Расчет ведем так:
1 оборот двигателя = 2 импульсам датчика
Интервал времени измерения импульсов = 600 миллисекунд
При частоте вращения двигателя = 50 оборотов/минута = 100 импульсов/60000 миллисекунд
Интервал измерения в 600 миллисекунд = 100 импульсов делим на 60000 миллисекунд и умножаем на 600 миллисекунд = 1 импульс
1 импульс умножаем на 50 = 50 оборотов/ минута

Точность тахометра в этом случае = 50оборотам/ минута.
Ну а почему делим на 10 вы уже сами ответили. Вот по тому и такая формула.
ЯНДЕКС Дата: 08.06.2011
DAlexV Дата: Ср, 08.06.2011, 23:06  |                                                                                                                Сообщение # 22
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Для повышения точности измерений советую прочитать эту статейку. В свое время очень выручила когда бился с измерением оборотов двигателя. Успехов wink

Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Diam Дата: Чт, 09.06.2011, 17:18  |                                                                                                                Сообщение # 23
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 31.05.2011

Статус: Offline

Все сдаюсь cry
Ребята, нужна помощь. Не могу перевести PortA 4 PIC16F84 в режим счета. В даташите написано перевести регистр OPTION 5 бит в 1 и все.
TrisA тоже перевел на вход. Или еще какие то тонкости в Бейсик Про есть? Если не затруднит какой нибудь примерчик.

А статья интересная, но мне бы чего нибудь попроще победить. Спасибо


С уважением Александр
Сообщение отредактировал Diam - Чт, 09.06.2011, 17:20
Matrix252005 Дата: Чт, 09.06.2011, 17:55  |                                                                                                                Сообщение # 24
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток.
Diam, Вы не забыли, что PortA.4 - это вход с ОК (Открытым Коллектором) !!!! Его нужно через резистор посадить на + Uп.


THE TRUTH IS OUT THERE.

С уважением, Николай.
Diam Дата: Чт, 09.06.2011, 19:04  |                                                                                                                Сообщение # 25
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 31.05.2011

Статус: Offline

Matrix252005, когда он PORTA4 работает на выход, тогда надо подтягивать. На вход не надо

Добавлено (09.06.2011, 19.04.04)
---------------------------------------------
Елки палки как поплачешься в жилетку, так ошибки свои находишь cry
При счете PortA4 флаг INTF не поднимается, а я как лох два дня пытаюсь его поднять.
Работает только флаг переполнения TMR0.

Или я не прав?


С уважением Александр
DAlexV Дата: Чт, 09.06.2011, 23:27  |                                                                                                                Сообщение # 26
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (Diam)
INTF не поднимается

Данному флагу соответствует нога RB0. RA4 для источника прерывания не подойдет.
Quote (Diam)
Или еще какие то тонкости в Бейсик Про есть?

У меня были проблемы с прерываниями(особенно от нескольких источников и работе с большими числами). Сменил язык программирования и проблемы исчезли.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Diam Дата: Пт, 10.06.2011, 15:34  |                                                                                                                Сообщение # 27
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 31.05.2011

Статус: Offline

Quote (DAlexV)
RA4 для источника прерывания не подойдет.


Не понял? Совсем не пойдет?


С уважением Александр
DAlexV Дата: Пт, 10.06.2011, 23:17  |                                                                                                                Сообщение # 28
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (Diam)
Не понял? Совсем не пойдет?

RA4 может выступать в качестве счета импульсов. Но прерывание будет формироваться только лишь по переполнению TMR0(255 имп.) Либо придется вводить еще один таймер(который в 84 отсутствует) который будет формировать равномерные отрезки времени и с помощью него снимать набежавшие в TMR0 импульсы.
Советую еще раз перечитать статью. Я врубился то же не сразу, попробую объяснить простыми словами.
Для этого нам понадобиться:
Источник прерывания(нога проца способная вызвать прерывание)
Таймер для отсчета временного промежутка между прерываниями(TMR0 в нашем случае для счета времени между импульсами)

Прерывание от RBIF настраиваем на фронт или спад(зависит от датчика используемого тахометре)
Выставляем в TMR0 нужный для нас коэффициент предделителя(1:1, 1:2, 1:4 и т.д.) Чем он меньше тем выше точность измерения, но тем с более большими числами при расчетах нам придется оперировать.
Так же при переполнении TMR0 кол-во переполнений записываем в некую переменную( T0OverTMP например)
При поступлении прерывания от RBIF снимаем текущее значение таймера(таймер насчитал например значение $2F и T0OverTMP=$03)
эти переменные мы запоминаем( T0Def=TMR0, T0Over= T0OverTMP), после чего сбрасываем на 0 значение TMR0 и T0OverTMP(не забывая сбросить флаг прерывания от RBIF)
Теперь пока таймер начал новый отсчет можно заняться вычислением частоты.
Частота кварца 4 MHZ
предделитель настроен в соотношении 1:16(генератор используем внутренний Fosc/4) каждое приращение таймера будет происходить через 16,00 µs(0,000016 s)
Частота=1/((T0Over*256+T0Def)*0,000016)
Частота=1/(($03*256+$2F)*0,000016)
Частота=1/(($03*256+$2F)*0,000016)
Частота=1/(815*0,000016)
Частота=76.6871Гц(или имп. в сек.) осталось только это все умножить на 60 что бы получить об/мин
итого точно 4601,2 об/мин.

Формулу расчета и количество нулей после запятой можно изменить немного переработав формулу расчета. Так же советую не заниматься расчетами в прерывании( занимает кучу времени из за чего может подвисать в прерывании)

Успехов wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
bestsergey Дата: Чт, 06.12.2012, 09:04  |                                                                                                                Сообщение # 29
Группа: Проверенные
Ранг:  Новенький
Сообщений: 1
Репутация: 0   ±
Замечания:   ±
На сайте с 04.12.2012

Статус: Offline

Доброе утро.Очень понравилась схема.Хочу адаптировать схему одометра+спидометра под мопед.Где в прошивке нужно внести изменения по датчику,точнее количество импульсов для спидометра на оборот колеса?
Спасибо!
cyg Дата: Сб, 24.05.2014, 17:24  |                                                                                                                Сообщение # 30
Группа: Проверенные
Ранг:  Новенький
Сообщений: 7
Репутация: 0   ±
Замечания:   ±
На сайте с 24.05.2014

Статус: Offline

Sir / Madam: Здравствуйте! 
Пожалуйста, пришлите файл "PBPPIC14.LIB" для меня? Спасибо!
Форум Picbasic.ru » Программирование МК » PicBasicPro » Тахометр, Спидометр - одометр (Нужна помощь по программе для спидометра)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: