Page 50 of 55

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

Posted: 25 Jan 2017 11:39
by mikitenko
чи лижі не їдуть, чи я .... спасибо hardlock, на Вашей скомпилированной прошивке с общим анодом, и значением 1 тахометр стал показывать то что и должен. Вы компилировали с проекта, который выложен в шапке темы? может у Вас проект другой? я ведь тоже самое делаю, жму shift+F9, и полученный hex записываю. может действительно изменения, что я вношу, просто не применяются.. хотя я же сохраняю проект с изменениями, открываю его, и они там есть. в любом случае спасибо!

изменения применяются, так как скомпилированные прошивки отличаются

Добавлено спустя 21 час 12 минут 41 секунду:
можете скинуть проект, с которого Вы компилите прошивки, может в шапке темы он не рабочий.. и какая версия codevision у вас

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

Posted: 28 Jan 2017 05:57
by hardlock
mikitenko, выложу в ближайшее время, как доберусь до ноута.

Posted: 30 Jan 2017 18:40
by mikitenko
Хорошо, буду ждать

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

Posted: 30 Jan 2017 20:34
by hardlock
Выкладываю.
Новое имя константы "коэфициента" - byDivider в 39й строке.

строки 32-35 - ОА, ОК, или с транзистором.

Code: Select all

#define Anode         //для индикатора с ОА
//#define AnodePNP        //для индикатора с ОА и pnp транзисторами
//#define Cathode       //для индикатора с ОК 
//#define CathodeNPN    //для индикатора с ОК и npn транзисторами

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

Posted: 02 Feb 2017 11:46
by mikitenko
спасибо. завтра буду пробовать

Да, с этого проэкта всё отлично работает и перенастраивается, спасибо.
и еще такой вопрос, в строке 41
#define UpCount 4 // +1 = количество пропусков (0,1S) до обновления
что это означает? то что каждые 0.4секунды тахометр выводит на дисплей новые показания оборотов?
и еще в программе есть
// 3 раза в секунду перерисовываем дисплей,
// независимо от обстоятельств.
Я просто хочу добиться более быстрой работы тахометра, при изменении стоки 41 вместо 4 если поставлю 2? или всё равно чаще чем раз в 0.3сек он обновляться всё равно не будет

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

Posted: 24 Feb 2017 09:47
by mikitenko
у меня есть такое предложение, но для тех, кто шарит в написании программ. на этом микроконтроллере не используется порт 0А. точнее используется, но он там абсолютно не нужен, так как это точка на семисегментном индикаторе. что если доработать проект так, чтоб повесить на этот порт кнопку изменения параметра "byDivider" (количества импульсов, равных одному обороту двигателя). можно даже чтоб не выводил он этот параметр на индикатор, просто изменял значение и записывал в память, чтоб при выключении тахометра этот параметр не сбивался.

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

Posted: 25 Feb 2017 10:46
by hardlock
mikitenko, хорошее предложение )

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

Posted: 01 Mar 2017 16:46
by mikitenko
hardlock wrote:mikitenko, хорошее предложение )
как я это вижу (своим не опытным взглядом):
1. объявить переменную
2. записать ее в eeprom
3. подставить эту переменную в byDivider
4. при нажатии на кнопку, приплюсовывать к этой переменной "1".

вот только опыта в программировании нет и оценить правильность моих суждений я не могу, собственно как и реализовать это(

Добавлено спустя 20 часов 36 минут 25 секунд:
убрал строку #define byDevider 1

в строку 333 ввел переменную int k=1; //переменная, определяющая количество импульсов равных одному обороту двигателя

часть формул оставил без изменений
lTmp = (62500L * 60L * (long)wFlashCnt);
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);

изменил знак умножения на знак деления
lTmp /= k; //поделил полученные обороты на переменную( количество импульсов =1 обороту двигателя)
wRpm = lTmp;

