Jump to content

Welcome to vip-cxema.org

logo3.png

The forum has a section for guests, where you can ask your questions without registration: Вопросы и ответы

By registering, you will be able to send private messages, receive notification of replies to topics. You can always send a message, many restrictions are removed.


varelik74

Кнопка START-STOP Engine

Recommended Posts

Здравствуйте уважаемый автор и разработчик данной кнопки старт-стоп. Хочу повторить ваше изобретение.  Можно ли как-нибудь дополнить схему и/или прошивку -контроль работы двигателя по тахосигналу? Где-то на форуме про это уже писали…Спасибо за ответ!

Share this post


Link to post
Share on other sites
 

Необходимо переписывать программу.

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

Share this post


Link to post
Share on other sites
 

Ждущий мультивибратор при определенной частоте будет переходить из лог1 в лог0 и подавать по схеме на RB5 или 11 ножку? Извините за глупые вопросы, ответы. В этом деле новичок.  Начал обучатся программированию МК.

Share this post


Link to post
Share on other sites
 

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

Сейчас просто времени нет заниматься программированием.

На мк программа тоже простая, запускаем внутренний таймер, отлавливает прерывание по rb0 (на него побаём импульсы с датчика холла) и сбрасываем таймер, перед этим проверив что он насчитал. Если таймер переродиться или посчитал до определённого значения, делаем вывод, что двигатель имеет недопустимо низкие обороты и выдаём лог 1 или 0 на выводе мк.

 

Share this post


Link to post
Share on other sites
 

Эх как много еще вопросов)... Ну ни че еще все изучение впереди! А можно в протеусе подобный эмулятор тахо сигнала подать?

Share this post


Link to post
Share on other sites
 
 

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

Share this post


Link to post
Share on other sites
 

Типа того. 700об/мин это примерно 25Гц. Необходимо, чтобы при входной частоте от 25Гц и выше ждущий мультивибратор перекидывался и оставался в этом состоянии, пока частота не снизиться. Сейчас просто времени нет заниматься программированием. На мк программа тоже простая, запускаем внутренний таймер, отлавливает прерывание по rb0 (на него побаём импульсы с датчика холла) и сбрасываем таймер, перед этим проверив что он насчитал. Если таймер переродиться или посчитал до определённого значения, делаем вывод, что двигатель имеет недопустимо низкие обороты и выдаём лог 1 или 0 на выводе мк.

 

 

Пытаюсь сделать вами описанный алгоритм тахосигнала. Пока успехи не очень. Такой вопрос. Мне TMR1 надо настраивать на 25 гц? Влияют ли друг на друга TMR1 и прерывания по порту B0. Т.е к примеру если ТМР1 работает на частоте 25гц и каждое переполнение фиксируется флагом и обнуляется, а порт B0 ловит прерываения с частотой 30 Гц, как это отобразится на прерываниях ТМР1. Или немного по другому - Во время переполнения ТМР1 записывается флаг >переходим в подпрограмму прерывания> обнуляем флаг и в этот момент(когда находимся в подпрограмме прерывания) идет ли подсчет импульсов с RB0 и на оборот. Если прервали выполнение программы по RB0 перешли в подпрограмму, что с TMR1 происходит? Он так и продолжает считать, прерывать, т.е на своей волне работать. .... 

Думаю понятно что-нибудь написал))

Share this post


Link to post
Share on other sites
 

При обнаружении аппаратного прерывания, не важно от чего, программа переходит в подпрограмму обработки прерывания. В этой подпрограмму кода должно быть минимум: проверка флагов прерывания (выяснение от чего оно произошло), присвоение переменным нужных значений (например переменной присваиваем значение, которое насчитал таймер), сброс флагов прерывания. Вся остальная логика должна находиться вне этой подпрограммы. Если натолкать в подпрограмму обработки прерывания много кода, то при её выполнении можно пропустить очередное прерывание.

 

Алгоритм такой:

•Обнуляем tmr1 и остальные переменные;

•включаем прерывания по b0 и tmr1;

•запускаем tmr1;

•при прерывании проверяем флаги, если по b0, то переписываем значение tmr1 в переменную и обнуляем его значение. Если по tmr1, то присваиваем переменной, которое определяет состояние двигателя, что он не заведён. Сбрасываем флаг соответствующий прерывания;

