Страница 8 из 9

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 24 июл 2022, 17:55
ksenon17
ну так хочешь туненх,сделай подвесную педаль. но все равно на том же тросе :)) я за 11 лет один раз менял трос....и тот тупо перетерся и лопнул... и еси трос лопнул,то можно на веревке ехать....а чо будешь делать,если навернеся педаль,электроника или серва? все,ждать 12 часов не надо,твоя прекрасная карета превращается в тыкву :rolf:

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 25 июл 2022, 11:54
ksenon17
ну так если все твои идеи такие золотые,вот сам их и воплощай :lol: бери ардуину,серву от rc, переменный резистор. и прикручивай все это к своему карбу :09:

Отправлено спустя 3 минуты 30 секунд:
и таки да....можно еще сравнить с идеей Артура..
выложи потом скетч,чертежи деталек,в отдельной теме...
и сравним,как часто и ЧТО там будут пЕсать по поводу твоего "творчества". более наглядного способа сравнения идей просто не придумать. тем более,что написать скетч под эту задачу даже мне,ни разу не программеру,хватит минут 30(дольше искать нужную библиотеку под серву,чем код из примера подогнать под свои хотелки). начертить кронштейн и тягу надо еще неск. минут....

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 12:23
Артур
vagmax писал(а): 25 июл 2022, 20:30 ни фигасе это где такое?
А я не помню сколько ты мне говорил? Ты мне давно фотки присылал и говорил сколько стоит контроллер.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 13:24
vagmax
4500 контролер.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 15:50
Артур
Это контроллер, к нему проводка, педалька, дроссель...
Наверно тысяч на 15 набежит

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 17:55
ksenon17
Давайе не будем мучать Виктора,бабло ему жгет ляжку наверно. Витя,эспишали фор ю замтили уже готовый девайс,всего 4500. когда мы увидим его у тебя в буcе? :)))
http://www.turbofactory.ru/egaz-controller/

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 18:18
Артур
Это для января 5.1, на карб вообще не покатит

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 18:54
ksenon17
Артур,ты не дочитал до конца страницы....это можно использовать и без января....правда все равно нужны эл.педаль и егаз :lol:

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 27 июл 2022, 23:33
Артур
Да, точно. Не дочитал.
Теперь дочитал.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 02 ноя 2022, 19:19
Артур
НОВЫЙ ЭКСПЕРИМЕНТАЛЬНЫЙ КОД

Код: Выделить всё

unsigned long              timerate=100;
unsigned long             			bufftime;

volatile unsigned int     			th_buff = 0;
volatile unsigned int     			th = 0;
double                    				th_correction = 1;
int                      				th_pin=7;

volatile unsigned int    			sp_buff = 0;
volatile unsigned int     			sp = 0;
double                    				sp_correction = 1;
int                       				sp_pin=4;

unsigned long             			sp_bufftime;
unsigned long             			sp_pulse; 
bool                      				sp_pulse_on=false;

unsigned long             			th_bufftime;
unsigned long             			th_pulse; 
bool                      				th_pulse_on=false;


void setup() 
{
attachInterrupt(1, speedometr, RISING);                    
attachInterrupt(0, tahometr, RISING);
pinMode(th_pin, OUTPUT);
pinMode(sp_pin, OUTPUT);
}
void speedometr(){ sp_buff++; }
void tahometr(){ th_buff++; }
void loop(){ counter(); sp_generate(); th_generate(); }

void counter()
{
  if (millis() - bufftime > timerate)
  { 
    bufftime = millis();
    sp=sp_buff;
    sp_buff=0;
    th=th_buff;
    th_buff=0;
  }
}

void sp_generate()
{
  sp_pulse=timerate/sp*1000*sp_correction/2;
  if ((micros()-sp_bufftime)>= sp_pulse) 
  {
    sp_bufftime = micros();
    if(sp_pulse_on){ digitalWrite(sp_pin, HIGH);  sp_pulse_on=false;}
    else{ digitalWrite(sp_pin, LOW);  sp_pulse_on=true;}
  }
}

