Корректировка спидометра, При замене ГП, коробки и т.д. и т.п. |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
Корректировка спидометра, При замене ГП, коробки и т.д. и т.п. |
![]() ![]()
Сообщение
#1
|
||
![]() Вставить ник ![]() Группа: Пользователи Сообщений: 91 Регистрация: 11.4.2015 Из: Tallinn, Estonia Пользователь №: 9 797 Авто:JZA80 2JZ-GTE+W58 ![]() |
Было несколько тем "как поправить?". Собственно, решение было либо "устройство за 100 еврорублей", либо ничего. Собрал я корректировщик, выложу схему и прошивку, может кому пригодится.
Само устройство делает 2 вещи: 1. меняет частоту сигнала на прибоку от датчика скорости на коробке. 2. убирает отсечку по скорости, приборка и мозг больше не видят скорость выше 180км/ч. Код самой прошивки для среды Arduino: Код //==========INPUT============================
bool state = HIGH; bool sig = HIGH; unsigned long time_IN_LAST=0; unsigned long time_IN_NOW=0; //unsigned long timeMID2=4130;//4920 * 0.84 = 4130 micros delay in 180km/h unsigned long timeMID=500000; //=====EXEPTIOT=============== unsigned long micros_EXCEPTION=10000000; unsigned long micros_EXCEPTION2=4294000000; //==OUT=========================================================================== ========= unsigned long time_OUT_NOW=0; unsigned long time_OUT_LAST=0; bool sigOUT=LOW; void setup() { // Serial.begin(115200); pinMode(4, OUTPUT); pinMode(2, INPUT); delay(500); sig=digitalRead(2); state=sig; } void loop() { //======INPUT=================== sig=digitalRead(2); if(state!=sig) { time_IN_NOW=micros(); timeMID=time_IN_NOW-time_IN_LAST; if(timeMID<4920)timeMID=4920; //speed limit time_IN_LAST=time_IN_NOW; state=sig; // Serial.print("IN:"); // Serial.println(timeMID); } //========OUT============ time_OUT_NOW=micros(); if(time_OUT_NOW<micros_EXCEPTION&&time_OUT_LAST>micros_EXCEPTION2)time_OUT_LAST=0; if(time_OUT_NOW>time_OUT_LAST+timeMID*0.84) //0.84 correction in % { digitalWrite(4, sigOUT); sigOUT = !sigOUT; // Serial.print("OUT:"); // Serial.println(time_OUT_LAST-time_OUT_NOW); time_OUT_LAST=time_OUT_NOW; } } |
|
|
||
![]()
Сообщение
#2
|
|
![]() Вставить ник Суправод ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активные пользователи Сообщений: 2 492 Регистрация: 4.1.2007 Из: Москва Пользователь №: 1 208 Авто:Lexus is 200, Supra 2002 2JZ-GTE vvt-i Getrag v160 ![]() |
Спасибо большое.
Тему в FAQ -------------------- Рожденный ползать, уйди со взлетной полосы! Первый дрифт,это как первый раз с женщиной. И хочешь,и не умеешь! "А безопасный дрифт - как безопасный секс. Тупо и скучно." © Bakki™ но когда у тебя будет около стоковая турбо машина без каких либо изысков, просто в хорошем состоянии и с ценой более миллиона, ты точно подумаешь "надо было сразу купить..." "AlexXXL82, запомни на будущее, сейчас нормальную бабу найти гораздо легче, чем нормальную Супру. Поэтому выбирать из них двоих надо всегда Супру." rom@888 © |
|
|
![]()
Сообщение
#3
|
|
![]() Вставить ник ![]() Группа: Пользователи Сообщений: 91 Регистрация: 11.4.2015 Из: Tallinn, Estonia Пользователь №: 9 797 Авто:JZA80 2JZ-GTE+W58 ![]() |
Небольшое пояснение:
Строка: if(time_OUT_NOW>time_OUT_LAST+timeMID*0.84) 0,84 - это коэффициент частоты сигнала. В данном случае подбирается вручную на машине(так проще, чем считать зубы пар и датчика), примерную погрешность мы уже знаем. Если реальная скорость больше, чем на спидометре, то X<1. Если реальная скорость машины меньше, чем показывает спидометр, то X>1. Строка: //unsigned long timeMID2=4130 Сама эта переменная не используется. число 4130 - интервал в микросекундах между сменой знака сигнала на приборку при 180км/ч. То есть реальная частота импульсов 1/0,008260=~120 полных импульсов в секунду. Строка: if(timeMID<4920)timeMID=4920; Эта строка убирает отсечку по скорости. Стрелка зависнет около 180км/ч, машина продолжит разгоняться. Число 4920 это 4130/0,84. То есть 4130 надо разделить на коэффициент частоты сигнала. В данный момент устройство засунул в свою машину, коррекция работает исправно, отсечку по скорости не проверял. Если отсечка не пропадет, то надо вместо 4130 ставить 4140, 4150 и т.д. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 2.5.2025, 15:41 |