Контроллер дистанционного прогрева автомобиля

kozinalexey
Offline
Зарегистрирован: 23.05.2011

 

device_autostart.gif?height=333&width=40

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

Безусловно можно купить комплект сигнализации типа "стар лейн" тысяч за тридцать с установкой, но к чему тогда приложить очумелые ручки?

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

Что понадобится:
Аппаратная часть
старый мобильный телефон (или дешевый китайский gps-gsm-треккер с наличием линии внешнего выхода)
мини-ардуино контроллер
плата обвязки ардуино (делаем самостоятельно)

Программы
- среда разработки ардуино
- програма для разводки печатных плат spring layout
- руководство по "языку ардуино" на русском языке  arduino.ru

поскольку тут собрались фанаты ардуино то и программный код будем писать под этот процессор.
а я попутно попробую на этом примере по шагам рассказать как пишется ардуино - код

прежде всего нужно понимать
1. в языке ардуино регистр букв различается например Setup и setup это две разные вещи.
2. каждая операция присвоения или запуска процедуры должна завершаться точкой с запятой ;
3. функции и условные операторы не заверщшаются точкой с запятой но должны иметь скобки для аргументов и фигурные скобки для исполняемого блока

 первым делом обычно решают какие будут использованы входы и выходы у контроллера
и присваивают им понятные имена констант

// select pins for input
const int hand_brake_in  = 1;  //d1 adruino
const int start_in  = 2;  //d2 adruino
const int sharging_in  = 3;  //d3 adruino
 
// select pins for output
const int starter_out  = 4;  //d4 adruino
const int engine_out  = 5;  //d5 adruino

 затем добавляют две стандартные процедуры, которые обазятельно должны быть в каждом скетче ардуино

void setup()
{
 
}
 

void loop()
{

 }

 процедура setup выполняется один раз при включении контроллера или при нажатии на кнопку сброс,
в ней производят необходимые настройки входов и выходов

void setup() {
// настраиваем входы
  pinMode(hand_brake_in, INPUT); // enable input 

  pinMode(start_in, INPUT); // enable input 
 
  pinMode(sharging_in, INPUT); // enable input 
 
// настраиваем выходы
  pinMode(starter_out, OUTPUT); // enable output
  digitalWrite(sharging_in, LOW); //set digital 0
 
  pinMode(engine_out, OUTPUT); // enable output
  digitalWrite(engine_out, LOW); //set digital 0
}

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

// variable for actual mode
int actual_mode = 0; // какое текущее состояние 0 - двигатель выключен, 2 - двигатель должен быть запущен

пишем основной костяк программы:

void loop()
{
  // основной цикл, если режим 0 запускаем проверку необходимости запуска иначе контроль выключения после прогрева
if (actual_mode == 0 )
        {
        check_start();
        }
 else
        {
        check_for_shutdown();
        }
 }
 
void check_start() 
{
//Здесь будет код запуска двигателя
 
}
void check_for_shutdown() 
{
//здесь будем выключать двигатель после окончания времени прогрева
 
}

 теперь можно наполнить процедуру проверки запуска

void check_start() 
{
if (digitalRead(start_in) == 0) // 0 is command for start
  {
  // проверяем что ручник стоит а генератор не работает
    if (digitalRead(hand_brake_in) == 0 || digitalRead(sharging_in) == 0  ) 
    {
    //тут будет запуск движка    
    digitalWrite(engine_out, HIGH);   //включаем зажигание 
    delay(3000); // останавливаем код на 3 секунды чтобы бензонасос набрал давление
    digitalWrite(starter_out, HIGH); //включаем стартер 
    delay(1000); // и продолжаем его держать включенным 1 секунду
    
    //если секунды мало и нет зарядки то крутим еще
    if (digitalRead(sharging_in) == 0)
         {
           delay(1000);
          }
    digitalWrite(starter_out, LOW); //отключаем стартер 
    actual_mode = 2; //Запоминаем движок запущен 
    }
  }
}

тут мы понимаем что в одних автомобилях сигнал что заряд пошел может иметь значение +12 а в других наоборот 0, и тоже самое с датчиком ручника, с тем чтобы обеспечить универсальность добавляем
в верхнюю часть кода пару констант