void th_generate()
{
  th_pulse=timerate/th*1000*th_correction/2;
  if ((micros()-th_bufftime)>= th_pulse) 
  {
    th_bufftime = micros();
    if(th_pulse_on){ digitalWrite(th_pin, HIGH);  th_pulse_on=false;}
    else{ digitalWrite(th_pin, LOW);  th_pulse_on=true;}
  }
}

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

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

Новый принцип работы строится в разбиении программы на независимые модули.
Прерывания срабатывая повышают каждая свой счётчик на единицу.
1 модуль - счётчик. В главной функции loop запускается функция counter, которая снимает и обнуляет показания счётчиков каждые 100 милисекунд (за этот период отвечает переменная timerate).
2 и 3 модуль генераторы импульса тахометра и спидометра.

Скважность импульса=Ширина импульса /2
Ширина импульса = Время снятия показаний счётчиков (переменная timerate) РАЗДЕЛИТЬ НА кол-во импульсов по счётчику УМНОЖИТЬ НА 1000 (конвертация в микросекунды) УМНОЖИТЬ НА поправку.

sp_pulse=timerate/sp*1000*sp_correction/2;

Вычислив длительность импульса передаю это значение которая сначала включит импульс digitalWrite(sp_pin, HIGH); на эту длительность, а затем выключит digitalWrite(sp_pin, LOW);

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 05 ноя 2022, 00:15
Gdreamer
Может кому пригодится, как мне )))
Адаптировал предпоследний скетч с ардуино на esp32.
Вход сигнала с датчика скорости на 12 пин.
Вход сигнала с тахометра на 13 пин.
Подтягивающие резисторы на 10к к каждому этому пину и на минус.
Выход сигнала скорости с 32 пина, тах с 33 пина.
Транзисторы не ставил, только оптрон.
Сигнал с датчика скорости через резистор на 240 Ом на 1 ногу оптрона, минус с автомобиля на 2 ногу.
На выходе оптрона 3 нога на 12 пин esp32, на 4 контакт подаем 3.3в с esp32.

Важно! У меня датчик скорости не запускался пока между не соединил выход датчика с + через резистор на 3.3кОм (пишут что можно ставить от 3 до 10кОм)
Пробовал с датчиком скорости от пассат б5, с датчиком на трос от ваз 2108-2115. Работают одинаково чётко.
korrektorESP32.zip

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 13 фев 2023, 08:15
lugovskoj
Здравствуйте! можно скетч ардуины которая выступает в роли датчика скорости (генератор импульсов
)

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 13 фев 2023, 23:15
Артур
Тот же самый скетч. Только вверху где переменная куда пишется показания с входного пина стираеш после знака равно и приравниваешь то количество импульсов которое хочешь чтобы было на выходе

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 13 фев 2023, 23:24
Konstantin_s
Спидометр похож на УАЗовский? Его можно аккуратно в щиток вставить? Или как сделано?

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 14 фев 2023, 05:20
lugovskoj
Ткните носом - какой параметр не могу понять

volatile unsigned long micros_sp = 0;
volatile byte sz = 0; //счетчик обнуления
volatile unsigned int sp = 10; //скорость

volatile unsigned int InputHz = 0;
volatile unsigned int OutputHz = 0;
double popravka = 0;
volatile boolean st = false; //триггер
unsigned long timing;
unsigned long timing2;
int Vixod=4;
#define PIN_POT A0

unsigned long Period;
unsigned long sp2;
unsigned long Skvajnost;
bool Status=0;
int rotat;

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 14 фев 2023, 18:04
Артур
Это у тебя старый скетч, бери другой самый последний.
В функции counter()
Строку
sp=sp_buff;
Меняй на sp=число;

Код: Выделить всё

unsigned long            	timerate=100;
unsigned long            	bufftime;

volatile unsigned int     	th_buff = 0;
volatile unsigned int     	th = 0;
double                    	th_correction = 1;
int                       		th_pin=7;

volatile unsigned int     	sp_buff = 0;
volatile unsigned int     	sp = 0;
double                    	sp_correction = 1;
int                       		sp_pin=4;

