Управление тахометром Rav4

Всем привет.
начал ставить себе щиток приборов в жигуля от тойоты рав4 2020.
со всем разобрался, осталась одна только проблема, управление через канШину тахометром.
Нам известен ID строки и какие два байта отвечают за тахометр.
Вопрос как реализовать управление правильно? делать таблицу типа если 1000 оборотов то тогда первый байт 05 второй 60 сумма сойти можно и не знаю хватит ли сил и памяти ардуино)
Вот тут я накидал табличку на глаз 1столб 1 байт, 2столб 2байт, и количество оборотов.
27 80 8000
25 00 7500
22 AB 7000
20 00 6500
1D 95 6000
1B 40 5500
18 CA 5000
16 40 4500
13 DA 4000
11 75 3500
0F 20 3000
0C CF 2500
0A 50 2000
07 CF 1500
05 60 1000
02 CF 500
Можете натолкнуть на ход мысли?

Вот пример
byte D_1C4[8] = {0x0F,0x20,0x00,0x00,0x00,0x00,0x00,0x00}; тахометр покажет 3000оборотов

С приемлемой точностью X/1.3, где у X первым идет старший байт, а вторым - младший.

1 лайк

Блин, сегодня ещё было про “в чём разница между резистором и источником тока” и про “отрицательные (или тильдовые) пины”.

Нет, пятница, определённо удалась!

1 лайк

Видимо у меня мало знаний, я сейчас как только не пробывал делить на 1.3 не выходит.
можете чуть разжевать…
имеем переменную int Taxo в которой допустим 3500 (оборотов)
и есть две переменных типа byte TaxH TaxL
как расписать ардуине, что бы все стало на свои места?

@CivicEG , чего на профельных форумах не спросил? Почему если ардуино - значит «таблетка от всех болезней»?

ну так это видимо по мотивам применения П210Ш

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

И ты должен понять - без схемы и протокола, это просто цифры на экране. Тут больше профильный форум нужен, что бы понять что к чему и почему. А уже как правильные данные ловить/отправлять можно и на ардуино (если потянет).

1 лайк

набей в экселе табличку и посмотри формулу преобразования

Уже будет над чем говорить, согласен.

uint16_t b=Taxo/1.3;
TaxH=b >> 0x08;
TaxL=b;

Так как-то.

1 лайк

В общем послушал Вас и почитал форумы и нашел для себя такую формулу.
обороты5500*кеф1.27=6985 переводим Dec в Hex 1B49
показывает отлично ровно 5000!
но на 500 оборотах погрешность в 50. то есть стрелка по факту на 450 стоит
в принципе не страшно и так устроит, вопрос как из 6985 перевести в хекс и разбить на два байта

тебе жеж садман эти три строки написал уже

Да не надо Вам это, см. выше совет от @sadman41

Мужики, предлагаю внести в Думу законопроект о добавлении в уголовный кодекс статьи за вопросы о том как “Dec в Hex” переводить! Это же уже для здоровья опасно, даже в пятницу!

2 лайка

Сорян завтыкал, к дизайну форума не привык я.
все победа! работает четко после 2900 точка в точку, а на малых оборотах ну 50 не погрешность, скажем холостые прыгают 700-780 в лучшем случае)

uint16_t b=Taxo*1.275;
       TaxH=b >> 0x08;
       TaxL=b;
      D_1C4[0] = TaxH;
      D_1C4[1] = TaxL;

По нынешней моде просто +10% к прайсу.