const int hand_brake_on = 1; //  0= поднятый датчик ручника замыкает на массу тормоз активен (жигули), 1= датчик ручника в поднятом состоянии выдает высокий уровень напряжения
const int sharging_on = 1; // 0 когда во время работы генератора или от датчика давления масла на этом входе низкое состояние, 1 когда на лампе генератора при работе генератора высокое состояние
и изменяем код процедуры запуска

void check_start() 
{
if (digitalRead(start_in) == 1) // 1 1  значит импульс старта пришел с дистанционного управления <--- тут определяется полярность импульса запуска
  {
 
    if (digitalRead(hand_brake_in) == hand_brake_on && digitalRead(sharging_in) != sharging_on  )    // проверяем что ручник стоит а генератор не работает (0 - лампа горит, генератор не работает)
    {
    //тут будет запуск движка    
    digitalWrite(engine_out, HIGH);   //включаем зажигание 
    digitalWrite(secpower_out, HIGH); //включаем печку фары итд
    delay(3000); // останавливаем код на 3 секунды чтобы бензонасос набрал давление
    
    digitalWrite(secpower_out, LOW); //выключаем печку фары итд
    digitalWrite(starter_out, HIGH); //включаем стартер 
    delay(1000); // и продолжаем его держать включенным 1 секунду
    
    
    if (digitalRead(sharging_in) != sharging_on) //если секунды мало и нет зарядки то крутим еще
         {
           delay(1000);
          }
          
    digitalWrite(starter_out, LOW); //отключаем стартер 
    actual_mode = 2; //Запоминаем что движок запущен
    last_start_time = millis(); // запоминаем время запуска движка 
    
    } // конец проверки что ручник стоит а генератор не работает
  } // конец проверки что импульс старта пришел с дистанционного управления
 
 
} // конец процедуры старта

пишем вторую чать кода, процедуру выключения двигателя

void check_for_shutdown() 
{
//сюда мы попадаем когда контроллер считает что движок работает
 
    if (digitalRead(sharging_in) != sharging_on  ) //проверяем что движок случайно не заглох
    {
        digitalWrite(engine_out,   LOW); ///Если заглох то вырубаем зажигание, нехрен разряжать акб
        digitalWrite(secpower_out, LOW); //выключаем печку фары итд
        actual_mode = 0;  // движок выключили 
        last_start_time = 0; // ну и забудем о том что он был включен
    }
    else {
          digitalWrite(secpower_out, HIGH); //включаем печку фары итд
          }
    
 
 
    if (digitalRead(hand_brake_in) != hand_brake_on  ) //проверяем что если злодеи сняли с ручника то глушим мотор
    {
        digitalWrite(secpower_out, LOW); //выключаем печку фары итд  
        digitalWrite(engine_out, LOW); // вырубаем зажигание
        actual_mode = 0;  // движок выключили 
        last_start_time = 0; // ну и забудем о том что он был включен
    }
 
  
//тут будем контролировать чтоб если забыли машинку заведенной она не молотила до скончания бензобака а выключалась через какоето время
 
 
    if (actual_mode != 0  ) //значит не выключили заглохший двигатель только что 
    {
      if (millis() > last_start_time + 30 * 60 * 1000 ) // если текущее время больше чем время старта + 30 минут  в минуте 60 сек в секунде 1000 милисек
       {
        digitalWrite(secpower_out, LOW); //выключаем печку фары итд         
        digitalWrite(engine_out, LOW); //вырубаем зажигание
        actual_mode = 0;  // движок выключили запомним это
        last_start_time = 0; // ну и забудем о том что он был включен
       }
    }
}
Проверяем что же у нас получилось:

видео ютуб

 

первый тест

 Дальше ставим задачу добавить три попытки запуска мотора, причем чтобы стартер выключался сразу после
 появления сигнала на датчике заряда но время работы стартера не превышало 10 секунд, добавить индикатор
 статуса работы контроллера (будет в режиме прогрева показывать с какой попытки произошел запуск а в
режиме ожидания запуска показывает что контроллер готов к запуску - включен, ручник и нейтралка стоят.)

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

 
Актуальную версию скетча ардуино можно скачать по ссылке внизу страницы

 

печатая плата

psb.png?height=279&width=400

схемка

manual_chamatic.jpg?height=246&width=400

 

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

скачать файлы скетча можно тут http://hobby.msdatabase.ru/project-updates/arduhome/car-start

kozinalexey
Offline
Зарегистрирован: 23.05.2011

к сожалению видео не вставилось,

его можно посмотреть в полной версии по ссылке

