Перейти к содержанию
Ситроен Клуб

Создание системы предупреждения о непредвиденном опускании машины.


Рекомендуемые сообщения

В данном разделе опишу метод борьбы с глупостью или тупостью французских програмистов, которые программировали блок BHI.
С чего все началось: Заехал я как-то на паркинг на 3-й уровень, походили по магазину вернулись, сели в машину и поехали.
На спуске уже на 1-м уровне, вдруг сильный грохот и удар. Остановился выяснилось: во время движения умер предохранитель насоса( а через день и сам насос) и задняя ось опустилась во время движения.

Так вот меня поразило, что никакой ошибки выдано не было!!! Т.Е. для машины все нормально было что подвеска не на уровне. А как заканчивается омыватель дак орет во всю!!!!
После матов на программистов, и перестановки предохранителя от вентилятора на место сгоревшего(MF1 - предохранитель вентилятора, MF8 - предохранитель для насоса подвески), как-то доехать надо, то. Слава богу, что у нас нет пробок и была уже весна, поэтому вентилятором пожертвовал. Хотя позже выяснил, что можно было брать MF6 - обогрев сидений.

После починки глушака, замена гофры и банки(так как все сразу оторвало) задался вопросом а что за хрень??? неужели программеры так на прожили, что жидкость в бачке омывателя важней уровня кузова!!!!!
Провел пару опытов, отключил сигнал управления мотором, завел машину и опустил в положение STOP, а затем выбрал нормальное положение(только машина естественно не поднялась, так как насос отключен) и поехал.
10км/ч, 20км/ч,40км/ч - молчит комп. От думаю нехорошие люди программисты!!! это ж надо было самое первое, что прожить!!!

Решено было сделать простенькую коробочку чтобы она в параллель с BHI контролировала подвеску и если обнаружен низкий уровень - давала сигнал тревоги!!
Дырок никаких в торпеде сверлить не хотелось, и вести провода внутрь салона тоже не хотелось. Было принято решение установить маленькую коробочку между фарой и самим насосом, как раз там много места.

Начался поиск датчика к которому я могу подпаяться, чтобы мое устройство информировало меня если что. Первый кандидат - датчик износа тормозных колодок. Но как оказалось тут тоже косяк, комп контролирует сигнал ТОЛЬКО в момент включения зажигания. Во время работы двигателя как оказалось замыкай ни замыкай результат - 0. Молчит!!!
Следующий на очереди датчик давления масла - на нем решено было остановится. В результате экспериментов так же выявлен ОПАСНЫЙ КОСЯК ПО. Дело в том, что датчик размыкает цепь от массы, когда давление есть в системе, иначе он замкнут.
Вот тут обнаружилось, что если провод к этому датчика поврежден, то сигнал все время будет - якобы у вас все ок с маслом!!! А могли бы до включения зажигания проверить есть ли земля или нет!!!! Но этого не сделано!!

Теперь о самой доработке.
Устройство решено было сделать на основе Arduino NAno - так как не хотелось возни с компараторами, а так же еще потому, что после старта двигателя мое устройство как-то должно сказать мне, что оно живо!! Это все легко сделать на Arduino.

Выяснил тип датчиков в подвеске, они оказались на основе магнитного эффекта, а не переменные резисторы, как я думал с самого начала!!!
Датчик выдает сигнал от 0.4 до 4.5 В на выходе в зависимости от угла. Питается датчик 5В от BHI. Поскольку выходное сопротивление датчика низкое, то к сигналу смело можно накидывать в параллель нагрузку до 10 кОм.

Результаты измерений напряжения от датчиков в зависимости от положения.
Позиция перед зад
STOP - 1.75В 1.25В
NORMAL - 2.6В 2.5В

Установка девайса. Для начало надо врезаться в штатную проводку - тут каждый делает как хочет, я покупал скотч локи LT-215 и врезался в проводку. Всего надо 5 штук.
Питание, сигнал перед, сигнал зад, земля, датчик давления масла.

Снимаем фишку с блока BHI и разматываем изоленту со жгута проводов - это все немного неудобно из-за фары, но у меня руки маленькие поэтому фару не снимал, у кого большие руки лучше снять фару.
Наша цель провода под номером 7724 - сигнал перед,7725 - сигнал зад, 7726 - питание +5, 7727 - земля. Не забудьте перед операциями отключить зажигание и вытащить ключ, клему с АКБ можно не снимать.
Номера написаны на самих проводах. Если не найдете номера на проводах, то придется разбирать фишку, чтобы отследить конкретные провода.

 

Распиновка фишки разъема BHI

post-87582-0-40701000-1468848029_thumb.png

