Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Тахометр на ATtiny2313

Здесь только проекты на ATtiny

Re: Тахометр на ATtiny2313

Сообщение 7-clown » 26 сен 2014 23:12

Прототип...

Добавлено спустя 3 часа 21 минуту 15 секунд:
Вот...
Вложения
Аватара пользователя
7-clown
Пробегал мимо
 
Сообщения: 9
Зарегистрирован: 15 дек 2013 21:33
Откуда: СТР

Re: Тахометр на ATtiny2313

Сообщение Ashatshem » 04 окт 2014 11:18

Anderer писал(а):hardlock, большое спасибо за устройство. Сегодня собрал и проверил от генератора. Работает без глюков :) Живьем, к сожалению пока проверить не могу, как назло снова ударили морозы :(
Видео работы:
http://youtu.be/V-FDOQRnYO4

А исходник с эффектом при запуске есть у кого? А то у меня плата полностью своя, распиновка вообще другая...

Добавлено спустя 1 час 35 минут 51 секунду:
Уже сам нашёл, как переделать тоже.
Ashatshem
Частенько бываю
 
Сообщения: 30
Зарегистрирован: 07 фев 2013 10:38

Re: Тахометр на ATtiny2313

Сообщение hardlock » 06 окт 2014 12:42

beloff12 писал(а):Доброе время суток. Наткнулся на Ваш проект по тахометру. У меня вопрос, если Вас не затруднит. На схеме указан контроллер AT90S2313, которых у меня имеется несколько штук. Я знаю, что это аналог ATtiny2313, но полностью ли совместима Ваша прошивка для обоих этих контроллеров, а главное для AT90 фьюзбиты выставляются также, как Вы указали в статье, или есть нюансы?
Спасибо за ответ.

1. Прочитайте, пожалуйста объявление вверху страницы и дальше вопросы задавайте в теме.
2. Компилировалась поод тиню, работоспособность на АТ90 не гарантируется, но теоретически 98% вероятности. Можно и перекомпилировать, указав другой контроллер
3. Фьюзов у АТ90 нету...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Тахометр на ATtiny2313

Сообщение beloff12 » 06 окт 2014 20:27

Я прошу прощения, первый раз в форуме, не прочитал шапку. С AT90 никогда не сталкивался, потому задал вопрос о фьюзах. Дело в том, что я далек от программирования и если Вам не сложно, перекомпилируйте, пожалуйста, под AT90, а выложите либо здесь, либо скините мне в личку.
Спасибо!
beloff12
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 06 окт 2014 10:27

Re: Тахометр на ATtiny2313

Сообщение Ashatshem » 06 окт 2014 21:58

Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
Ashatshem
Частенько бываю
 
Сообщения: 30
Зарегистрирован: 07 фев 2013 10:38

Re: Тахометр на ATtiny2313

Сообщение propell_ant » 07 окт 2014 08:46

Ashatshem писал(а):Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
Да. Но зачем?
propell_ant
Живу тут
 
Сообщения: 276
Зарегистрирован: 03 июн 2014 09:22

Re: Тахометр на ATtiny2313

Сообщение hardlock » 07 окт 2014 09:17

beloff12 писал(а): если Вам не сложно, перекомпилируйте, пожалуйста, под AT90

мне не сложно, но нету возможности.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Тахометр на ATtiny2313

Сообщение Ashatshem » 07 окт 2014 10:39

propell_ant писал(а):Да. Но зачем?

Увеличить скорость обработки, уменьшить запаздывание отображения.
Ashatshem
Частенько бываю
 
Сообщения: 30
Зарегистрирован: 07 фев 2013 10:38

Re: Тахометр на ATtiny2313

Сообщение beloff12 » 07 окт 2014 15:37

Уважаемые форумчане, огромная просьба к тем, кто может перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI. Помогите, пожалуйста.
beloff12
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 06 окт 2014 10:27

Re: Тахометр на ATtiny2313

Сообщение IYra » 07 окт 2014 18:07

beloff12 писал(а):перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI.

Вот выкладываю архив. Там подкорректированный проект и два хекса для ОА и ОС. Кварц - 4 Мгц.
в Протеусе вроде работает
Вложения
Тахометр_AT90.rar
(9.13 КБ) Скачиваний: 124
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение beloff12 » 07 окт 2014 18:51

Огромное спасибо, IYra. Попробую прошить. Еще один вопрос. Я впервые сталкиваюсь с программированием АТ90. В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?
beloff12
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 06 окт 2014 10:27

Re: Тахометр на ATtiny2313

Сообщение IYra » 07 окт 2014 19:36

beloff12 писал(а): В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?

Из Code Vision не прошивал. Пользуюсь программатором UNIPROF. Поэтому подсказать не смогу
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение beloff12 » 07 окт 2014 20:07

У меня программатор под USB, а насколько я помню, UNIPROF работает только с LPT и COM портами.
beloff12
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 06 окт 2014 10:27

Re: Тахометр на ATtiny2313

Сообщение this4me » 31 окт 2014 01:31

Добрый день. Переделываю Ваш исходник на спидометр. Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
Может ли прошивка обеспечить стабильность измерений малых частот (до 200 Гц) или просто у меня нестабильный источник?
Либо что необходимо изменить в исходниках?
Спс!
this4me
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 29 сен 2014 22:13

Re: Тахометр на ATtiny2313

Сообщение IYra » 31 окт 2014 10:28

this4me писал(а): Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
или просто у меня нестабильный источник?

А если попробовать подключить к 220в/50гц через понижающий трансформатор
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение this4me » 31 окт 2014 15:54

Трансформатора нет под руками. Вечером возьму осциллограф и буду точно измерять частоту от звуковой платы. (раньше баловался ардуиной и там частотомер стабильно работал, но был другой комп)
Меня интересует вопрос - сможет ли обработчик прерывания interrupt [EXT_INT0] void RPM_PULSE_interrupt(void) точно и стабильно измерять частоту от 1 Гц до 300-400 Гц?
И если есть возможность построчно прокомментировать код, которым можно повлиять на измерение для моего случая

interrupt [EXT_INT0] void RPM_PULSE_interrupt(void)
{
long lTmp;

GIMSK &= ~0x40;

if(btFirstLowRateFlash)
{
// Первый импульс, сбрасываем счетчик периода и
// счетчик импульсов
wTimerOvfCnt = 0;
wFlashCnt = 0;
TCNT0 = 0;
TIFR = 0x02;
TCCR0B = 0x03; // FCK / 64 ( 62.5 KHz )
TCNT0 = 0;
TIMSK |= 0x02; // Разрешаем прерывания от TMR0

btFirstLowRateFlash = FALSE;
}
else
{
wFlashCnt++;
// Проверяем, не пора ли закончить измерения
if( wTimerOvfCnt > TIMER_OVF_ENOUGHT )
{
TCCR0B = 0; // Останавливаем TMR0
GIMSK &= 0x40; // Запрещаем прерывания от INT0
TIMSK &= ~0x02; // Запрещаем прерывания от TMR0
if(TIFR & 0x02)
wTimerOvfCnt++; // Учитываем возможность переполнения

lTmp = (62500L * (long)wFlashCnt);
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
// lTmp /= byBladeCnt;
wRpm = lTmp;

// Перезапускаем измерения
btFirstLowRateFlash = TRUE;

wTimerOvfCnt = 0;
TCNT0 = 0;
TCCR0B = 0x03; // FCK / 64 ( 62.5 KHz )
TCNT0 = 0;
TIFR = 0x02;
TIMSK |= 0x02; // Разрешаем прерывания от TMR0

// GIFR = 0x40;

}
}
EIFR = 0x40;
GIMSK |= 0x40;
}


Добавлено спустя 6 минут 13 секунд:
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);

