Корректор электронного (стрелочного) спидометра на ARDUINO
Корректор электронного (стрелочного) спидометра на ARDUINO
ну так хочешь туненх,сделай подвесную педаль. но все равно на том же тросе ) я за 11 лет один раз менял трос....и тот тупо перетерся и лопнул... и еси трос лопнул,то можно на веревке ехать....а чо будешь делать,если навернеся педаль,электроника или серва? все,ждать 12 часов не надо,твоя прекрасная карета превращается в тыкву
Корректор электронного (стрелочного) спидометра на ARDUINO
ну так если все твои идеи такие золотые,вот сам их и воплощай бери ардуину,серву от rc, переменный резистор. и прикручивай все это к своему карбу
Отправлено спустя 3 минуты 30 секунд:
и таки да....можно еще сравнить с идеей Артура..
выложи потом скетч,чертежи деталек,в отдельной теме...
и сравним,как часто и ЧТО там будут пЕсать по поводу твоего "творчества". более наглядного способа сравнения идей просто не придумать. тем более,что написать скетч под эту задачу даже мне,ни разу не программеру,хватит минут 30(дольше искать нужную библиотеку под серву,чем код из примера подогнать под свои хотелки). начертить кронштейн и тягу надо еще неск. минут....
Отправлено спустя 3 минуты 30 секунд:
и таки да....можно еще сравнить с идеей Артура..
выложи потом скетч,чертежи деталек,в отдельной теме...
и сравним,как часто и ЧТО там будут пЕсать по поводу твоего "творчества". более наглядного способа сравнения идей просто не придумать. тем более,что написать скетч под эту задачу даже мне,ни разу не программеру,хватит минут 30(дольше искать нужную библиотеку под серву,чем код из примера подогнать под свои хотелки). начертить кронштейн и тягу надо еще неск. минут....
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
А я не помню сколько ты мне говорил? Ты мне давно фотки присылал и говорил сколько стоит контроллер.
8(928)376-99-75
- vagmax
- Сообщения: 3333
- Зарегистрирован: 11 фев 2014, 20:12
- Бус: vw T3
- Откуда: родина высоких гор и низких приор красавец пятигорск
Корректор электронного (стрелочного) спидометра на ARDUINO
4500 контролер.
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Это контроллер, к нему проводка, педалька, дроссель...
Наверно тысяч на 15 набежит
Наверно тысяч на 15 набежит
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Давайе не будем мучать Виктора,бабло ему жгет ляжку наверно. Витя,эспишали фор ю замтили уже готовый девайс,всего 4500. когда мы увидим его у тебя в буcе? ))
http://www.turbofactory.ru/egaz-controller/
http://www.turbofactory.ru/egaz-controller/
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Это для января 5.1, на карб вообще не покатит
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Артур,ты не дочитал до конца страницы....это можно использовать и без января....правда все равно нужны эл.педаль и егаз
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Да, точно. Не дочитал.
Теперь дочитал.
Теперь дочитал.
8(928)376-99-75
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
НОВЫЙ ЭКСПЕРИМЕНТАЛЬНЫЙ КОД
Код: Выделить всё
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);
У вас нет необходимых прав для просмотра вложений в этом сообщении.
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Может кому пригодится, как мне )))
Адаптировал предпоследний скетч с ардуино на esp32.
Вход сигнала с датчика скорости на 12 пин.
Вход сигнала с тахометра на 13 пин.
Подтягивающие резисторы на 10к к каждому этому пину и на минус.
Выход сигнала скорости с 32 пина, тах с 33 пина.
Транзисторы не ставил, только оптрон.
Сигнал с датчика скорости через резистор на 240 Ом на 1 ногу оптрона, минус с автомобиля на 2 ногу.
На выходе оптрона 3 нога на 12 пин esp32, на 4 контакт подаем 3.3в с esp32.
Важно! У меня датчик скорости не запускался пока между не соединил выход датчика с + через резистор на 3.3кОм (пишут что можно ставить от 3 до 10кОм)
Пробовал с датчиком скорости от пассат б5, с датчиком на трос от ваз 2108-2115. Работают одинаково чётко.
Адаптировал предпоследний скетч с ардуино на esp32.
Вход сигнала с датчика скорости на 12 пин.
Вход сигнала с тахометра на 13 пин.
Подтягивающие резисторы на 10к к каждому этому пину и на минус.
Выход сигнала скорости с 32 пина, тах с 33 пина.
Транзисторы не ставил, только оптрон.
Сигнал с датчика скорости через резистор на 240 Ом на 1 ногу оптрона, минус с автомобиля на 2 ногу.
На выходе оптрона 3 нога на 12 пин esp32, на 4 контакт подаем 3.3в с esp32.
Важно! У меня датчик скорости не запускался пока между не соединил выход датчика с + через резистор на 3.3кОм (пишут что можно ставить от 3 до 10кОм)
Пробовал с датчиком скорости от пассат б5, с датчиком на трос от ваз 2108-2115. Работают одинаково чётко.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Gdreamer 05 ноя 2022, 00:23, всего редактировалось 1 раз.
Корректор электронного (стрелочного) спидометра на ARDUINO
Здравствуйте! можно скетч ардуины которая выступает в роли датчика скорости (генератор импульсов
)
)
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Тот же самый скетч. Только вверху где переменная куда пишется показания с входного пина стираеш после знака равно и приравниваешь то количество импульсов которое хочешь чтобы было на выходе
8(928)376-99-75
-
- Сообщения: 13
- Зарегистрирован: 20 фев 2022, 18:07
- Бус: t3
Корректор электронного (стрелочного) спидометра на ARDUINO
Спидометр похож на УАЗовский? Его можно аккуратно в щиток вставить? Или как сделано?
+792I577б78Ч
Корректор электронного (стрелочного) спидометра на ARDUINO
Ткните носом - какой параметр не могу понять
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;
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;
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Это у тебя старый скетч, бери другой самый последний.
В функции counter()
Строку
sp=sp_buff;
Меняй на sp=число;
Отправлено спустя 7 минут 37 секунд:
В старом
void loop(){
if (millis() - timing > 50)
{
timing = millis();
if (sz != 0){sz--;}else{sp = 0;};
InputHz=sp;
sp меняешь на число
Отправлено спустя 5 минут 49 секунд:
Я не встраивал ничего. Я целиком сменил приборку.
В функции 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;}
}
}
В старом
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 Спидометр похож на УАЗовский? Его можно аккуратно в щиток вставить? Или как сделано?
Я не встраивал ничего. Я целиком сменил приборку.
8(928)376-99-75
-
- Сообщения: 1
- Зарегистрирован: 01 окт 2022, 10:13
- Бус: Toyota Mark II (90)
Корректор электронного (стрелочного) спидометра на ARDUINO
Здравствуйте, подскажите пожалуйста. Машина Toyota Mark II подключил корректор по первой схеме, пробовал и с подтяжкой через резистор. Проблема такова при включении света будь то габарит или ближний стрелка подскакивает примерно до 40-60, а иногда и зашкаливает за 180 и там зависает пока руками ее обратно не вернешь. Пробовал подключать без преобразователя напрямую на 12 вольт тоже самое, сейчас работает через dc-dc преобразователь стоит конденцатор и диод. такое ощущение что на выходе на сам спидометр ловится помеха, т.к через монитор порта не видно чтобы шел входящий сигнал. При этом корректор исправно работает и показывает правильную скорость. Подскажите как можно попробовать исправить это, буду очень благодарен.
Последний раз редактировалось Apelcin4ik 08 мар 2023, 20:05, всего редактировалось 1 раз.
- Артур
- Друг клуба
- Сообщения: 1622
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Видимо да, ловит помеху. У меня при старте двигателя и когда вентилятор включается тоже самое. Этот вопрос лучше специалистам в радиоэлектронике задать. Во всяком случае у меня эти явления кратковременные и в целом на работу не влияют. Может осцилограф подключить, чтобы выловить.
Я схему делал не опираясь на расчёты, а составлял из кусков разных схем типовых включений элементов, т.к. в схемотехнике я слаб. Если бы произвести расчёт номиналов резисторов. И может модифицировать схему какими нибудь фильтрами, но это уже не ко мне.
Я схему делал не опираясь на расчёты, а составлял из кусков разных схем типовых включений элементов, т.к. в схемотехнике я слаб. Если бы произвести расчёт номиналов резисторов. И может модифицировать схему какими нибудь фильтрами, но это уже не ко мне.
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Всё возможные статьи перечитал но так и не нашёл как управлять (скейч) А4988 в качестве спижометр, тахометр
Корректор электронного (стрелочного) спидометра на ARDUINO
Всем доброго дня. Подскажите нужно ли что то менять либо подстраивать в последнем коде или можно пробовать заливать и использовать как есть?