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

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

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

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

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

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


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

Тахометр на ATtiny2313

Здесь только проекты на ATtiny
Post Reply
goodtrix
Пробегал мимо
Posts: 7
Joined: 07 Feb 2012 18:23

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

Post by goodtrix »

Скетч точно не при чем. Ардуина виснет, как только приходит сигнал с катушки. Что то видимо не так с сопряжением, буду разбираться.
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Всем доброго времени суток!
Подскажите, а как можно сделать округление до 100об.мин?

Добавлено спустя 1 час 53 минуты 33 секунды:
Я так понимаю что тут что то изменить нужно. Можете подправить? Чтоб обороты округлялись до сотен. Неприятно что обороты вечно пляшут туда-сюда в десятках...
_____________________________________
if (byDisplay[3] > 4) //округляем
{
wRpm++;
R += 10;
}

byDisplay[3] = 0;
_____________________________________
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

goodtrix wrote:который из них надо пробовать менять? На базе или на коллекторе?
пробуйте их вообще убрать, а потом подбирать оба...
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Где рыть хоть подскажите - как округлить до сотен. В какой части прошивки?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

quakebass wrote:как округлить до сотен. В какой части прошивки?
там, где идёт преобразование (функция зовётся как-то PrepareData_чего-то_там). там же есть округление до 10.
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Hardlock, вот кусок исходника который отвечает за округление?
void PrepareRpmData(WORD wRpm)
{
BYTE i;
WORD R;

R = wRpm;

byDisplay[3] = wRpm % 10;
wRpm /= 10;

if (byDisplay[3] > 4) //округляем
{
wRpm++;
R += 10;
}

byDisplay[3] = 0;

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

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

Post by hardlock »

Попробуйте, не уверен в некоторых моментах.

Code: Select all

void PrepareRpmData(WORD wRpm)
{
    BYTE i;
    WORD R;
    
    R = wRpm;       
    
    // Первые 4 цифр - обороты двигателя
    for(i=0; i<4; i++)
    {
       byDisplay[3-i] = wRpm % 10;
       wRpm /= 10;
    }
              
    if (byDisplay[3] > 4)  //округляем до десятков
    {
      byDisplay[2]++;
      R += 10;
    }        
    
    if (byDisplay[2] > 4)  //округляем до сотен
    {
      byDisplay[1]++;
      R += 100;
    }
    
    byDisplay[3] = 0;
    byDisplay[2] = 0;    
    
    if (R < 10)
    {
      byDisplay[0] = 10;
      byDisplay[1] = 10;
      byDisplay[2] = 10;            
      goto exit;
    }   
    if ((R >= 10) & (R <100))
    {
      byDisplay[0] = 10;
      byDisplay[1] = 10;
      goto exit;
    }
    if ((R >= 100) & (R <1000))
    {
      byDisplay[0] = 10;
      goto exit;
    }            

exit:
}
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Работает, но не совсем как надо - при 1900 об "9" вообще не светиться, 3000 об. - не светится второй ноль. Давайте доработаем... :drink: до 1900 работает хорошо!
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

теперь должно работать.

Code: Select all

void PrepareRpmData(WORD wRpm)
{
    BYTE i;
    WORD R;
    
    R = wRpm;       
    
    // Первые 4 цифр - обороты двигателя
    for(i=0; i<4; i++)
    {
       byDisplay[3-i] = wRpm % 10;
       wRpm /= 10;
    }
              
    if (byDisplay[3] > 4)  //округляем до десятков
    {
      byDisplay[2]++;
      R += 10;
    }        
    
    if (byDisplay[2] > 4)  //округляем до сотен
    {
      byDisplay[1]++;
      if (byDisplay[1] > 9)
      {
        byDisplay[0]++;
        byDisplay[1] = 0;
      }
      R += 100;
    }
    
    byDisplay[3] = 0;
    byDisplay[2] = 0;    
    
    if (R < 10)
    {
      byDisplay[0] = 10;
      byDisplay[1] = 10;
      byDisplay[2] = 10;            
      goto exit;
    }   
    if ((R >= 10) & (R <100))
    {
      byDisplay[0] = 10;
      byDisplay[1] = 10;
      goto exit;
    }
    if ((R >= 100) & (R <1000))
    {
      byDisplay[0] = 10;
      goto exit;
    }            

exit:
}
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Как округляется до 10 я кажется разобрался - алгоритм такой: обороты двигателя делятся на 10. потом берется остаток от деления, если он больше 4 тогда высвечивается 10. если меньше 0. Верно?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

quakebass, верно.
quakebass
Пробегал мимо
Posts: 7
Joined: 09 Feb 2012 21:50

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

Post by quakebass »

Спасибо за оперативность! Утром отпишусь. Девайс уже поставл в авто, залил "скоростную" прошивку. Стало как то живее. Реакция индикатора почти не отстает от педали газа. ;) Завтра все это скрестим! :drink:

Добавлено спустя 9 часов 8 минут 32 секунды:
Спасибо! :drink: (это кофе - еще утро :) ) Установил! Заработало! Прошивку скомпилированую выложить? Может кому пригодиться? Хочу разобраться дальше с алгоритмом этой части проги. Теперь же 2 разряда ненужны - можно просто писать 0.9 .. 1,0 .. 2,5 ..

Добавлено спустя 15 минут 59 секунд:
hardlock, зачем в "шапке" программы указано BYTE byDisplay[4]; // буфер данных, для вывода на экран - почему 4? Трех недостаточно? Нумерация в массиве с начинается с "0"?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

quakebass wrote:Прошивку скомпилированую выложить?
можно проект целиком.
quakebass wrote:Теперь же 2 разряда ненужны - можно просто писать 0.9 .. 1,0 .. 2,5 ..
кому как удобнее.
quakebass wrote:зачем в "шапке" программы указано BYTE byDisplay[4]; // буфер данных, для вывода на экран - почему 4?
ну цифры то 4, вот и буфер на 4 разряда
quakebass wrote:Нумерация в массиве с начинается с "0"?
Это Си - тут массив начинается с "0".

Можно оствить две цифры, сдвинуть их и включить точку. А можно не сдвигать, а убрать младшие 2 разряда и включить точку между двумя старшими.
popilsjawa
Пробегал мимо
Posts: 9
Joined: 15 Feb 2012 21:00
Location: Хмельницкий, Украина

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

Post by popilsjawa »

Здравствуйте) У меня вопрос такого плана: когда на делитель не подаются импульсы с катушки, то должны все нули светится? У меня только последний светится :dontknow:

Добавлено спустя 8 минут 58 секунд:
И ещё вопрос: а какой амплитуды туда импульсы подавать и какой формы?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

popilsjawa wrote:то должны все нули светится? У меня только последний светится
правильно светится.
popilsjawa wrote:какой амплитуды туда импульсы подавать и какой формы?
на катушке прямоугольные импульсы 12 вольт с выбросами до 400 В. А подавать можно хоть синус - дэвайсу пофик.
popilsjawa
Пробегал мимо
Posts: 9
Joined: 15 Feb 2012 21:00
Location: Хмельницкий, Украина

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

Post by popilsjawa »

А для чего для мотоцыкла делить на 4???
У меня Ява, там за один оборот коленвала искра проскакивает в двух цылиндрах, так как это двотактный двигатель) С катушки мы берем одной, значит каждый оборот двигателя соответствует импульсу подаваемому на вход) тогда берётся количество импульсов и умножается на 60 секунд, а зачем делить на 4? :dontknow:
если число оборотов за мин. 1000 на холостых, делим на 60, получается 16,6 оборотов за секунду) я подавал на вход импульсы с генератора на вход с частотой 17Гц, но на индикаторе показывает не 1000, а гдето 250, так как оно делит на 4) :(
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

popilsjawa, а чё парится? проверьте на мотике.
popilsjawa
Пробегал мимо
Posts: 9
Joined: 15 Feb 2012 21:00
Location: Хмельницкий, Украина

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

Post by popilsjawa »

Да я б с радостью, но недома я, просто такие теоретические сображения пришли, а дома нет чем шить МК, если работать небудет) Попробую на следующие выходные)
Немогли бы Вы подсказать мне какой нибудь програматор для новичка, чтобы тини и меги шились, потому что в програмировании я баран) Ато одни програматоры тини не шьют некоторые
proclan
Пробегал мимо
Posts: 2
Joined: 18 Feb 2012 17:41
Location: Россия

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

Post by proclan »

господа, не могли бы вы мне помочь?
я не очень силён в языках программирования...
помогите модернизировать программу так чтобы она показывала частоту в графическом виде на линейке из светодиодов.
тоесть от 0 до 1000 оборотов в минуту - 1 горит, от 1001 до 2000 оборотов - 2 горит, от 2001 до 3000 - 3 и т.д.

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

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