эта часть работает. теперь нужно по кнопке увеличить значение переменной к на 1. но учитывая, что программа выполняется очень быстро, то само собой переменная к моментально выростет. тоесть нужно как-то приостановить выполнение программы при нажатой кнопке, и продолжить её выполнение после того, как кнопка будет брошена.

Добавлено спустя 4 часа 23 минуты 22 секунды:
еще немного поэкспериметнировал.
lTmp /= k;
wRpm = lTmp;
if (! PINB.2) //вставил условие нажатой кнопки (замыкание на минус) порта B2, там где раньше была точка
{
k=k+1; //прибавил к переменной единицу, чтоб увеличить количество импульсов на 1 оборот двигателя
delay_ms(1000); //сделал паузу 1 секунда, чтоб не было ложных срабатываний кнопки, так как цикл повторяется каждые 0.3сек, и если не разжать кнопку, то просуммирует еще один раз
}

осталась задача записи переменной к в eeprom, и так же хочется сделать вывод на протяжении паузы delay_ms(1000) значение переменной к

Posted: 02 Mar 2017 20:39
by mikitenko
Хух, наконец закончил. Написать всё не смогу, очень много всего изменил, кому нужно, могу скинуть проект на почту. От себя добавил: ввёл функции работы с eeprom(перед компиляцией нужно включить в cvavr), нашёл в пдф к Тини. Выделил место под переменную, ввёл условие если переменная больше 7 то пнировнять к 1. Ввёл условие суммирования переменной ++ при нажатой кнопке pb2. При к==5 выполнять ещё и деление на 10 (это при 1 импульсе на 2 оборота). При к>=6 к=1. при изменении переменной кнопкой - запись переменной в eeprom. Так же ввёл переменную задержки времени, и на эту задержку времени, которая начинается после нажатия кнопки, на 3 разряд дисплея сделал вывод переменой "к"

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

Posted: 03 Mar 2017 11:27
by hardlock
mikitenko, а почему бы не поделиться тут со всеми?

Posted: 05 Mar 2017 07:05
by mikitenko
А как его выложить(прикрепить)? Могу вам на почту скинуть, а вы выложите.

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

Posted: 05 Mar 2017 11:41
by hardlock
mikitenko, нажимайте "Стандартный ответ", внизу будет добавить вложения. Прикрепляете архив и всё. Ну или мыло выслал в ЛС.

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

Posted: 05 Mar 2017 14:23
by mikitenko
Вот предпоследняя версия. С этим проэктом на ногу pb2 припаять кнопку, второй выход кнопки припаять на корпус. Резистор на неё впаивать не нужно, ножку с индикатора тоже убрать с неё (это точка на индикаторе). С этим проэктом при нажатии на кнопку на дисплей выводится изменение количества импульсов на 1 оборот двигателя. От одного до пяти. 5 (в программе это 0.5) означает что 1 импульс равен 2 оборотам двигателя. Этот параметр сохраняется в память eeprom, тоесть после выключения зажигания параметр не сбивается.

В последней версии добавил flash light, тоесть светодиод при достижении определённого количества оборотов (к примеру 5000 и выше), ну и кнопку перевесил на ножку pd3(она вообще свободная). Но этот проэкт на работе

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

Posted: 10 Mar 2017 11:44
by mikitenko
чуть не забыл! обязательно в проекте, что я выложил, нужно изменить параметр
PORTA=0b00000011;
DDRA= 0b00000011;

PORTB=0b00000000;
DDRB= 0b11111111;

там где PORTB=0b00000000; нужно написать PORTB=0b00000100; //этой единичкой мы повеслили подтягивающий резистор на порт В2
а где DDRB= 0b11111111; нужно написать DDRB= 0b11111011; //этим ноликом мы порт В2 настроили на вход

в принципе на первое время и так сошло бы, но при частом нажатии кнопки может вылететь порт В2, а с этим изменением будет всё ОК

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