ustas
Offline
Зарегистрирован: 12.03.2012

иммобилайзера в машине нет?

kozinalexey
Offline
Зарегистрирован: 23.05.2011

есть, сделан и тщательно спрятан обходчик из второго ключа, питание на обходчик подается с контроллера

Alexander
Offline
Зарегистрирован: 25.04.2010



Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Тема интересная!

Сам сейчас отлаживаю Arduino Nano для управления Webasto через GSM модуль StarLine,

застрял на измерении температуры ниже минус 15, датчиком DS18B20. Возвращает -127 и все тут :-(

До минус 15 измеряет все пучком.

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

тема супер. скажите, а как сложно прикрутить к данной схеме серву, для регуляции холостого хода? проблема в том что не на всех вазах стоит инжекторный мотор. как же быть тем кто на карбюраторах?))) так вот, имеется:  ардуино уно, серва прикрученная к крбюратору и импульсы тахометра(6 вывод коммутатора)(ваз2109). и датчик температуры ОХЛ.ЖИДК. суть: при включении зажигания ключем или дистанционно, запускается програма, опрашиваются все датчики. если  температура ниже температуры прогретого мотора(70 С), серва прикрывает воздушнюзаслонку пропорционально температере охлаждающей жидкости. за постоянную температуры можно принять -20(заслонка полностью закрыта). после запуска мотора, появляются импульсы тахометра(2 имп на 1 оборот), ардуина измеряет их и приводит их к заданому значению (1300об/мин) проворачивая серву механичечески связанную с заслонкой. в таком режиме система будет находиться до температуры полного прогрева (70  с), постоянно корректируя обороты через положение воздушной заслонки. теперь вопрос)) скажите, возможно ли как то написать скетч не прибегая к ПИД регулятору? поскольку я с ним знаком заочно(( предполагаю возмодную раскачку всей системы без точного пропорционального управления

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

если возможно укажите напрвление в коем мне следует двигаться)))

kozinalexey
Offline
Зарегистрирован: 23.05.2011

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

полноценный пид ругулятор тут ненужен. нужны тесты как ведет себя авто при разных отклонениях заслонки.

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

и из этого вывести на сколько еще отклонить от текущего положения сервы

kozinalexey
Offline
Зарегистрирован: 23.05.2011

с минус 15 непонятка

либо датчик в режиме высокой точности но тогда Диапазон измерений от +10 до +85

в режиме однградусной шкалы -55°C до +125

либо ошибка в коде при считывании регистров

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

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

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

постоянно упираюсь в пид

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

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

kozinalexey
Offline
Зарегистрирован: 23.05.2011

предлагаю такой простейший алгоритм

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

для этого подойдет комбинация функций map  и затем constrain

затем делаем переменную которая ставит серву в положение соответствующее температуре KP

этот коэфициент будет формировать типовое отклонение ожидаемого отклонения заслонки к требуемым оборотам

 

исходя из текущих оборотов двигателя считаем переменную "ошибка оборотов"

от этой ошибки вычисляем переменную равную произведению этой ошибки и настраиваемого Ki коэфициента

в авто то свечка хандрит то топливо не такое и хорошо бы еще небольшую адаптивную составляющую

для этого переменная декларированная как статик маленькими порциями накапливает секунд за 5 свое усредненное значение плюс (ошибка оборотов * ki),

на вскидку

static int nakoplenie =0;

nakoplenie = (nakoplenie * 9  + oshibkaoborotov * Ki ) /10

при этом за цикл в накопительном коэф. будет меняться только одна десятая доля за раз

но используя

nakoplenie = (nakoplenie * 99  + oshibkaoborotov * Ki ) /100

можно замещать лишь одну сотую

возможно значение накопления следует ограничить какимто отрицательным и положительным значением при помощи констраинт

затем пропорциональная и интегральная составляющие сумируются, ограничиваются констраинт и значение передается на управление сервой

 

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

В инжекторах есть таблица оборотов ХХ по температуре, ИМХО проще так-же и тут сделать,

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

от - 30 до +40 или какая там у вас температура бывает зимой/летом. Еще не плохо было-бы учитывать температуру

наружного воздуха или температуру воздуха на входе в карб.

 

До вас уже изобретали этот "велосипед" погуглите МПСЗ SECU-3 или МПСЗ Maya, в какой-то из них есть

автоподсос. Я в свое время уже переболел этим :-)

