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

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

Добавлено: 17 сен 2021, 14:44
Doctordy
Артур, действительно, можно на прямую к датчику подключиться. Да, не работает спидометр из-за того что умер блок абс. Изначально сигал идет в блок абс потом блок абс передает его в ЭБУ, а уже ЭБУ передает его на спидометр. Умерла электроника блока абс. хочу запустить сигнал в ЭБУ напрямую.

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

Добавлено: 14 дек 2021, 17:36
brat4791
Артур писал(а): 15 май 2021, 08:08 Наверно можно.
На яндексе нашел за 10 секунд
https://robotchip.ru/obzor-drayvera-sha ... lya-a4988/
Найти было не проблема,есть примеры как подключить ,проверить работу. все ни то
Проблема в скетче самом вот его в интернете и нет

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

Добавлено: 14 дек 2021, 22:34
Артур
Время не могу найти, на то чтобы свой код доделать, так что не обижайся, не помогу

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

Добавлено: 05 янв 2022, 07:45
Leha37
Здравствуйте! Залил скетч в ардуино UNO и на выходе спидометра и тахометра постоянно идет ШИМ, входа шунтировал на массу через резистор 1кОм - не помогает. При шунтировнии в мониторе ком порта вижу что сигнал спидометра и тахометра = 0. Как думаете в чем может быть косяк?

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

Добавлено: 05 янв 2022, 22:26
Артур
Скетч последний?
Или с первой страницы?

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

Добавлено: 06 янв 2022, 07:43
Leha37
Скетч залит последний, коэффициент при повороте потенциометра меняется (судя по монитору порта, на выходе из ардуино ничего не меняется), входа, входа D2, D3 сажал на массу-не помогает, на выходе спидометра и тахометра постоянно пачки импульсов по 19кГц. Залил скетч с первой страницы- на выходе тишина, подаю на вход сигнал ШИМ частотой 10Гц, на выходе появляется сигнал 9кГц.

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

Добавлено: 06 янв 2022, 14:38
Артур
Ерундень какая-то. Жаль я не рядом, тут удалённо не поможешь. Скетч я буду переписывать с нуля.

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

Добавлено: 26 июн 2022, 12:27
LexYea
Добрый день! Артур, хочу поинтересоваться по поводу обновлений: появилась новый вариант программы? Раз переписываете с нуля, полагаю, цель - применение иных алгоритмов основной задачи? Или оптимизация выполнения на ардуиновском МК?

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

Добавлено: 27 июн 2022, 16:09
Артур
Да, есть новый скетч, но пока не закончил, я временно забросил, некогда пока, да и интерес пока пропал. У меня на бусе прекрасно работает и старый скетч. Чуть лагает в районе 3500-4000, но я думаю это из-за неправильно выбранных резисторов.

Код значительно короче получается, но пока выкладывать нечего.

Учитывая то, что vagmaks выкладывал ссылку на готовый вариант фабрично изготовленного одноканального корректора сделанный не на микроконтроллере, а на какой-то микрухе, всего за 1000 руб, я как-то теперь вообще не особо вижу полезность дальнейшей разработки, если можно купить готовое и не замарачиваться ни с пайкой, ни с прошивкой.

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

Добавлено: 27 июн 2022, 22:27
vagmax
Так его ещё доработали ,под разные уровни сигнала.

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

Добавлено: 29 июн 2022, 12:03
daboom1807
vagmax, можно ссылку а то чет я порылся и ничего не нашел

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

Добавлено: 29 июн 2022, 15:56
Артур
https://microchip46.wixsite.com/dxo1/adapter-speed-v2
он уже 1800, подорожал

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

Добавлено: 21 июл 2022, 21:08
iliya808
Здравствуйте Артур. Я в ардуино новичок, но очень хочется разобраться. Не могли бы вы пояснить подробнее, как в вашем скетче определяется входящая скорость. Я так понимаю вот эта часть кода:

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

void speedometr() {                                       //измеряем частоту на входе спидометра по прерыванию
  if (!st) {
    micros_sp = micros();
  }
  else {
    sp = (600000 / (micros() - micros_sp));
  }
  st = !st;
  sz = 30;

Не могли бы вы закоментировать все строки. В особенности не понимаю что значит "st!=st"

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

Добавлено: 23 июл 2022, 10:58
Артур
переменная 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)