Post by hardlock »

popilsjawa, STK 200/300 - проще не придумаешь.

proclan, ага, значит до форума уже тоже добрались? В мыло не могу всем отвечать. Теперь по теме. Зачем такой неточный тахометр? Ведь всего 10 светодиодов от 0 до 10000 оборотов...
proclan
Пробегал мимо
Posts: 2
Joined: 18 Feb 2012 17:41
Location: Россия

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

Post by proclan »

да я в мыло вроде не писал никому...

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

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

Post by hardlock »

proclan wrote:да я в мыло вроде не писал никому...
мне тут просто днём ранее пришло письмо, решил, что Вы же...
nicezevs wrote:Из соображений недоступности дисплеев хотелось бы чтобы в индикации учавствовали 10-15 светодиодов столбиком. Привлекает именно цифровая схема из за гибкости параметров.

Дело в том что я не знаком с языком Си и с МК вобщем-то не работал, поэтому сам не справлюсь с тем чтобы перевести индикацию с дисплея на отдельные светодиоды, хотя исходник скачал и попытался вникнуть, но потому как до этого работал только в дэлфи, честно говоря затруднился.

Не могли бы вы мне с этим помочь?
Не спорю, я бы мог плотно взяться за изучение МК и сделать все сам, но дело в том что это будет длительный процесс, собственно в дальнейшем я так и поступлю, но тахометр хотелось бы как можно быстрее собрать а не к следующей осени =)

Заранее спасибо, ответ напишите в любом случае.
А так как на вопросы по конструкциям в мыло не отвечаю, то отвечу тут:
Создавайте новую тему, рисуйте схему, разводите ПП, прошивку думаю подправим.
guitm9762
Пробегал мимо
Posts: 15
Joined: 20 Feb 2012 15:24
Location: Преведдск

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

Post by guitm9762 »

мне тут просто днём ранее пришло письмо, решил, что Вы же...
Это я писал :oops:
Просто не додумался глянуть как надо и решил что тема очень старая, поэтому в мыло черканул.

В общем моя суть проблемы схожа с описаной proclan'ом.
Только мне нужна более точная индикация.
Хотелось бы наверное 15 светодиодов, только я как понимаю у 2313 не будет столько свободных ног.. Или я что то не так понял?

В общем данные такие. Максимальные отображаемые, обороты 5500. Если раскрутятся больше то просто будут гореть все диоды и больше ничего, мне важно начало шкалы :)
Исходя из этого нужно создать столбик с более менее приличной точностью, хотя наверное тут не менее 500 об\мин цена деления выйдет?

В общем вот.. суть проблемы изложил. если выразился непонятно, прошу извинить, если нужно выражу мысли более точнее.. :sorry:
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

guitm9762 wrote:Хотелось бы наверное 15 светодиодов, только я как понимаю у 2313 не будет столько свободных ног.. Или я что то не так понял?
индикация будет динамическая, как и сейчас, т.е. светодиоды буду объеденены в массивы, как в динамическом индикаторе. Для простоты переделки - по 8 штук в массиве.
guitm9762 wrote:В общем вот.. суть проблемы изложил. если выразился непонятно, прошу извинить, если нужно выражу мысли более точнее..
так надо не только суть проблемы изложить, а схемку с печаткой набросать, бо я всё не успею. А уже под печатку и схему сделаю прошивку, причём 2 варианта - горит весь столбик и только один светик.
guitm9762
Пробегал мимо
Posts: 15
Joined: 20 Feb 2012 15:24
Location: Преведдск

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

Post by guitm9762 »

индикация будет динамическая, как и сейчас, т.е. светодиоды буду объеденены в массивы, как в динамическом индикаторе. Для простоты переделки - по 8 штук в массиве.
Я не совсем представил это применительно к светодиодам :oops:
Можно подробнее? :)
И тогда я очевидно смогу перерисовать схему, а печатку хотел бы сделать позже, ибо мне там к месту надо прикинуть.
Или нужно сразу все?
ладно, вы мне объясните насчет динамической индикации, а то что-то не хватает познаний чтобы понять как это, и дальше я начну шевелиться

А насчет двух вариантов.. вполне бы хватило всего столбика, но вобщем то если вас не затруднит, то отдельный светодиод тоже неплохо, вдруг это кому-то пригодится (а это точно пригодится :) )
Post Reply