Вам - удачи :-) Надеюсь у вас все получится :-)

ЗЫ: А с температурой ниже - 15 я разобрался, не помню где вычитал, что библиотека DallasThemperature кривая,

так и оказалось.

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

огромное спасибо, так и выходит- неполный пид))

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Я в свое время застрял еще на нормальном arduino тахометре для этих целей, использовал Mega2560, и косяк был в том, что обороты желательно измерять с точностью +-50 , и причем через прерывание, готовых скетчей сами понимаете нет в сети, приходилось с миру по нитке, по кусочкам лепить свой код :-) учитывая что я только Вasic изучал в ПТУ, было весело :-)

Ещё скажу вам, что сервопривод должен иметь какой-нибудь указатель положения, или концевики крайних положений

kozinalexey
Offline
Зарегистрирован: 23.05.2011

сервопривод для которого в ардуино есть библиотека серво (от радиоуправляемых игрушек)

уже имеет встроенную систему позиционирования, достаточно подать на его вход импульс длительностью 1000-2000 мс

продолжительность импульса в этом диапазоне соответствует положению рычага сервы.

частота следования этих импульсов должна быть 50гц для обычных сервоприводов или 125гц для "цифровых" - быстрых вертолетных серво

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Хороший привод, я на карб лепил шаговик от приоры.

Главное что-бы у вашего сервопривода хватило мощности, кстати может ткнете носом (URL) на ваш привод?

На такие не натыкался, интересно для расширения кругозора :-)

 

kozinalexey
Offline
Зарегистрирован: 23.05.2011

вот страничка сервоприводовстандартного размера с усилием 4-8 кг на см

http://hobbyking.com/hobbyking/store/__290__189__Servos_Parts-Std_Servo_...

но бывают и мощные  на 30-120 кг/см

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

если ход нужен меньше - то можно поставить поближе к оси, будет усилие больше

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

прошу прощения за долгую мысль) а для чего серве концевик? пордон. она сама отслеживает свое положение.

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

как видео вставили?

kozinalexey
Offline
Зарегистрирован: 23.05.2011

тахометр логично считать в прерывании глобальную переменную

если не ошибаюсь ее надо как волотильную объявлять, а потом в любом месте кода использовать.

если чтото непонятно выводите в сериал порт нужные переменные чтобы понять что происходит

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

ага я понял. вопрос в том что не знаю я как это правильно сделать

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

)))) а вот у мя нифига не заробило((

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

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

1. Что ручник поднят максимально (может только-только с концевика сошёл).

2. Что ручник поднят максимально, но колодки смогут удержать его на месте (растянут трос, заел или колодки стёрлись-замаслены).

По аналогии, как это сделано в сигналках Старлайн -

На работающем двигателе: взводим ручник и нажимаем кнопку брелка. Включается поддержка зажигания. Поворачиваем ключ зажигания на "выкл" и вынимаем его. Двигло продолжает работу. Выходим из салона и закрываем дверь. Ставим авто под охрану. Всё, готовы к запуску... При отклонениях от алгоритма - фигвам, а не запуск

Такой подход гарантирует, что коробка передач находится в нейтрали и авто никуда не уедет.

 

 

Далее.

Включать печки-фары-прочие потребители лучше после факта запуска двигателя, а то энергии на запуск может не хватить. Вообще, печку лучше включать после определённого времени прогрева, когда это имеет смысл. А фары, к примеру, включать вообще не имеет смысла, лучше габариты (или поворотниками моргать) - пусть АКБ чуток позаряжается....

kozinalexey
Offline
Зарегистрирован: 23.05.2011

имхо просто и надежно

1 герконовый датчик + магнит на положение рычага кпп что нейтраль (у переднеприводных зачастую можно поставить на рычаге в моторном отсеке )

2 герконовый датчик и магнит настроенный на отклонение рычага ручника достаточного для удержания автомобиля

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Скорее всего, аналогично думали те, кто монтировал что-то подобное себе в авто и "оно поехало"...

Неделю назад такая машина завелась и собралда в кучу 5 машин. Утрирую, конечно - что-то покоцала, поцарапала, сильнее досталось той, которая была последней. А учитывая, что инжектор после запуска держит обороты в районе 1500 оборотов, то скорость случилась приличная. И такой случай у нас на стоянке далеко не единичный.

Контакты-магниты-провода - это лишний хлам в салоне, который нужно смонтировать и добиться нормальной работы.

И то 100% гарантии нет, а она жизненно необходима в таком случае.

Тут простой алгоритм, который гарантирует это в полном объёме - если вы вышли из салона при работающем моторе, то сцепление отпущено и коробка стопудово в нейтрали. Положение ручника, скорее вспомогательное условие, но также необходимое - машина может стоять на небольшом уклоне и поехать просто от вибрации двигла при запуске. Я бы даже прикрутил что-нибудь к датчику скорости - если не дай боже поехало само - глушить нафик...

 

В любом случае, я лишь выразил своё мнение и никому его не навязываю. ПРосто не забывайте, что автомобиль - это средство повышенной опасности, а оставленный без присмотра и пытающийся "проявить интеллект" может наделать немало проблем. Владельцу в первую очередь.

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Сам себе так недавно сделал, главное взять магнит по мощнее, и поймать положение нейтрали :-)

ставил в салоне, под ручкой кпп, подключал к петле выбора типа кпп у сигналки.

У меня кпп механика, а панель приборов от автомата, я лампу N задействовал для этого дела, визуально проверяю перед выходом из авто

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

Магнит брал от головки HDD, если что

 

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Цитата: "На работающем двигателе: взводим ручник и нажимаем кнопку брелка. Включается поддержка зажигания. Поворачиваем ключ зажигания на "выкл" и вынимаем его. Двигло продолжает работу. Выходим из салона и закрываем дверь. Ставим авто под охрану. Всё, готовы к запуску... При отклонениях от алгоритма - фигвам, а не запуск

Такой подход гарантирует, что коробка передач находится в нейтрали и авто никуда не уедет."

 

Все это хорошо, пока вы сигналку с охраны не снимете. Если снимете с охраны, придется этот танец с бубном еще раз проделывать :-) Например возвращаетесь с магазина, надо по пути захватить в машине что-то - танцуйте :-) Забыли что-то в машине - танцуйте :-) Кнопка на брелке случайно нажалась - думаю понятно ... :-)

 