A2 - Задний датчик высоты +5В
A4 - +12 от блока в моторном отсеке BM34(F3 fuse)
B2 - Передний датчик высоты +5В
B4 - BSI ??
C2 - АБС CAN H
C3 - Датчик поворота руля
C4 - АБС CAN L
D1 - Задний датчик высоты - земля
D2 - BSI CAN H
D3 - Датчик поворота руля
D4 - BSI CAN L
E1 - Передний датчик высоты - земля
E2 - Диагностический разъем OBD
E3 - Датчикповорота руля
E4 -
Заднийдатчик высоты - сигнал
F2 -
Гидронасос вкл.
F3 -
Корректор фар.
F4 -
Передний датчик высоты - сигнал
G1 -
Клапан ГУР(3.0 литра)
G2 -
Клапан жесткости передний
G3 -
Клапан жесткости передний
G4 -
Клапан жесткости задний
H1 -
Земля
H2 -
Клапан жесткости задний
H3 -
Клапан ГУР(3.0 литра)
H4 -
+12V от BSI (F23 fuse)

 

Фото с номерами проводов.

post-87582-0-11814500-1468848141_thumb.jpg
post-87582-0-90175000-1468848141_thumb.jpg

Сама программа будет работать так. После старта двигателя, изменение сигнала датчика давления масла с 0 на 12В. Через 30 секунд плата подает сигнал, что она жива - путем замыкания сигнала давления на массу. В это время в кабине появится сообщение о недостаточном давлении масла и исчезнет через 3 с. Так я пойму, что девайс жив и несет службу.
Все время измеряются уровни от датчиков положения, и в случае опускания напряжения ниже 2В в течении 3секунд(это необходимо, чтобы не было ложных срабатываний на кочках и спящих полицейских) - выдается сигнал о масле.

Так я всегда буду знать о том упала машина или нет, до того как оторву глушитель )).

 

Продолжение следует.. Отпишусь после установки блока.

 

post-87582-0-40701000-1468848029_thumb.png

post-87582-0-11814500-1468848141_thumb.jpg

post-87582-0-90175000-1468848141_thumb.jpg

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

во время движения умер предохранитель насоса( а через день и сам насос) и задняя ось опустилась во время движения.

Вообще-то если насос вдруг отказал, то подвеска так быстро не упадет, подвеску держат клапаны в BHI. Может она и раньше была уже подупавшая.

Я все собираюсь сделать проще - поставить светодиод параллельно мотору насоса, или на управляющий им провод. Будет видно как подкачивает, заодно можно оценить текущие стойки.

Кстати, и софт проца можно построить на этом принципе: если долго нет подкачиваний, то плохо дело. Ну а внезапный прорыв трубки ВД и так почувствуешь...

С5-II, ГА-3, 2,0 RFJ (EW10A) 2007г МКПП. До него Xantia 1,9D 1994г была 12 лет.

Ссылка на комментарий

У меня именно так и случилось. Подвеска упала быстро. Был на 3-м уровне паркинга. На 1-м уже оторвало выхлопушку. До заезда на паргинг все было ОК.

Светодиод на мотор это да - но куда его ставить?? он только может показать, что сгорел предохранитель но не факт работы мотора.

Данный способ выбран, именно чтобы отслеживать конечный параметр, а не параметр посредник. А вдруг насос работает, но не создает давление??по светодиоду будет все ОК. А вот сигналы с датчиков сразу покажут, что нет.

 

Я вот только недоумеваю почему этого нет в базовом софте?

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

Просто следить, что он периодически загорается, даже интересно когда и почему. А если горит постоянно или вообще не горит, то думать...

С5-II, ГА-3, 2,0 RFJ (EW10A) 2007г МКПП. До него Xantia 1,9D 1994г была 12 лет.

Ссылка на комментарий

Место где будем врезатся в сигнал датчика давления масла. Желтый провод.  +12В - есть давление, 0В - нет давления.

post-87582-0-01593300-1468871105_thumb.jpg

Так выглядит проводка с врезанными проводами, при помощи скотч локов. На концах проводов ножевые клемы под кабель , чтобы устройство можно было оперативно снимать. Изоляция выполняется термокембриками.

post-87582-0-82430600-1468871105_thumb.jpg

Общий вид устройства, Arduino nano в корпусе. На проводах ответные ножевые клемы.

post-87582-0-19466700-1468871106_thumb.jpg

Сама плата и распаянные компоненты(резисторы и транзистор)

post-87582-0-60995800-1468871106_thumb.jpg

 

Красный провод - +5В, черный - земля, 2 белых рядом передний сигнал и задний сигнал подвески, 1 белый отдельно - провод к датчику давления масла.

 