•в основной программе у нас две переменные, одна отвечает за состояние двигателя (заведён или нет), вторая содержит значение таймера. Если значение таймера не равно нулю (прерывание произошло по b0), то сравниваем это значение с заданным и делаем вывод г состоянии двигателя.

Делитель таймера необходимо настроить так, чтобы при минимальных оборотах он не переполнялся.

700об/мин - это около 25гц. То есть за 0,04сек он не должен насчитывает больше 16384.

Как то так.

Share this post


Link to post
Share on other sites
 

Я не пойму, почему 20 Гц это 700 об/мин? Это 2 импульса за один оборот коленвала? 25Гц это 1500 об/мин если считать 1 импульс на один оборот

http://www.translatorscafe.com/cafe/RU/units-converter/frequency-wavelength/1-36/герц-оборотов_в_минуту/

 

Продолжает ли считать ТМР1 если сработало прерывание по порту B0? Это не для вышеописанного алгоритма, а для себя.

Share this post


Link to post
Share on other sites
 

Tmr1 считает до тех пор, пока его не остановить.

 

2 импульса на 1 оборот двигателя.

3000об/мин : 60 = 50об/мин. Частота вращения распредвала в 2 раза ниже: 50об/сек : 2 = 25об/мин. Но перед датчиком холла вращается железяка с 4 прорезями, и получается 25об/мин × 4 = 100гц.

 

700/60=11,66. 11,66/2=5,83. 5,83×4=23.33Гц

 

1500/60=25. 25/2=12,5. 12,5×4=50Гц

Share this post


Link to post
Share on other sites
 

С цифрами все понятно. Я то хотел подцепить к модулю зажигания, там то и получается 2 импульса на 1 оборот т.е  700 об.мин =23,33Гц. И напряжение 12В.

Share this post


Link to post
Share on other sites
 

Не прошло и месяца как я смог сделать что-то рабочее)) Перепробовал много разных алгоритмов отлавливания RPM, в том числе и алгоритм Админа. И не один корректно не работал. У всех была одна похожая проблема. Пока я не понял, что при запуске у двигателя не равномерная скорость вращения. И при измерении ее получались разные показания RPM в еденицу времени ( пробовал разные промежутки. от 1 сек до 0,0005сек). Попробовал ввести еще одну переменную, которая хранит в себе среднее значение за 2 такта или 4 импульса. После этого все четко заработало!!!!!!!!Точность составляет +-20об, отслеживал по бортовому компьютеру

Share this post


Link to post
Share on other sites
 

Поделись кодом, чтобы его не изобретать.

На днях я код устройства изменил для замены кнопки выключателем. Надо сказать, выключатель намного удобнее кнопки. Нажал тормоз, включил выключатель и пристегивайся, мотор сам заведется. Приехал, выключил выключатель и мотор заглох. Купил на разборе выключатель родной (попался выключатель фар), воткнул в него 2 светодиода, зеленый и красный. Воткнул его вместо заглушки. Кто не знает, хрен догадается вообще как машину завести. Ездию уже неделю, нравиться больше с ним, чем с кнопкой.

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

Share this post


Link to post
Share on other sites
 

Админ, ты в статье написал, что создал под себя алгоритм запуска. Так и я) Написал для себя. Твой меня не устроил. Есть некоторые моменты, которые мне не понравились, да и интерес был в написании прошивки и в дальнейшем спаять рабочий, готовый вариант. Я выложил готовый вариант своей версии прошивки в исходнике PIC Basic Pro и симуляцию в протеусе. Не судите строго это мое первое изобретение. Может быть, что-нибудь подскажите что можно  упростить, оптимизировать в основном коде? Саму прошивку не обкатывал в желе, еще паяю, но на макетке собрал специально для отслеживания тахосигнала. Эта часть программы работает.

https://vk.com/doc96259745_437805544

Share this post


Link to post
Share on other sites
 

Не существует идеального устройства! Перед написанием кода я собрал все статьи на эту тему, почитал форумы, пожелания, выбрал для себя нужное и воплотил в железе.

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

Screenshot_2016-08-22-00-14-14-666_com.android.browser.png

Share this post