Цитата: "Включать печки-фары-прочие потребители лучше после факта запуска двигателя, а то энергии на запуск может не хватить. Вообще, печку лучше включать после определённого времени прогрева, когда это имеет смысл. А фары, к примеру, включать вообще не имеет смысла, лучше габариты (или поворотниками моргать) - пусть АКБ чуток позаряжается...."

 

Надо аккумулятор хороший иметь, и заряжать его в тепле раз в две недели, от сетевого ЗУ

И будет вам счастье :-)

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

Про печку: при морозе на улице -40, включение разогретой печки на обдув стекла приводит к его растрескиванию :-( чтобы стекло безопасно оттаяло, надо печку включать сразу после запуска двигателя. Тогда воздух и стекло будет прогреваться постепенно, вместе с двигателем.

 

Все проверено лично на StarLine B9

 

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

OlegK пишет:

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

1. Что ручник поднят максимально (может только-только с концевика сошёл).

2. Что ручник поднят максимально, но колодки смогут удержать его на месте (растянут трос, заел или колодки стёрлись-замаслены).

По аналогии, как это сделано в сигналках Старлайн -

На работающем двигателе: взводим ручник и нажимаем кнопку брелка. Включается поддержка зажигания. Поворачиваем ключ зажигания на "выкл" и вынимаем его. Двигло продолжает работу. Выходим из салона и закрываем дверь. Ставим авто под охрану. Всё, готовы к запуску... При отклонениях от алгоритма - фигвам, а не запуск

Такой подход гарантирует, что коробка передач находится в нейтрали и авто никуда не уедет.

 

 

Далее.

Включать печки-фары-прочие потребители лучше после факта запуска двигателя, а то энергии на запуск может не хватить. Вообще, печку лучше включать после определённого времени прогрева, когда это имеет смысл. А фары, к примеру, включать вообще не имеет смысла, лучше габариты (или поворотниками моргать) - пусть АКБ чуток позаряжается....

выдержка из правил обслуживания акб.:: перед запуском стартера в мороз -10 и ниже, рекомендуется на короткое время 10-15 секунд включать все электро потребители автомашины (дальний свет, печку, вентилятор принудительного охлаждения), для быстого прогрева акб и вывода ее на максимальный токовый режим. если это взять за правило, акб прослужит гораздо долще. поскольку на прогретой акб процесс сульфации протекает медленнее. 

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Сейчас в оффтоп зарулим :-)