Делит длительность для получения частоты?
this4me
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 29 сен 2014 22:13

Re: Тахометр на ATtiny2313

Сообщение IYra » 31 окт 2014 18:24

this4me писал(а):Трансформатора нет под руками.

Тогда в Протеусе. В коде все вроде правильно. Надо только еще округление до 10 убрать.
В приложении подправленный проект и протеус.
Погонял немного. Меряет частоту нормально
Вложения
Частотомер.rar
(27.23 КБ) Скачиваний: 102
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение propell_ant » 31 окт 2014 19:17

Делит длительность для получения частоты?
неа
Код: Выделить всё
//wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;

еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет
Код: Выделить всё
#define NO_PULSES_INTERVAL  500UL
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
propell_ant
Живу тут
 
Сообщения: 276
Зарегистрирован: 03 июн 2014 09:22

Re: Тахометр на ATtiny2313

Сообщение this4me » 01 ноя 2014 00:13

Заголовок: Тахометр на ATtiny2313

propell_ant писал(а):
Делит длительность для получения частоты?
неа
Код: Выделить всё
//wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;

еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет
Код: Выделить всё
#define NO_PULSES_INTERVAL  500UL
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.



У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.

Пока я занимался блоком и прошивкой, то мой товарищ делал задающий шкив на кардан. Сделал 7 зубьев для датчика :) Частота датчика поднялась в 7 раз. Увеличил количество пропусков для отображения - показания стали более плавные. - в принципе работает.