Сегодня вечером установил все в машину. Проверил. Все работает. Видео алгоритма работы и фото как это все выглядит машине  выложу завтра.

 

Пару слов о схеме нужно 4 резистора, 3 по 100кОм и 1 47 кОм. А так же 1 полевой транзистор с допустимым напряжением сток-исток от 20В. В моем случае это был доступный КП505А (КП505Г - не подойдет, так как у него напряжение сток-исток - 8В макс).

 

Схема.

post-87582-0-93618900-1468874406_thumb.png

 

 

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

 

 

Просто следить, что он периодически загорается, даже интересно когда и почему. А если горит постоянно или вообще не горит, то думать...

Смотреть постоянно на светодиод это плохо - будет отвлекать от дороги. Так как мотор часто работает на подкачку особенно при торможениях и разгонах.

Да и писал ранее, что неохота возится с протягиванием проводов внутрь салона и портить торпеду.

 

Да и просто светодиод преклепать не получится, так как в мотор поступает +12В постоянно(через предохранитель MF8) и еще отдельно цифровой сигнал управления от блока BHI.  Так, что даже со светодиодом нужна элементарная схемка.

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

Я правильно понимаю - при падении подвески БК будет вякть нет давления масла в двигателе?

Природа мудра, и Всевышнего глаз
Видит каждый наш шаг на тернистой дороге
Наступает момент, когда каждый из нас
У последней черты вспоминает о Боге...
 

 

 

Ссылка на комментарий

@Бес, Да.

 

Выкладываю результаты испытания устройства на авто. 

Входе испытаний выяснилось, что необходимо уменьшить порог для задней оси, так как когда разгоняешся на горочке задняя ось приседает и система временно ругается.

Сейчас у меня стоит фильтр условие, что сигнал должен быть ниже порога более 3х секунд, тогда выдается сообщение.

 

Сегодня перенастрою порог задней оси и увеличу время фильтра до 5 секунд.

Как все настрою. Кому интерестно могу скинуть программку в среде ARDUINO 1.6.9.

Писал в ней так как там программа пишется в два счёта и не надо настраивать переферию.

 

Вот так это все выглядит когда установлено в авто.

post-87582-0-56623800-1468921696_thumb.jpg

post-87582-0-22100200-1468921697_thumb.jpg

 

Вот так после запуска двигателя, через 10 секунд устройство подает сигнал, что оно живо и готово к работе.

На дисплее написано OIL Pressure insufficient.

 

 

Далее при обнаружении критического уровня подвески в течении 5-х секунд,  будет выдано такое же сообщение. Погаснет оно как только подвеска придет в норму.

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

 

 

Бес, Да.
 Лично мне было бы не очень спокойно если бы выскочило сообщение о низком давлении масла.  :smile57:

И думай - давки нет или это подвеска осела.  :smile: А если давления нет и едешь и думаешь что подвеска? Остановился подвеску осмотреть, но если все-таки масло - мотор сколько-то проработал "на воздухе", без смазки?  :smile37:

Может лучше было бы на датчик уровня незамерзайки или уровня ОЖ?


И да, я бестолковый по теме программирования, но есть наверное кто умеет - прикрепляй к сообщению и пусть "висит". Кому надо - "возьмет". И не понадобится тебя дергать, в ЛС писать...

Природа мудра, и Всевышнего глаз
Видит каждый наш шаг на тернистой дороге
Наступает момент, когда каждый из нас
У последней черты вспоминает о Боге...
 

 

 

Ссылка на комментарий

@Бес, Да нормально. Так как, как только выскочит такое сообщение и будет висеть в течении 5 - 10 секунд, то полюбому надо останавливатся и выяснять в чем дело, будь то подвеска или масло.

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

 

Сигнала уровня антифриза в моей комплектации не предусмотрено. А сигнал с омывайки, не подойдет, так как он проверяется только при включении зажигания и так же при включении омывателей, остальное время BSI глубоко пофиг на этот сигнал.

 

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

 

Arduino nano выбрана еще потому, что совладать с ней может человек далекий от программирования и электроники.

Скачивается среда, устанавливаются драйвера, плата подключается к компу по USB и сразу же из среды прошивается! Не надо никаких программаторов. Так как бутлоадер уже зашит в проце.

Те 3 клика и готово!.

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

В последнем абзаце я только про три клика понял.  :smile3:  :smile3:


Ок, про другие датчики я понял.

Природа мудра, и Всевышнего глаз
Видит каждый наш шаг на тернистой дороге
Наступает момент, когда каждый из нас
У последней черты вспоминает о Боге...
 

 

 

Ссылка на комментарий

Так пока идет этам настройки ПО, подбор уровней срабатывания по задней подвеске, а так же время фильтрации. Как только все отработается и не будет ложных сработок при разгоне, выложу исходник.

 