gsr1778
Offline
Зарегистрирован: 07.01.2015

Pnewmoslon пишет:

выдержка из правил обслуживания акб.:: перед запуском стартера в мороз -10 и ниже, рекомендуется на короткое время 10-15 секунд включать все электро потребители автомашины (дальний свет, печку, вентилятор принудительного охлаждения), для быстого прогрева акб и вывода ее на максимальный токовый режим. если это взять за правило, акб прослужит гораздо долще. поскольку на прогретой акб процесс сульфации протекает медленнее. 

наконецто первая толковая мысль по поводу установки данной опции на авто. Акомчик нужно разбудить, любой нормальный автомобилист это знает - это во первых. во-вторых - ручной тормоз. кому не известно - колодки имеют свойство примерзать к тормозным дискам в мороз. Раз наблюдал как сосед грел кипятком задние колодки на уже прогретом авто - намучался дольше чем бы просто прогрел машину. И последнее, когда на улице мороз -20 и более масло в коробке подзамерзает (на переднеприводных) и при пуске двигателя машину подтаскивает вперед (при невыжатом сцеплении) что вдобавок даёт лишнюю нагрузку на и без того спящюю акому. не придумывайте велосипед. Данное чудо техники потому и ставят на корбки автомат с инжектором. А ваш Таз не станет Мерседесом при его наличии. Конечно сугубо мое мнение.

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

Более 10 лет ежедневно пользуюсь автозапуском на авто  с ручной коробкой и естественно пользуюсь ручником. Ни разу в любой мороз ничего и нигде не примерзло.

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

avton пишет:

Более 10 лет ежедневно пользуюсь автозапуском на авто  с ручной коробкой и естественно пользуюсь ручником. Ни разу в любой мороз ничего и нигде не примерзло.

Особенно если задние тормоза дисковые!  :-)

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

5 лет на ваз2115 ,жена 6 лет на форд фьюжен с задними барабанными  тормозами,не показатель ,не ?:)

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

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Абсолютно с вами согласен!

Особенно не парковаться в луже, и немного просушить ручник перед парковкой :-)

avton
avton аватар
Offline
Зарегистрирован: 11.05.2014

Gummi_bear пишет:

Особенно не парковаться в луже, и немного просушить ручник перед парковкой :-)

Это само собой,мозг всегда надо включать )

хотя сам никогда специально не сушил

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Было бы что включать :-) С утра обычно видно, кто включил, а кто нет :-)

Андрей1963
Андрей1963 аватар
Offline
Зарегистрирован: 24.01.2015

Прошу прощения . Тему нашел не сразу . 

Предлагаю вариант (неокончательный) этого проекта. http://arduino.ru/forum/proekty/avtozapusk-pervyi-proekt#comment-96790  . Телефон на "автоответе". Старт - звонок , после ответа доп. клавиша. Контроль старта - прослушка авто. На "compcar" написать не смог . Коментарии не разрешены сутки спустя после регистрации. 

Будет доделываться контроль нейтрали на рычаге КПП и откл. двигателя в случае наличия импульсов с датчика скорости(безопасность превыше всего). Так же алгоритм взаимодействия с DTMF-декодером. 

Aleksandr2000
Offline
Зарегистрирован: 21.10.2015

С контролем нейтралки и процедурой постановки на автопрогрев мне кажется лишние заморочки. Пользуюсь пока глючным Томагавком. Не очень удобно. Я собираюсь применить поляризованное реле. Первая обмотка подключает ардуину к сигналу ручника, запитывается через отдельную, можно секретную кнопку. То есть приехали, хотим оставить авто на автозапуске, глушим, включаем ручник, ставим на нейтралку и после этого нажимаем на кнопку, перекидывая контакты реле в положение, при котором проходит сигнал с ручника. Вторую обмотку, перекидывающую контакты реле в другое положение, подключаем к любой цепи, где появляется сигнал при нормальной эксплуатации, например к датчику скорости. При начале движения, первый же импульс отключит сигнал "ручник". Если при этом не запущен двигатель ключом ( вы сели в машину, завели и поехали), то он заглохнет. И реле автоматом отключает автозапуск до следующего нажатия на кнопку. Реле РПС24 или РПС32. После переброски контактов можно не подавать напряжение на обмотки, оно не потребляет ток и не садит АКБ. Сигнал на обмотки можно подать через кондеры.