Что изменил я - Убрал из (((((lTmp = (62500L * 60L * (long)wFlashCnt);)))) 60L ( а что изначает буква L?), убрал делитель lTmp /= byBladeCnt; и в конце умножил на нужный коэффициент 0.88. - из оборотов/мин получил скорость км/час. - как то коряво.

Если быть правильным то для измерения скорости нужно зная количество (62500L * (long)wFlashCnt); импульсов разделить на время ((wTimerOvfCnt << 8) + TCNT0); и умножить на дистанцию колеса между импульсами датчика? (потом преобразовать в км/час)

ЗЫ А что такое за число присвоено #define NO_PULSES_INTERVAL 500UL Что за буквы?
this4me
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 29 сен 2014 22:13

Re: Тахометр на ATtiny2313

Сообщение hardlock » 01 ноя 2014 07:34

L - тип long, UK - unsigned long. Это надо, чтобы компилятор не обрезад результат до более мелкого типа.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Тахометр на ATtiny2313

Сообщение IYra » 01 ноя 2014 11:47

this4me писал(а):
Частота датчика поднялась в 7 раз.



Код: Выделить всё
            Tmp = (282857L * (long)wFlashCnt );      //   625000 * 0.88 * 3600 = 198000/7 = 282857 
            lTmp /= ((wTimerOvfCnt << 8) + TCNT0);    //   Скорость с десятыми
            // Округляем
            wRpm = lTmp % 10;
            lTmp /= 10 ;
            if (wRpm>4) lTmp++ ;
            wRpm = lTmp;

У меня так получилось
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение this4me » 07 ноя 2014 23:31

Здравствуйте! Долго не отвечал - был в командировке.
Спидометр поставил. С моим вариантом куска кода. Скорость меряет отлично - десятые ( с некоторой кратностью), благодаря большому периоду обновления (30) значения не скачут, но и оперативно обновляется.
Схему и исходник использовал с соседней темы тахометра с светодиодами. Сделал на каждый светодиод по 1 км/час. Плату переразвёл для корпуса z-29. Могу скинуть плату. Фотографий не делал.
Большое спасибо всем причастным!
ПыСы hardlock, так как своё устройство пошло в коммерцию то считаю справедливым поддержать проект. Тебе будет приятно, и мне ещё обращаться за помощью. Куда отблагодарить?
this4me
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 29 сен 2014 22:13

Re: Тахометр на ATtiny2313

Сообщение kishy » 09 ноя 2014 20:17

Собрал тахометр с авторской прошивкой, подключил ( клема К - вывод конца первичной обмотки катушки Ваз 2109, поправте если нужно не туда ), на холостых показывает 850-950, при этом могут проскакивать и "левые значения", при увеличении оборотов двигателя показания падают до 200 - 300. Подскажите в чем искать причину, и что сделать для более устойчивых показаний.

Как переделать прошивку автора 7-clown для общего катода и 1 катушки?
7-clown » 22 сен 2014 17:32
Разрешите предложить свой вариант прошивки для данного устройства. Все та же прошивка, но просто я добавил несколько строк помехоустойчивости, путем замера 3 импульсов подряд и проверкой их корректности. Также, ниже 600 оборотов показывает прочерки, сигнализируя о не работающем двигателе. Обновление дисплея сделал не по таймеру, а по условию разности 2 последовательных замеров и при отличии больше чем на 50 - обновлени
kishy
Пробегал мимо
 
Сообщения: 1
Зарегистрирован: 22 май 2013 17:51
Откуда: Сумы

Re: Тахометр на ATtiny2313

Сообщение Wanderer123 » 26 ноя 2014 23:07

Здравствуйте! Собрал тахометр, прошил на общий К, выставил фьюзы вроде все правильно, но при включении на одну секунду горит 0 а потом начинает показывать странные значения, вот видео http://youtu.be/jduyf9esOKg
Wanderer123
Пробегал мимо
 
Сообщения: 6
Зарегистрирован: 19 ноя 2014 16:08

Re: Тахометр на ATtiny2313

Сообщение hardlock » 27 ноя 2014 09:03

Wanderer123, ничего подобного в моей прошивке быть не может пробуйте прошить ещё раз, другую прошивку...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Пред.След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Majestic-12 [Bot], Yahoo [Bot] и гости: 4