Добавлено спустя 3 часа 21 минуту 15 секунд:
Вот...
Re: Тахометр на ATtiny2313
Posted: 04 Oct 2014 12:54
by Ashatshem
Anderer wrote:hardlock, большое спасибо за устройство. Сегодня собрал и проверил от генератора. Работает без глюков Живьем, к сожалению пока проверить не могу, как назло снова ударили морозы
Видео работы: http://youtu.be/V-FDOQRnYO4
А исходник с эффектом при запуске есть у кого? А то у меня плата полностью своя, распиновка вообще другая...
Добавлено спустя 1 час 35 минут 51 секунду:
Уже сам нашёл, как переделать тоже.
Re: Тахометр на ATtiny2313
Posted: 06 Oct 2014 12:42
by hardlock
beloff12 wrote:Доброе время суток. Наткнулся на Ваш проект по тахометру. У меня вопрос, если Вас не затруднит. На схеме указан контроллер AT90S2313, которых у меня имеется несколько штук. Я знаю, что это аналог ATtiny2313, но полностью ли совместима Ваша прошивка для обоих этих контроллеров, а главное для AT90 фьюзбиты выставляются также, как Вы указали в статье, или есть нюансы?
Спасибо за ответ.
1. Прочитайте, пожалуйста объявление вверху страницы и дальше вопросы задавайте в теме.
2. Компилировалась поод тиню, работоспособность на АТ90 не гарантируется, но теоретически 98% вероятности. Можно и перекомпилировать, указав другой контроллер
3. Фьюзов у АТ90 нету...
Re: Тахометр на ATtiny2313
Posted: 06 Oct 2014 20:27
by beloff12
Я прошу прощения, первый раз в форуме, не прочитал шапку. С AT90 никогда не сталкивался, потому задал вопрос о фьюзах. Дело в том, что я далек от программирования и если Вам не сложно, перекомпилируйте, пожалуйста, под AT90, а выложите либо здесь, либо скините мне в личку.
Спасибо!
Re: Тахометр на ATtiny2313
Posted: 06 Oct 2014 21:58
by Ashatshem
Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 08:46
by propell_ant
Ashatshem wrote:Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
Да. Но зачем?
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 09:17
by hardlock
beloff12 wrote: если Вам не сложно, перекомпилируйте, пожалуйста, под AT90
мне не сложно, но нету возможности.
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 10:39
by Ashatshem
propell_ant wrote:Да. Но зачем?
Увеличить скорость обработки, уменьшить запаздывание отображения.
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 15:37
by beloff12
Уважаемые форумчане, огромная просьба к тем, кто может перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI. Помогите, пожалуйста.
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 18:07
by IYra
beloff12 wrote:перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI.
Вот выкладываю архив. Там подкорректированный проект и два хекса для ОА и ОС. Кварц - 4 Мгц.
в Протеусе вроде работает
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 18:51
by beloff12
Огромное спасибо, IYra. Попробую прошить. Еще один вопрос. Я впервые сталкиваюсь с программированием АТ90. В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 19:36
by IYra
beloff12 wrote: В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?
Из Code Vision не прошивал. Пользуюсь программатором UNIPROF. Поэтому подсказать не смогу
Re: Тахометр на ATtiny2313
Posted: 07 Oct 2014 20:07
by beloff12
У меня программатор под USB, а насколько я помню, UNIPROF работает только с LPT и COM портами.
Re: Тахометр на ATtiny2313
Posted: 31 Oct 2014 00:31
by this4me
Добрый день. Переделываю Ваш исходник на спидометр. Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
Может ли прошивка обеспечить стабильность измерений малых частот (до 200 Гц) или просто у меня нестабильный источник?
Либо что необходимо изменить в исходниках?
Спс!
Re: Тахометр на ATtiny2313
Posted: 31 Oct 2014 09:28
by IYra
this4me wrote: Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
или просто у меня нестабильный источник?
А если попробовать подключить к 220в/50гц через понижающий трансформатор
Re: Тахометр на ATtiny2313
Posted: 31 Oct 2014 15:00
by this4me
Трансформатора нет под руками. Вечером возьму осциллограф и буду точно измерять частоту от звуковой платы. (раньше баловался ардуиной и там частотомер стабильно работал, но был другой комп)
Меня интересует вопрос - сможет ли обработчик прерывания interrupt [EXT_INT0] void RPM_PULSE_interrupt(void) точно и стабильно измерять частоту от 1 Гц до 300-400 Гц?
И если есть возможность построчно прокомментировать код, которым можно повлиять на измерение для моего случая
interrupt [EXT_INT0] void RPM_PULSE_interrupt(void)
{
long lTmp;
Тогда в Протеусе. В коде все вроде правильно. Надо только еще округление до 10 убрать.
В приложении подправленный проект и протеус.
Погонял немного. Меряет частоту нормально
//wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;
еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет
//wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;
еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
Пока я занимался блоком и прошивкой, то мой товарищ делал задающий шкив на кардан. Сделал 7 зубьев для датчика Частота датчика поднялась в 7 раз. Увеличил количество пропусков для отображения - показания стали более плавные. - в принципе работает.
Что изменил я - Убрал из (((((lTmp = (62500L * 60L * (long)wFlashCnt);)))) 60L ( а что изначает буква L?), убрал делитель lTmp /= byBladeCnt; и в конце умножил на нужный коэффициент 0.88. - из оборотов/мин получил скорость км/час. - как то коряво.
Если быть правильным то для измерения скорости нужно зная количество (62500L * (long)wFlashCnt); импульсов разделить на время ((wTimerOvfCnt << 8) + TCNT0); и умножить на дистанцию колеса между импульсами датчика? (потом преобразовать в км/час)
ЗЫ А что такое за число присвоено #define NO_PULSES_INTERVAL 500UL Что за буквы?
Re: Тахометр на ATtiny2313
Posted: 01 Nov 2014 06:34
by hardlock
L - тип long, UK - unsigned long. Это надо, чтобы компилятор не обрезад результат до более мелкого типа.
Здравствуйте! Долго не отвечал - был в командировке.
Спидометр поставил. С моим вариантом куска кода. Скорость меряет отлично - десятые ( с некоторой кратностью), благодаря большому периоду обновления (30) значения не скачут, но и оперативно обновляется.
Схему и исходник использовал с соседней темы тахометра с светодиодами. Сделал на каждый светодиод по 1 км/час. Плату переразвёл для корпуса z-29. Могу скинуть плату. Фотографий не делал.
Большое спасибо всем причастным!
ПыСы hardlock, так как своё устройство пошло в коммерцию то считаю справедливым поддержать проект. Тебе будет приятно, и мне ещё обращаться за помощью. Куда отблагодарить?
Re: Тахометр на ATtiny2313
Posted: 09 Nov 2014 19:17
by kishy
Собрал тахометр с авторской прошивкой, подключил ( клема К - вывод конца первичной обмотки катушки Ваз 2109, поправте если нужно не туда ), на холостых показывает 850-950, при этом могут проскакивать и "левые значения", при увеличении оборотов двигателя показания падают до 200 - 300. Подскажите в чем искать причину, и что сделать для более устойчивых показаний.
Как переделать прошивку автора 7-clown для общего катода и 1 катушки?
7-clown » 22 сен 2014 17:32
Разрешите предложить свой вариант прошивки для данного устройства. Все та же прошивка, но просто я добавил несколько строк помехоустойчивости, путем замера 3 импульсов подряд и проверкой их корректности. Также, ниже 600 оборотов показывает прочерки, сигнализируя о не работающем двигателе. Обновление дисплея сделал не по таймеру, а по условию разности 2 последовательных замеров и при отличии больше чем на 50 - обновлени
Re: Тахометр на ATtiny2313
Posted: 26 Nov 2014 22:07
by Wanderer123
Здравствуйте! Собрал тахометр, прошил на общий К, выставил фьюзы вроде все правильно, но при включении на одну секунду горит 0 а потом начинает показывать странные значения, вот видео
Re: Тахометр на ATtiny2313
Posted: 27 Nov 2014 08:03
by hardlock
Wanderer123, ничего подобного в моей прошивке быть не может пробуйте прошить ещё раз, другую прошивку...