24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Тахометр на ATtiny2313

Здесь только проекты на ATtiny
Post Reply
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post by mikitenko »

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

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

Добавлено спустя 21 час 12 минут 41 секунду:
можете скинуть проект, с которого Вы компилите прошивки, может в шапке темы он не рабочий.. и какая версия codevision у вас
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

mikitenko, выложу в ближайшее время, как доберусь до ноута.
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

Post by mikitenko »

Хорошо, буду ждать
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Выкладываю.
Новое имя константы "коэфициента" - byDivider в 39й строке.

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

Code: Select all

#define Anode         //для индикатора с ОА
//#define AnodePNP        //для индикатора с ОА и pnp транзисторами
//#define Cathode       //для индикатора с ОК 
//#define CathodeNPN    //для индикатора с ОК и npn транзисторами
Attachments
tach_v1.1.rar
(5.73 KiB) Downloaded 564 times
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post by mikitenko »

спасибо. завтра буду пробовать

Да, с этого проэкта всё отлично работает и перенастраивается, спасибо.
и еще такой вопрос, в строке 41
#define UpCount 4 // +1 = количество пропусков (0,1S) до обновления
что это означает? то что каждые 0.4секунды тахометр выводит на дисплей новые показания оборотов?
и еще в программе есть
// 3 раза в секунду перерисовываем дисплей,
// независимо от обстоятельств.
Я просто хочу добиться более быстрой работы тахометра, при изменении стоки 41 вместо 4 если поставлю 2? или всё равно чаще чем раз в 0.3сек он обновляться всё равно не будет
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post by mikitenko »

у меня есть такое предложение, но для тех, кто шарит в написании программ. на этом микроконтроллере не используется порт 0А. точнее используется, но он там абсолютно не нужен, так как это точка на семисегментном индикаторе. что если доработать проект так, чтоб повесить на этот порт кнопку изменения параметра "byDivider" (количества импульсов, равных одному обороту двигателя). можно даже чтоб не выводил он этот параметр на индикатор, просто изменял значение и записывал в память, чтоб при выключении тахометра этот параметр не сбивался.
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

mikitenko, хорошее предложение )
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post 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) значение переменной к
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

Post by mikitenko »

Хух, наконец закончил. Написать всё не смогу, очень много всего изменил, кому нужно, могу скинуть проект на почту. От себя добавил: ввёл функции работы с eeprom(перед компиляцией нужно включить в cvavr), нашёл в пдф к Тини. Выделил место под переменную, ввёл условие если переменная больше 7 то пнировнять к 1. Ввёл условие суммирования переменной ++ при нажатой кнопке pb2. При к==5 выполнять ещё и деление на 10 (это при 1 импульсе на 2 оборота). При к>=6 к=1. при изменении переменной кнопкой - запись переменной в eeprom. Так же ввёл переменную задержки времени, и на эту задержку времени, которая начинается после нажатия кнопки, на 3 разряд дисплея сделал вывод переменой "к"
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

mikitenko, а почему бы не поделиться тут со всеми?
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

Post by mikitenko »

А как его выложить(прикрепить)? Могу вам на почту скинуть, а вы выложите.
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

mikitenko, нажимайте "Стандартный ответ", внизу будет добавить вложения. Прикрепляете архив и всё. Ну или мыло выслал в ЛС.
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post by mikitenko »

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

В последней версии добавил flash light, тоесть светодиод при достижении определённого количества оборотов (к примеру 5000 и выше), ну и кнопку перевесил на ножку pd3(она вообще свободная). Но этот проэкт на работе
Attachments
tach_v1.1mod.rar
(66.5 KiB) Downloaded 410 times
mikitenko
Пробегал мимо
Posts: 13
Joined: 23 Jan 2017 16:17
Location: Украина

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

Post by mikitenko »

чуть не забыл! обязательно в проекте, что я выложил, нужно изменить параметр
PORTA=0b00000011;
DDRA= 0b00000011;

PORTB=0b00000000;
DDRB= 0b11111111;

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

в принципе на первое время и так сошло бы, но при частом нажатии кнопки может вылететь порт В2, а с этим изменением будет всё ОК
Gvido
Пробегал мимо
Posts: 5
Joined: 27 Mar 2017 18:13

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

Post by Gvido »

Здравствуйте очень понравилась ваша версия проекта. :good: Я собрал его прототип без ваших доработок. Но все дело что у меня скут 4х тактный 1 цил. То есть, на 2 оборота 1 импульс... Может вам не сложно было бы выслать схемку, прошивку или проект я сам как бы в програмировании не очень, только начал заниматься МК.
User avatar
hardlock
Администратор
Posts: 3978
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Gvido, если начали заниматься МК, то будет полезно выполнить доработку прошивки самому, тем более что для этого нужно только внимательно прочитать 1й пост и исправить всего одно значение в программе. Ну и в теме уже неоднократно встречались прошивки с разными коэфициентами - не ленитесь, читайте!
Gvido
Пробегал мимо
Posts: 5
Joined: 27 Mar 2017 18:13

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

Post by Gvido »

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

Post by maksim_tverdohlb »

Как измерять обороты эл двигателя на станке? Как сделать оптодатчик ???На шкив белой краской метку сделал и на нее направить датчик с ик диодом и ик приемником....)))Или на щелевой оптопаре)))Незнаю как это реализовать....
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re:

Post 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
Gvido
Пробегал мимо
Posts: 5
Joined: 27 Mar 2017 18:13

Post by Gvido »

Уменьшал пока только до 10к и кондер 100n. Буду пробыватьеще. Ещё вопрос прошивать обязательно с внешним кварцем?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re:

Post by IYra »

Gvido wrote:Уменьшал пока только до 10к и кондер 100n. Буду пробыватьеще.
А куда подсоединен вход тахометра ?
Gvido wrote: Ещё вопрос прошивать обязательно с внешним кварцем?
Обязательно
maksim_tverdohlb
Пробегал мимо
Posts: 13
Joined: 03 Apr 2017 08:34

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

Post by maksim_tverdohlb »

кто шарит)))Пожалуйста)))Скомпилируйте прошивку с оа для мк AT90S2313))))Прошивка заливается но не чего не показывает)))))резисторы на индикатор поставил 300 ом
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

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

Post by IYra »

maksim_tverdohlb wrote:Скомпилируйте прошивку с оа для мк AT90S2313
Вот попробуй
Attachments
tach2_OA.rar
(1.69 KiB) Downloaded 286 times
maksim_tverdohlb
Пробегал мимо
Posts: 13
Joined: 03 Apr 2017 08:34

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

Post by maksim_tverdohlb »

ноль в правом углу поевился)))а сколько в этой прошивке импульсов на оборот? Если я подключу переменку 50 гц то сколько покажит тахометр?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

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

Post by IYra »

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

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