Posted: 28 Mar 2017 04:32
by Gvido
Здравствуйте очень понравилась ваша версия проекта. :good: Я собрал его прототип без ваших доработок. Но все дело что у меня скут 4х тактный 1 цил. То есть, на 2 оборота 1 импульс... Может вам не сложно было бы выслать схемку, прошивку или проект я сам как бы в програмировании не очень, только начал заниматься МК.

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

Posted: 31 Mar 2017 09:42
by hardlock
Gvido, если начали заниматься МК, то будет полезно выполнить доработку прошивки самому, тем более что для этого нужно только внимательно прочитать 1й пост и исправить всего одно значение в программе. Ну и в теме уже неоднократно встречались прошивки с разными коэфициентами - не ленитесь, читайте!

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

Posted: 03 Apr 2017 03:33
by Gvido
hardlock, Если вы про 17 строку, то не одно значение мне не подходит. На 2 оборота 1 импульс нужен. И вообще не могу добиться что бы на скуте хоть какие то значения запрыгали. Подключил энкодер на вход работает. Манипуляции с R220k и кондером на входе не помогли пока.
Осцилографа нет. Что там выходит на катушку.. Ну буду еще пробывать.

Posted: 03 Apr 2017 08:46
by maksim_tverdohlb
Как измерять обороты эл двигателя на станке? Как сделать оптодатчик ???На шкив белой краской метку сделал и на нее направить датчик с ик диодом и ик приемником....)))Или на щелевой оптопаре)))Незнаю как это реализовать....

Re:

Posted: 03 Apr 2017 09:07
by IYra
maksim_tverdohlb wrote:Как измерять обороты эл двигателя на станке? Как сделать оптодатчик ???На шкив белой краской метку сделал и на нее направить датчик с ик диодом и ик приемником....)))Или на щелевой оптопаре)))Незнаю как это реализовать....
Можно еще датчик Холла попробовать

Добавлено спустя 3 минуты 23 секунды:
Re: Тахометр на ATtiny2313
Gvido wrote:hardlock, Если вы про 17 строку, то не одно значение мне не подходит. На 2 оборота 1 импульс нужен.
подправить

Code: Select all

 lTmp /= byBladeCnt;
на

Code: Select all

 lTmp *= 2;
Gvido wrote: И вообще не могу добиться что бы на скуте хоть какие то значения запрыгали. Подключил энкодер на вход работает. Манипуляции с R220k и кондером на входе не помогли пока.
Осцилографа нет. Что там выходит на катушку.. Ну буду еще пробывать.
Уменьшать R220k

Posted: 03 Apr 2017 10:03
by Gvido
Уменьшал пока только до 10к и кондер 100n. Буду пробыватьеще. Ещё вопрос прошивать обязательно с внешним кварцем?

Re:

Posted: 03 Apr 2017 11:01
by IYra
Gvido wrote:Уменьшал пока только до 10к и кондер 100n. Буду пробыватьеще.
А куда подсоединен вход тахометра ?
Gvido wrote: Ещё вопрос прошивать обязательно с внешним кварцем?
Обязательно

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

Posted: 03 Apr 2017 16:16
by maksim_tverdohlb
кто шарит)))Пожалуйста)))Скомпилируйте прошивку с оа для мк AT90S2313))))Прошивка заливается но не чего не показывает)))))резисторы на индикатор поставил 300 ом

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

Posted: 03 Apr 2017 17:30
by IYra
maksim_tverdohlb wrote:Скомпилируйте прошивку с оа для мк AT90S2313
Вот попробуй

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

Posted: 03 Apr 2017 17:44
by maksim_tverdohlb
ноль в правом углу поевился)))а сколько в этой прошивке импульсов на оборот? Если я подключу переменку 50 гц то сколько покажит тахометр?

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

Posted: 03 Apr 2017 18:29
by IYra
maksim_tverdohlb wrote:ноль в правом углу поевился)))а сколько в этой прошивке импульсов на оборот? Если я подключу переменку 50 гц то сколько покажит тахометр?
#define byBladeCnt 2 //1- две катушки, 2 - одна катушка, 4 - мотоцикл..

На переменке 50 гц должно показать 1500