Страница 7 из 9
Корректор электронного (стрелочного) спидометра на ARDUINO
Добавлено: 17 сен 2021, 14:44
Doctordy
Артур, действительно, можно на прямую к датчику подключиться. Да, не работает спидометр из-за того что умер блок абс. Изначально сигал идет в блок абс потом блок абс передает его в ЭБУ, а уже ЭБУ передает его на спидометр. Умерла электроника блока абс. хочу запустить сигнал в ЭБУ напрямую.
Корректор электронного (стрелочного) спидометра на ARDUINO
Добавлено: 14 дек 2021, 17:36
brat4791
Найти было не проблема,есть примеры как подключить ,проверить работу. все ни то
Проблема в скетче самом вот его в интернете и нет
Корректор электронного (стрелочного) спидометра на 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
Артур
Корректор электронного (стрелочного) спидометра на 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 рублей за штуку..и без всяких ардуин.
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
да сопсно мне вообще непонятен смысл электрозаслонки в карбе
а это я понять могу, трасса длинная. Тут типа тюнинг, хочется улучшить, чтобы педалька была как в новеньком мерседесе. А на поверку получается трос единственное что нормально работает если этот узел не колхоженный и смазанный