И я бы входные сигналы развязал оптронами. И можно после запуска набрать номер хозяйского телефона, типа "Хозяин, я машинку завел!". Если ошибутся номером и машина заведется, когда не надо - будешь знать. А так алгоритм мне нравится, жду некоторые заказанные мелочи, буду делать на ПроМини.

velder72
Offline
Зарегистрирован: 07.01.2016

Уважаемые форумчане. Кто подскажет что за радиодеталь стоит между двух больших кондёров если смотреть на фото готового изделия похоже на транзистор но его в схеме нет. Кто ответит?

Duino A.R.
Онлайн
Зарегистрирован: 25.05.2015

velder72 пишет:
Уважаемые форумчане. Кто подскажет что за радиодеталь стоит между двух больших кондёров если смотреть на фото готового изделия похоже на транзистор но его в схеме нет. Кто ответит?

Это 3-х выводной стабилизатор напряжения. Делает из входных +12 В нужные для Ардуино +5 В. На схеме он есть, только безямянный. На фото схемы в левом верхнем углу между парами конденсаторов. Квадратик выводы влево, вниз, вправо.

Роман728
Offline
Зарегистрирован: 06.12.2015

OlegK пишет:

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

1. Что ручник поднят максимально (может только-только с концевика сошёл).

2. Что ручник поднят максимально, но колодки смогут удержать его на месте (растянут трос, заел или колодки стёрлись-замаслены).

По аналогии, как это сделано в сигналках Старлайн -

На работающем двигателе: взводим ручник и нажимаем кнопку брелка. Включается поддержка зажигания. Поворачиваем ключ зажигания на "выкл" и вынимаем его. Двигло продолжает работу. Выходим из салона и закрываем дверь. Ставим авто под охрану. Всё, готовы к запуску... При отклонениях от алгоритма - фигвам, а не запуск

Такой подход гарантирует, что коробка передач находится в нейтрали и авто никуда не уедет.

 

 

Далее.

Включать печки-фары-прочие потребители лучше после факта запуска двигателя, а то энергии на запуск может не хватить. Вообще, печку лучше включать после определённого времени прогрева, когда это имеет смысл. А фары, к примеру, включать вообще не имеет смысла, лучше габариты (или поворотниками моргать) - пусть АКБ чуток позаряжается....

вот это  действительно то что нужно, но как это реализовать  и добавить в этот скейч?

Andreys1986
Offline
Зарегистрирован: 01.10.2017

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

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

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

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

И неизвестно кто обрабатывает команды, GSM модуль или центральный блок, слишком много неизвестных.

Конечно, если есть блок сигналки с GSM модулем, то можно попробовать посмотреть как реализовано подключение GSM модуля к блоку, SPI, I2C, или ком порт там, отсюда и плясать.

Дело за малым: заиметь блок для опытов :-)

kozinalexey
Offline
Зарегистрирован: 23.05.2011

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

 

Gummi_bear
Offline
Зарегистрирован: 23.11.2014

Если использовать бесконтактный (как на фото), то подключать его от зажигания, и анализировать тоже после включения зажигания.

А то ток жрать будет :-)

У себя поставил магнит на кулису, и платочку с герконами, платочку расположил так, чтобы в любом положении кроме нейтрали герконы были замкнуты.

 

 

Andreys1986
Offline
Зарегистрирован: 01.10.2017

Gummi_bear пишет:

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

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

И неизвестно кто обрабатывает команды, GSM модуль или центральный блок, слишком много неизвестных.

Конечно, если есть блок сигналки с GSM модулем, то можно попробовать посмотреть как реализовано
подключение GSM модуля к блоку, SPI, I2C, или ком порт там, отсюда и плясать.

Дело за малым: заиметь блок для опытов :-)

Все ясно. Если команды обрабатывает блок сигнализации то их можно будет посмотреть через "монитор" которые посылает с телефона программа.

MaksVV
Онлайн
Зарегистрирован: 06.08.2015

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

можно собрать такой модуль.  http://arduino.ru/forum/proekty/gsm-ustroistvo-upravleniya-kotlami-webasto-i-ne-tolko  Он подключается в выходам сигналки старлайн "по проводам". Но только к моделям начиная с А94

Единственное включить и выключить охрану с GSM нельзя, но оповещение тревоги, состояния ДВС, зажигания, запуск/останов всё будет.