ПОКАЗАТЬ КОД КОРРЕКТОРА СПИДОМЕТРА

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

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(){                                          

}

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

Добавлено: 23 июл 2022, 20:11
Tchka.
А не хотите ли на Ардуино газ запилить? Ардуина+переменный ризистор в педаль+ серва от rc модели

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

Добавлено: 23 июл 2022, 23:31
Артур
И на этот случай у vagmaks есть готовое решение, не на ардуино. Электронный дросель, там уже это встроено, контроллер человек один делает

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

Добавлено: 24 июл 2022, 10:04
ksenon17
Артур писал(а): 23 июл 2022, 23:31 Электронный дросель, там уже это встроено
Артур,тут речь идет о карбуляторе с ТАЗика,который новый стОит меньше,чем этот электронный дроссель....а человеку надо решение дешевое,желательно на халяву.
Tchka. писал(а): 23 июл 2022, 20:11 А не хотите ли на Ардуино газ запилить? Ардуина+переменный ризистор в педаль+ серва от rc модели
китаезы давно уже запилили..причем по ценам от 50 рублей за штуку..и без всяких ардуин. :09:
https://aliexpress.ru/popular/servo-tester.html

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

Добавлено: 24 июл 2022, 14:23
Артур
Всё это проживет не дольше месяца. Уверен, что используя эти детали в машине, будь то сервопривод или тестер, он сдохнет быстро. Там всё пластиковое, да ещё и маленьких размеров, а зубчики у шестерен крохотные как в детской машинке.
Вообще хозяин барин, но я бы с привеликим удовольствием её из весты своей выкинул бы. Меня бесит, что ЭБУ сама решает на какой угол открыть заслонку. Постоянно получается, я хочу быстро стартануть на первой передачи, а она то ли зажигание заваливает, то ли заслонку не открывает, я педаль в пол держу, а она очень так плавненько набирает. Меня бесит.

Отправлено спустя 1 час 31 минуту 35 секунд:
ksenon17 писал(а): 24 июл 2022, 10:04 тут речь идет о карбуляторе с ТАЗика
кстати можно и на карб приделать, просто заслонку нужно будет распилить, оставив механизм и примастырить его к карбу.
а на ардуине делать с пластиковыми деталями это порнуха.
Стоит комплект я не помню, надо усточнить, но по моему около 20 тысяч.

Пользуйтесь тросом, он лучше.

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

Добавлено: 24 июл 2022, 17:18
ksenon17
А накуа в тазокарб вбухивать 20ку тока за электрозаслонку,мне непонятно :))))
да сопсно мне вообще непонятен смысл электрозаслонки в карбе :))))
это как телега с катализатором под днищем...вроде и пафосно для лохов,но по факту смысла в этом ноль... а так есть и сервы с бронзовыми шестернями(да сопсно можно изобразить и,как во всех тачках:нормальный редуктор и шаговый мотор),и резюк можно заменить сразу на эл. педаль....но почти на все Витины идеи самый первый вопрос,который возникает:ЗАЧЕМ?
Артур писал(а): 24 июл 2022, 15:55 Постоянно получается, я хочу быстро стартануть на первой передачи, а она то ли зажигание заваливает, то ли заслонку не открывает, я педаль в пол держу, а она очень так плавненько набирает
она за тебе ешо и об экологии думает постоянно :))))

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

Добавлено: 24 июл 2022, 17:40
Артур
ksenon17 писал(а): 24 июл 2022, 17:18 А накуа в тазокарб вбухивать 20ку
ну вот и я так тоже думаю

Отправлено спустя 5 минут 50 секунд:
ksenon17 писал(а): 24 июл 2022, 17:18 да сопсно мне вообще непонятен смысл электрозаслонки в карбе
а это я понять могу, трасса длинная. Тут типа тюнинг, хочется улучшить, чтобы педалька была как в новеньком мерседесе. А на поверку получается трос единственное что нормально работает если этот узел не колхоженный и смазанный