Link to post
Share on other sites
 
 
 
 

Уважаемый Админ!

Очень понравилась ваша конструкция. 

Есть некоторые вопросы:

1. Контроллер - PIC16F84A. У себя в городе днем с огнем не сыскать. Возможен ли перенос на более "народный" PIC16F628?

2. Разобрались ли с RPM? Могу дать схему цепи, которая применяется практически во всех сигнализациях. 

3. Алгоритм запуска - возможно ли реализовать такой:

 

Педаль тормоза не нажата:

-первым нажатием вкл ACC, вторым - IGN, третьим - АСС и IGN выключаются.

Педаль тормоза нажата:

- последовательно вкл. АСС - IGN - STARTER, ожидание 2-3 сек сигнала о том, что ДВС запущен - прошел запуск - LED - зеленый.

- Если ДВС заведен, то короткое нажатие на кнопку глушит ДВС, система в ожидании запуска. 

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

 

Много наговорил - если ответите, буду признателен.

Share this post


Link to post
Share on other sites
 

Перенести на 628 легко.

С рпм разобрался, но не проверял.

Если составите полный алгоритм работы устройства, я перепешу программу под ваши нужды.

Share this post


Link to post
Share on other sites
 

Благодарю за оперативный ответ.

Алгоритм думаю, такой же, как на большинстве буржуинских машин:

 

Снято с охраны.

1. На на вход RFID подан либо импульс (минус) либо постоянный минус (защелка) - красный диод мигает, или постоянно горит красным, система готова к работе, питание на систему подано - режим ожидания действий. 

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

 

Алгоритм 1 - без кручения стартером (педаль тормоза НЕ нажата):

А) - первое нажатие на PTS включает ACC, и оставляет включенным.

В) - второе нажатие на PTS включает IGN (ЗАЖИГАНИЕ), АСС также включен.

С) - третье нажатие - выключает АСС и IGN - переход в режим ожидания. 

 

Алгоритм 2 - запуск ДВС.

А) Педаль тормоза нажата.

     а) - короткое нажатие кнопки приводит к последовательному включению АСС-пауза 1 сек - IGN - пауза (2-10 сек, программируется) - STARTER - АСС на время кручения стартером отключается - запуск ДВС. На проводе контроля запуска  - "плюс" с "масла", "генератора" или ТАХОМЕТРА. Или под тахометр - отдельный вход. 

 

Алгоритм 3 - глушение ДВС

А) короткое нажатие на PTS при условии что АСС, IGN активны, и контроль ДВС показывает заведенный мотор, приводит к отключению всех выходов - дежурный режим. Педали и ручники - не учитываются. 

 

Алгоритм 4 - принудительный запуск ДВС.

а) педаль тормоза нажата.

в) нажатие на PTS более 5-7 сек приводит к включению АСС - пауза 1 сек - IGN - пауза 1 сек - STARTER - крутит пока не заведется, пока не будет отпущена PTS, контроль запуска - задержка секунд на 5, чтобы ДВС уже завелся, и только после этого начался контроль запуска (для зимы).

 

5. Если двигатель вдруг заглох:

а) На проводе контроля работы ДВС - минус (пропал сигнал контроля)

в) Через 5 сек отключаются ACC и IGN, - переход в дежурный режим

 

Берусь развести печатку под создаваемое устройство. Главное чтоб Протеус был со схемой. 

 

Заранее благодарен.

Share this post


Link to post
Share on other sites
 
 

Доброго времени суток. Собрал схему. Прошил. На столе все работало ок. Поставил в машину и тут сюрприз и не один. Подскажите, если не сможете как вылечить сиё.

Проблема следующая:

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

2) через раз зависает совсем и ни на что не реагирует, помогает выкл/вкл.

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

Прошивка 1.7 если не ошибаюсь.

Share this post


Link to post
Share on other sites
 

Vaso добрый день!

Что за машина? Есть фото собранного устройства?

Какие реле используете?

Аккумулятор и генератор в порядке?

Такое впечатление, что блоку нехватает напряжения.

У меня было при дохлом аккумуляторе такое же, 3 попытки пропикал, а стартер и не крутнул.

Share this post


Link to post
Share on other sites
 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...



×
  • Create New...