Корректор электронного (стрелочного) спидометра на ARDUINO
Корректор электронного (стрелочного) спидометра на ARDUINO
Артур, действительно, можно на прямую к датчику подключиться. Да, не работает спидометр из-за того что умер блок абс. Изначально сигал идет в блок абс потом блок абс передает его в ЭБУ, а уже ЭБУ передает его на спидометр. Умерла электроника блока абс. хочу запустить сигнал в ЭБУ напрямую.
Корректор электронного (стрелочного) спидометра на ARDUINO
Найти было не проблема,есть примеры как подключить ,проверить работу. все ни тоАртур писал(а): ↑15 май 2021, 08:08 Наверно можно.
На яндексе нашел за 10 секунд
https://robotchip.ru/obzor-drayvera-sha ... lya-a4988/
Проблема в скетче самом вот его в интернете и нет
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Время не могу найти, на то чтобы свой код доделать, так что не обижайся, не помогу
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Здравствуйте! Залил скетч в ардуино UNO и на выходе спидометра и тахометра постоянно идет ШИМ, входа шунтировал на массу через резистор 1кОм - не помогает. При шунтировнии в мониторе ком порта вижу что сигнал спидометра и тахометра = 0. Как думаете в чем может быть косяк?
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Скетч последний?
Или с первой страницы?
Или с первой страницы?
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Скетч залит последний, коэффициент при повороте потенциометра меняется (судя по монитору порта, на выходе из ардуино ничего не меняется), входа, входа D2, D3 сажал на массу-не помогает, на выходе спидометра и тахометра постоянно пачки импульсов по 19кГц. Залил скетч с первой страницы- на выходе тишина, подаю на вход сигнал ШИМ частотой 10Гц, на выходе появляется сигнал 9кГц.
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Ерундень какая-то. Жаль я не рядом, тут удалённо не поможешь. Скетч я буду переписывать с нуля.
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Добрый день! Артур, хочу поинтересоваться по поводу обновлений: появилась новый вариант программы? Раз переписываете с нуля, полагаю, цель - применение иных алгоритмов основной задачи? Или оптимизация выполнения на ардуиновском МК?
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Да, есть новый скетч, но пока не закончил, я временно забросил, некогда пока, да и интерес пока пропал. У меня на бусе прекрасно работает и старый скетч. Чуть лагает в районе 3500-4000, но я думаю это из-за неправильно выбранных резисторов.
Код значительно короче получается, но пока выкладывать нечего.
Учитывая то, что vagmaks выкладывал ссылку на готовый вариант фабрично изготовленного одноканального корректора сделанный не на микроконтроллере, а на какой-то микрухе, всего за 1000 руб, я как-то теперь вообще не особо вижу полезность дальнейшей разработки, если можно купить готовое и не замарачиваться ни с пайкой, ни с прошивкой.
Код значительно короче получается, но пока выкладывать нечего.
Учитывая то, что vagmaks выкладывал ссылку на готовый вариант фабрично изготовленного одноканального корректора сделанный не на микроконтроллере, а на какой-то микрухе, всего за 1000 руб, я как-то теперь вообще не особо вижу полезность дальнейшей разработки, если можно купить готовое и не замарачиваться ни с пайкой, ни с прошивкой.
8(928)376-99-75
- vagmax
- Сообщения: 3333
- Зарегистрирован: 11 фев 2014, 20:12
- Бус: vw T3
- Откуда: родина высоких гор и низких приор красавец пятигорск
Корректор электронного (стрелочного) спидометра на ARDUINO
Так его ещё доработали ,под разные уровни сигнала.
-
- Сообщения: 1
- Зарегистрирован: 22 май 2022, 12:51
- Бус: t4
Корректор электронного (стрелочного) спидометра на ARDUINO
vagmax, можно ссылку а то чет я порылся и ничего не нашел
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
https://microchip46.wixsite.com/dxo1/adapter-speed-v2
он уже 1800, подорожал
он уже 1800, подорожал
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Здравствуйте Артур. Я в ардуино новичок, но очень хочется разобраться. Не могли бы вы пояснить подробнее, как в вашем скетче определяется входящая скорость. Я так понимаю вот эта часть кода:
Не могли бы вы закоментировать все строки. В особенности не понимаю что значит "st!=st"
Код: Выделить всё
void speedometr() { //измеряем частоту на входе спидометра по прерыванию
if (!st) {
micros_sp = micros();
}
else {
sp = (600000 / (micros() - micros_sp));
}
st = !st;
sz = 30;
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
переменная st это тригер состояний, он имеет 2 значения true или false
void speedometr() {
if (!st) {
ЕСЛИ ОБРАТНОЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ st НЕ РАВНО TRUE
micros_sp = micros();
Записывает в переменную значение системного счётчика микросекунд
}
else {
ИНАЧЕ
sp = (600000 / (micros() - micros_sp));
( 600миллисекунд делим на значение системного счётчика времени на запись предыдущего значения), так находится скорость. Число 600 миллисекунд взята из чужого кода и равна примерному точному коэффициенту отношения времени периода к реальным километрам в час
}
st = !st; это всего лишь изменения состояния тригера с true на false и наоборот
sz = 30; // Я не помню точно зачем это применено, этот код чужой, но учитывая то что переменная sz в коде встречается один раз и она влияет на обнуление переменной sp, предположу что это защита от деления на ноль, если машина не двигается, то ардуино может выдать случайное большое число.
НИЖЕ Я ПРИВОЖУ НЕДОДЕЛАННЫЙ И НЕ ПРОТЕСТИРОВАННЫЙ НОВЫЙ, ЗНАЧИТЕЛЬНО УКОРОЧЕННЫЙ СКЕТЧ.
В нём применён совершенно другой простой способ вычисления входящей скорости, как я считаю более логичный.
Принцип основан на подсчёте количества входящих импульсов за определённый период времени (я выбрал от фонаря 100 милисекунд, можно играться с значениями). В коде реализован только корректор спидометра. Код генератора взят из старой версии кода.
Процедура обработки прерывания заменена всего на одну строчку кода:
void speedometr(){
spbuff=spbuff+1;
}
Счётчик которой сбрасывается на ноль каждые 100 миллисекунд (можно поменять на другое значение переменную timerate)
void speedometr() {
if (!st) {
ЕСЛИ ОБРАТНОЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ st НЕ РАВНО TRUE
micros_sp = micros();
Записывает в переменную значение системного счётчика микросекунд
}
else {
ИНАЧЕ
sp = (600000 / (micros() - micros_sp));
( 600миллисекунд делим на значение системного счётчика времени на запись предыдущего значения), так находится скорость. Число 600 миллисекунд взята из чужого кода и равна примерному точному коэффициенту отношения времени периода к реальным километрам в час
}
st = !st; это всего лишь изменения состояния тригера с true на false и наоборот
sz = 30; // Я не помню точно зачем это применено, этот код чужой, но учитывая то что переменная sz в коде встречается один раз и она влияет на обнуление переменной sp, предположу что это защита от деления на ноль, если машина не двигается, то ардуино может выдать случайное большое число.
НИЖЕ Я ПРИВОЖУ НЕДОДЕЛАННЫЙ И НЕ ПРОТЕСТИРОВАННЫЙ НОВЫЙ, ЗНАЧИТЕЛЬНО УКОРОЧЕННЫЙ СКЕТЧ.
В нём применён совершенно другой простой способ вычисления входящей скорости, как я считаю более логичный.
Принцип основан на подсчёте количества входящих импульсов за определённый период времени (я выбрал от фонаря 100 милисекунд, можно играться с значениями). В коде реализован только корректор спидометра. Код генератора взят из старой версии кода.
Процедура обработки прерывания заменена всего на одну строчку кода:
void speedometr(){
spbuff=spbuff+1;
}
Счётчик которой сбрасывается на ноль каждые 100 миллисекунд (можно поменять на другое значение переменную timerate)
ПОКАЗАТЬ КОД КОРРЕКТОРА СПИДОМЕТРА
Код: Выделить всё
unsigned long timerate=100;
unsigned long timing;
volatile unsigned int sptaho = 0;
volatile unsigned int spbuff = 0;
volatile unsigned int sp = 0;
double correction = 1;
int OUTSPEEDPIN=4;
//ГЕНЕРАТОР ИМПУЛЬСОВ СПИДОМЕТРА
unsigned long timing2;
unsigned long Period;
unsigned long Skvajnost;
bool Status=0;
void setup() {
attachInterrupt(1, speedometr, RISING);
attachInterrupt(0, tahometr, RISING);
pinMode(OUTSPEEDPIN, OUTPUT);
}
void loop() {
if (millis() - timing > timerate)
{
timing = millis();
work();
generate();
}
}
void work()
{
sp=spbuff;
spbuff=0;
}
void generate()
{
Period=timerate/sp*1000; //Чтобы узнать период 1 импульса 100 миллисекунд делим на количество импульсов пришедших -
// - за это время и умножить на 1000, так как дальнейшие вычисления идут в микросекундах
Skvajnost= Period/2 ;
if (Status==0) {
if ( (micros()-timing2)>= Skvajnost) {
timing2 = micros();
digitalWrite(OUTSPEEDPIN, HIGH);
Status=1;
}
}
if (Status==1) {
if ( (micros()-timing2)>= (Period-Skvajnost) ){
timing2 = micros();
digitalWrite(OUTSPEEDPIN, LOW);
Status=0;
}
}
}
void speedometr(){
spbuff=spbuff+1;
}
void tahometr(){
}
8(928)376-99-75
- Tchka.
- Сообщения: 1148
- Зарегистрирован: 31 янв 2013, 07:40
- Бус: VW T3 1986 DF1.9 грузопассажир
- Откуда: Моск. обл. Томилино
Корректор электронного (стрелочного) спидометра на ARDUINO
А не хотите ли на Ардуино газ запилить? Ардуина+переменный ризистор в педаль+ серва от rc модели
89296423387 Виктор
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
И на этот случай у vagmaks есть готовое решение, не на ардуино. Электронный дросель, там уже это встроено, контроллер человек один делает
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
Артур,тут речь идет о карбуляторе с ТАЗика,который новый стОит меньше,чем этот электронный дроссель....а человеку надо решение дешевое,желательно на халяву.
китаезы давно уже запилили..причем по ценам от 50 рублей за штуку..и без всяких ардуин.
https://aliexpress.ru/popular/servo-tester.html
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
Всё это проживет не дольше месяца. Уверен, что используя эти детали в машине, будь то сервопривод или тестер, он сдохнет быстро. Там всё пластиковое, да ещё и маленьких размеров, а зубчики у шестерен крохотные как в детской машинке.
Вообще хозяин барин, но я бы с привеликим удовольствием её из весты своей выкинул бы. Меня бесит, что ЭБУ сама решает на какой угол открыть заслонку. Постоянно получается, я хочу быстро стартануть на первой передачи, а она то ли зажигание заваливает, то ли заслонку не открывает, я педаль в пол держу, а она очень так плавненько набирает. Меня бесит.
Отправлено спустя 1 час 31 минуту 35 секунд:
а на ардуине делать с пластиковыми деталями это порнуха.
Стоит комплект я не помню, надо усточнить, но по моему около 20 тысяч.
Пользуйтесь тросом, он лучше.
Вообще хозяин барин, но я бы с привеликим удовольствием её из весты своей выкинул бы. Меня бесит, что ЭБУ сама решает на какой угол открыть заслонку. Постоянно получается, я хочу быстро стартануть на первой передачи, а она то ли зажигание заваливает, то ли заслонку не открывает, я педаль в пол держу, а она очень так плавненько набирает. Меня бесит.
Отправлено спустя 1 час 31 минуту 35 секунд:
кстати можно и на карб приделать, просто заслонку нужно будет распилить, оставив механизм и примастырить его к карбу.
а на ардуине делать с пластиковыми деталями это порнуха.
Стоит комплект я не помню, надо усточнить, но по моему около 20 тысяч.
Пользуйтесь тросом, он лучше.
8(928)376-99-75
Корректор электронного (стрелочного) спидометра на ARDUINO
А накуа в тазокарб вбухивать 20ку тока за электрозаслонку,мне непонятно )))
да сопсно мне вообще непонятен смысл электрозаслонки в карбе )))
это как телега с катализатором под днищем...вроде и пафосно для лохов,но по факту смысла в этом ноль... а так есть и сервы с бронзовыми шестернями(да сопсно можно изобразить и,как во всех тачках:нормальный редуктор и шаговый мотор),и резюк можно заменить сразу на эл. педаль....но почти на все Витины идеи самый первый вопрос,который возникает:ЗАЧЕМ?
да сопсно мне вообще непонятен смысл электрозаслонки в карбе )))
это как телега с катализатором под днищем...вроде и пафосно для лохов,но по факту смысла в этом ноль... а так есть и сервы с бронзовыми шестернями(да сопсно можно изобразить и,как во всех тачках:нормальный редуктор и шаговый мотор),и резюк можно заменить сразу на эл. педаль....но почти на все Витины идеи самый первый вопрос,который возникает:ЗАЧЕМ?
она за тебе ешо и об экологии думает постоянно )))
- Артур
- Друг клуба
- Сообщения: 1624
- Зарегистрирован: 12 ноя 2009, 22:38
- Бус: T3 2.8 VR6
- Откуда: Ессентуки
Корректор электронного (стрелочного) спидометра на ARDUINO
ну вот и я так тоже думаю
Отправлено спустя 5 минут 50 секунд:
а это я понять могу, трасса длинная. Тут типа тюнинг, хочется улучшить, чтобы педалька была как в новеньком мерседесе. А на поверку получается трос единственное что нормально работает если этот узел не колхоженный и смазанный
8(928)376-99-75