Пока выяснил, что как и ожидалось девайс ни как не влияет на подвеску. И вроде отлично переносит переезды в подкапотном пространстве.

Citroen C5, RFN, универсал 2001

Ссылка на комментарий

Закончена настрока кода и проверка девайса. Проехал за все это время около 600 км.

В городе теперь ложных сообщений не выдает.  Время  когда коробка подает сигнал о том, что она жива сокращено до 8 секунд с момента запуска двигателя.

Но все таки если с места и с педалью в пол разгонятся до 100, то всетаки на секунду собщение выскакивает.

Если кому это мешает, нужно уменьшать  параметр Rear_low.

На моей машине BHI сконфигурирован FRONT -128 steps, Rear - 120 steps.

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

 

 

Конечно, тут можно запрограммировать режим самонастройки данного устройства, но у меня нет времени возится с ПО. Да и дописать это можно легко кому надо.

 

Всем удачи и сухой подвески)).

 

 

#define FRONT A0 // front voltage 2.6V (532) normal, 1.75 (358) - low
#define REAR A1 // front voltage 2.5V(512) normal, 1.25 (256) - low
#define ALARM 13 // signal
#define SENSOR 12 // signal presure

#define Front_low 410 // the sensor value
#define Rear_low 315 // minimum sensor value
#define Pause 1000*8 // pause for alive signal in ms
#define siglen 1000*3 // length of presense signal.
#define filterlen 4 // lenght of low signal to trigger alarm in seconds


// variables:
int cTime;
int rearval;
int frontval;
int pinval;
bool currval;


void setup() {
pinMode(ALARM, OUTPUT);
digitalWrite(ALARM, LOW);
pinMode(SENSOR, INPUT);
analogReference(DEFAULT); // VREF is VCC

pinval = digitalRead(SENSOR);
while ( pinval == LOW ) pinval = digitalRead(SENSOR);
delay(Pause);
digitalWrite(ALARM, HIGH);
delay(siglen);
digitalWrite(ALARM, LOW);
currval = false;
cTime = 0;
}

void loop()
{
frontval = analogRead(FRONT);
rearval = analogRead(REAR);
delay(100);
if ((frontval <= Front_low)|| (rearval <= Rear_low))
{
cTime++;
}
else
{
digitalWrite(ALARM, LOW);
currval = false;
cTime = 0;
}

if (cTime >= (filterlen*10))
{
digitalWrite(ALARM, HIGH);
cTime = (filterlen*10);
currval = true;
}

pinval = digitalRead(SENSOR);
if ((pinval == LOW) && ( currval == false))
{
while (pinval == LOW) {pinval = digitalRead(SENSOR);}
delay(Pause);
digitalWrite(ALARM, HIGH);
delay(siglen);
digitalWrite(ALARM, LOW);
currval = false;
}

}

 

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий
  • 3 месяца спустя...

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

 

Все это происходит из-за того, что течет сальник коленвала со стороны коробки и когда масла мало, ло на поворотах оно реально на доли секунды перестает поступать.

 

Когда нибудь планирую все таки заменить сальники)

Citroen C5, RFN, универсал 2001

Ссылка на комментарий
  • 3 месяца спустя...

спасибо за инфу.я ,честно ,даже не догадывался о таких косяках.попробую решить эту тему несколько по другому.на логических МС.И КОНДЁРАХ.и всё же вывести на панель с правильным сообщением о проблеме в гидре.а с маслом у меня нет проблем.если падает уровень или давление сообщение на дисплее выводиться.

Ссылка на комментарий
спасибо за инфу.я ,честно ,даже не догадывался о таких косяках.попробую решить эту тему несколько по другому.на логических МС.И КОНДЁРАХ.и всё же вывести на панель с правильным сообщением о проблеме в гидре.а с маслом у меня нет проблем.если падает уровень или давление сообщение на дисплее выводиться.

 

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

 

А глюк ПО с маслом есть у вас, просто надо сделать так, отключаете провод от датчика  давления масла и все) И машина будет все время молчать как будто все ОК, а на самом деле там далеко не ОК)). Это я к тому что если провод перебьется то водитель даже не узнает. Вот так там запрограммировано.

 

А решить ее можно и без логических МС, можно взять только компараторы и все.

 

Да кстати зима прошла все ОК, все исправно работает, естественно все было замазано для защиты от влаги.

Да кстати, вот мой красавец. Кому интерестно линзы в фары сам ставил.

post-87582-0-90509600-1488530088_thumb.jpeg

Изменено пользователем maxim_ka

Citroen C5, RFN, универсал 2001

Ссылка на комментарий
  • 6 лет спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...