Page 29 of 55

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

Posted: 09 Feb 2012 18:29
by goodtrix
Скетч точно не при чем. Ардуина виснет, как только приходит сигнал с катушки. Что то видимо не так с сопряжением, буду разбираться.

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

Posted: 10 Feb 2012 11:26
by quakebass
Всем доброго времени суток!
Подскажите, а как можно сделать округление до 100об.мин?

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

byDisplay[3] = 0;
_____________________________________

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

Posted: 10 Feb 2012 20:00
by hardlock
goodtrix wrote:который из них надо пробовать менять? На базе или на коллекторе?
пробуйте их вообще убрать, а потом подбирать оба...

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

Posted: 11 Feb 2012 00:56
by quakebass
Где рыть хоть подскажите - как округлить до сотен. В какой части прошивки?

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

Posted: 11 Feb 2012 13:52
by hardlock
quakebass wrote:как округлить до сотен. В какой части прошивки?
там, где идёт преобразование (функция зовётся как-то PrepareData_чего-то_там). там же есть округление до 10.

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

Posted: 11 Feb 2012 14:45
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;

Можете подредактировать чтоб до сотен округлял?

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

Posted: 11 Feb 2012 19:33
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:
}

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

Posted: 11 Feb 2012 22:47
by quakebass
Работает, но не совсем как надо - при 1900 об "9" вообще не светиться, 3000 об. - не светится второй ноль. Давайте доработаем... :drink: до 1900 работает хорошо!

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

Posted: 11 Feb 2012 22:57
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:
}

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

Posted: 11 Feb 2012 23:07
by quakebass
Как округляется до 10 я кажется разобрался - алгоритм такой: обороты двигателя делятся на 10. потом берется остаток от деления, если он больше 4 тогда высвечивается 10. если меньше 0. Верно?

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

Posted: 11 Feb 2012 23:08
by hardlock
quakebass, верно.

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

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

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

Добавлено спустя 15 минут 59 секунд:
hardlock, зачем в "шапке" программы указано BYTE byDisplay[4]; // буфер данных, для вывода на экран - почему 4? Трех недостаточно? Нумерация в массиве с начинается с "0"?

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

Posted: 12 Feb 2012 14:21
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 разряда и включить точку между двумя старшими.

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

Posted: 15 Feb 2012 21:17
by popilsjawa
Здравствуйте) У меня вопрос такого плана: когда на делитель не подаются импульсы с катушки, то должны все нули светится? У меня только последний светится :dontknow:

Добавлено спустя 8 минут 58 секунд:
И ещё вопрос: а какой амплитуды туда импульсы подавать и какой формы?

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

Posted: 16 Feb 2012 07:36
by hardlock
popilsjawa wrote:то должны все нули светится? У меня только последний светится
правильно светится.
popilsjawa wrote:какой амплитуды туда импульсы подавать и какой формы?
на катушке прямоугольные импульсы 12 вольт с выбросами до 400 В. А подавать можно хоть синус - дэвайсу пофик.

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

Posted: 18 Feb 2012 11:57
by popilsjawa
А для чего для мотоцыкла делить на 4???
У меня Ява, там за один оборот коленвала искра проскакивает в двух цылиндрах, так как это двотактный двигатель) С катушки мы берем одной, значит каждый оборот двигателя соответствует импульсу подаваемому на вход) тогда берётся количество импульсов и умножается на 60 секунд, а зачем делить на 4? :dontknow:
если число оборотов за мин. 1000 на холостых, делим на 60, получается 16,6 оборотов за секунду) я подавал на вход импульсы с генератора на вход с частотой 17Гц, но на индикаторе показывает не 1000, а гдето 250, так как оно делит на 4) :(

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

Posted: 18 Feb 2012 12:16
by hardlock
popilsjawa, а чё парится? проверьте на мотике.

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

Posted: 18 Feb 2012 12:53
by popilsjawa
Да я б с радостью, но недома я, просто такие теоретические сображения пришли, а дома нет чем шить МК, если работать небудет) Попробую на следующие выходные)
Немогли бы Вы подсказать мне какой нибудь програматор для новичка, чтобы тини и меги шились, потому что в програмировании я баран) Ато одни програматоры тини не шьют некоторые

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

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

схема собственно останется та же, достаточно вместо числового индикатора подключить линейный, "столбик"

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

Posted: 18 Feb 2012 21:18
by hardlock
popilsjawa, STK 200/300 - проще не придумаешь.

proclan, ага, значит до форума уже тоже добрались? В мыло не могу всем отвечать. Теперь по теме. Зачем такой неточный тахометр? Ведь всего 10 светодиодов от 0 до 10000 оборотов...

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

Posted: 19 Feb 2012 08:48
by proclan
да я в мыло вроде не писал никому...

нужно не столько для измерения сколько для подсветки секторов на обычном тахометре.
обычно сзади горит лампочка (несколько) которая подсвечивает всю шкалу сразу.
но если расположить сзади несколько светодиодов ярких по окружности, то подсвечиваться будет только та часть шкалы где сейчас находится стрелка.
получится что куда направлена стрелка там и подсвечивается.

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

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

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

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

Заранее спасибо, ответ напишите в любом случае.
А так как на вопросы по конструкциям в мыло не отвечаю, то отвечу тут:
Создавайте новую тему, рисуйте схему, разводите ПП, прошивку думаю подправим.

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

Posted: 20 Feb 2012 15:48
by guitm9762
мне тут просто днём ранее пришло письмо, решил, что Вы же...
Это я писал :oops:
Просто не додумался глянуть как надо и решил что тема очень старая, поэтому в мыло черканул.

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

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

В общем вот.. суть проблемы изложил. если выразился непонятно, прошу извинить, если нужно выражу мысли более точнее.. :sorry:

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

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

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

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

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