unsigned long             	sp_bufftime;
unsigned long             	sp_pulse; 
bool                      		sp_pulse_on=false;

unsigned long             	th_bufftime;
unsigned long             	th_pulse; 
bool                      		th_pulse_on=false;


void setup() 
{
attachInterrupt(1, speedometr, RISING);                    
attachInterrupt(0, tahometr, RISING);
pinMode(th_pin, OUTPUT);
pinMode(sp_pin, OUTPUT);
}
void speedometr(){ sp_buff++; }
void tahometr(){ th_buff++; }
void loop(){ counter(); sp_generate(); th_generate(); }

void counter()
{
  if (millis() - bufftime > timerate)
  { 
    bufftime = millis();
    sp=sp_buff;
    sp_buff=0;
    th=th_buff;
    th_buff=0;
  }
}

void sp_generate()
{
  sp_pulse=timerate/sp*1000*sp_correction/2;
  if ((micros()-sp_bufftime)>= sp_pulse) 
  {
    sp_bufftime = micros();
    if(sp_pulse_on){ digitalWrite(sp_pin, HIGH);  sp_pulse_on=false;}
    else{ digitalWrite(sp_pin, LOW);  sp_pulse_on=true;}
  }
}

void th_generate()
{
  th_pulse=timerate/th*1000*th_correction/2;
  if ((micros()-th_bufftime)>= th_pulse) 
  {
    th_bufftime = micros();
    if(th_pulse_on){ digitalWrite(th_pin, HIGH);  th_pulse_on=false;}
    else{ digitalWrite(th_pin, LOW);  th_pulse_on=true;}
  }
}
Отправлено спустя 7 минут 37 секунд:
В старом
void loop(){

if (millis() - timing > 50)
{
timing = millis();
if (sz != 0){sz--;}else{sp = 0;};
InputHz=sp;

sp меняешь на число

Отправлено спустя 5 минут 49 секунд:
Konstantin_s писал(а): 13 фев 2023, 23:24 Спидометр похож на УАЗовский? Его можно аккуратно в щиток вставить? Или как сделано?
Уазовский.
Я не встраивал ничего. Я целиком сменил приборку.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 08 мар 2023, 19:43
Apelcin4ik
Здравствуйте, подскажите пожалуйста. Машина Toyota Mark II подключил корректор по первой схеме, пробовал и с подтяжкой через резистор. Проблема такова при включении света будь то габарит или ближний стрелка подскакивает примерно до 40-60, а иногда и зашкаливает за 180 и там зависает пока руками ее обратно не вернешь. Пробовал подключать без преобразователя напрямую на 12 вольт тоже самое, сейчас работает через dc-dc преобразователь стоит конденцатор и диод. такое ощущение что на выходе на сам спидометр ловится помеха, т.к через монитор порта не видно чтобы шел входящий сигнал. При этом корректор исправно работает и показывает правильную скорость. Подскажите как можно попробовать исправить это, буду очень благодарен.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 09 мар 2023, 22:51
Артур
Видимо да, ловит помеху. У меня при старте двигателя и когда вентилятор включается тоже самое. Этот вопрос лучше специалистам в радиоэлектронике задать. Во всяком случае у меня эти явления кратковременные и в целом на работу не влияют. Может осцилограф подключить, чтобы выловить.
Я схему делал не опираясь на расчёты, а составлял из кусков разных схем типовых включений элементов, т.к. в схемотехнике я слаб. Если бы произвести расчёт номиналов резисторов. И может модифицировать схему какими нибудь фильтрами, но это уже не ко мне.

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 23 мар 2023, 22:58
brat4791
:punk:
Всё возможные статьи перечитал но так и не нашёл как управлять (скейч) А4988 в качестве спижометр, тахометр

Корректор электронного (стрелочного) спидометра на ARDUINO

Добавлено: 26 апр 2023, 08:45
lismus
Всем доброго дня. Подскажите нужно ли что то менять либо подстраивать в последнем коде или можно пробовать заливать и использовать как есть?