Микроконтроллер в автомобиле
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Так поэтому я предлагал после снятия сигнала с Вх.2 выдержку (типа зона нечувствительности, которую можно довести до секунды), а только потом определять, что находится на Вх.1 и взависимости от этого - или таймер, или предустановку.
Проверил на машине - таймер не работает, одна предустановка. Переключал и быстро и медленно, при медленном переключении из 2 в 0 в первом положении успевает происходить взмах, хотя предустановка 5 секунд. Видимо на самом деле 0-1-0-2-0-1-0 и это надо учесть, лучше выдержкой. кмк.
Проверил на машине - таймер не работает, одна предустановка. Переключал и быстро и медленно, при медленном переключении из 2 в 0 в первом положении успевает происходить взмах, хотя предустановка 5 секунд. Видимо на самом деле 0-1-0-2-0-1-0 и это надо учесть, лучше выдержкой. кмк.
Re: Микроконтроллер в автомобиле
nvz писал(а):Так поэтому я предлагал после снятия сигнала с Вх.2 выдержку...
Нет, не поэтому, еще раз та же цитата из ТЗ: "Переводим рычаг из 2 в 0 положение (т.к. перевод идёт через 1 положение сделана задержка 0,5 сек. до начала отсчёта )".
Давай не будем искать виновных и оправдываться. Надо переделать - переделаю, раз взялся. Только обнови описание, чтобы больше не путаться.
nvz писал(а):Видимо на самом деле 0-1-0-2-0-1-0 и это надо учесть, лучше выдержкой....
Выдержкой тут не получится. Надо переписывать логику... Как бы ничего сложного, но заново.
Сейчас занят другим проектом, не раньше выходных...
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Soir писал(а):Выдержкой тут не получится.
не получится технически или логически?
Re: Микроконтроллер в автомобиле
nvz писал(а):не получится технически или логически?
У меня вся логика построена на поочередном прохождении положений, каждое положение отслеживается программой. Просто увеличить выдержку не выйдет. Например, ситуация, что после положения 2 сразу 0 в программе не определена, я даже не могу сказать как программа себя поведет. А от того, что было перед этим могут быть еще непредсказуемые варианты. Ну и так далее. Все равно надо всю программу шерстить, проще заново.
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Осмелюсь высказать своё мнение, возможно и неверное.
Зачем отслеживать все действия? Не проще прописать условия работы?
Работа предустановки: 0-1 и 2-t-1
Обнуление таймера: 2 и 1-0, превышение 100 сек.
Запуск таймера: 2-t-0
Работа таймера: 2-t-0-1
(t - пресловутая задержка,блокировка)
А так-же блокировка 2 при 1.
Хотя это только предположение.
Зачем отслеживать все действия? Не проще прописать условия работы?
Работа предустановки: 0-1 и 2-t-1
Обнуление таймера: 2 и 1-0, превышение 100 сек.
Запуск таймера: 2-t-0
Работа таймера: 2-t-0-1
(t - пресловутая задержка,блокировка)
А так-же блокировка 2 при 1.
Хотя это только предположение.
Re: Микроконтроллер в автомобиле
nvz писал(а):Зачем отслеживать все действия? Не проще прописать условия работы?
Я не вижу разницы в "отслеживать действия" и "прописать условия работы". Ведь все равно остается: если было положение 2, затем положение 0 не более чем 0,5 сек, а затем положение 1, то запускается таймер, а если положение 0 более 0,5 сек... Как это правильно назвать? отслеживать или прописать условия? Да все равно как. В программе будут взводиться и сбрасывать флаги, запускаться и обнуляться счетчики и таймеры...
За время, что мы тут флудим, я бы уже прошивку переписал. Там букв будет в 10 раз меньше.
nvz писал(а):Работа предустановки: 0-1 и 2-t-1
Обнуление таймера: 2 и 1-0, превышение 100 сек.
Запуск таймера: 2-t-0
Работа таймера: 2-t-0-1
(t - пресловутая задержка,блокировка)
А так-же блокировка 2 при 1.
Это и есть новое описание? Что такое: "Работа предустановки: 0-1 и 2-t-1"?
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Soir писал(а): Что такое: "Работа предустановки: 0-1 и 2-t-1"?
Предустановка - импульсы, с заранее прописанной паузой из EEPROM, по умолчанию - 5 секунд.
0-1: появление активного сигнала (нолика) на Вх.1 из положения 0.
2-t-1: определение активного сигнала на Вх.1 при переключении со Вх.2 (положения 2) после паузы нечувствительности (0,5 сек).
Тире надо понимать как стрелки.
Тут ещё одна тонкость: в положении 2 (непрерывная работа дворников) если начинаю переключения во время начала взмаха - единица на Вх.2 появится только после остановки дворников, на это время активными могут быть оба сигнала, если установлено положение 1.
Хотя вряд ли, при положении 1 - второй вход блокируется...(мысли вслух)
Soir писал(а):если было положение 2, затем положение 0 не более чем 0,5 сек, а затем положение 1, то запускается таймер
???
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
набросал логику работы дворников с конструкцией
- Вложения
-
- Упрощённая схема управления дворниками.doc
- (27 КБ) 644 скачивания
Re: Микроконтроллер в автомобиле
nvz писал(а):набросал логику работы дворников с конструкцией
Тяжело мне что-то дается понимание, как все-таки должна работать программа.
1. Появился новый термин: "переключение во время движения щёток вниз". Что мне с ним делать? А если щетки вверх? Как программа должна определять направление движения щеток и должна ли?
2. "Немного по-другому схема будет работать при установке диода в цепь от мотора до положения 2 переключателя, анодом к переключателю." А с этим что делать? Это надо в прошивке учитывать?
3. "потом в нормальном режиме работает предустановка." Нормальный режим это какой? 0, 1, 2? Мы же договорились, всё должно быть однозначно, термины одни, а тут все новые и новые появляются...
4. Согласно схеме, все переключения идут через положение 1, как и было с самого начала. Теперь это снова правильно?
5. "Похоже переключение через ноль здесь происходит только при переключении из 1 положения во 2." Каким образом рычаг из положения 1 в положение 2 попадет через положение 0? Или имеется ввиду кратковременное размыкание контактов переключателя при переходе из одного положения в другое?
6. Сколько групп контактов в выходном реле? Две? Одна параллельно доводчику, вторая блокировка входа 2? Программную блокировку входа 2 можно убрать?
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Soir, извини меня баламута, лезу с советами, кидаю идеи по три в день..... Надо бы сделать перерывчик: сегодня установил диод для эксперимента и схемка заработала, правда через раз, но ведь заработала! Полчаса упражнялся с дворниками, хотел выявить закономерность отказа работы таймера - пока не понял. Завтра ещё поиздеваюсь, может докопаюсь до сути, напишу, если что. Первое что заметил - при медленном переключении рычага со 2 положения на 0 в первом положении дворники успевают запуститься...и таймер не работает.
Re: Микроконтроллер в автомобиле
nvz писал(а):...Первое что заметил - при медленном переключении рычага со 2 положения на 0 в первом положении дворники успевают запуститься...и таймер не работает.
Так было в ТЗ:
nvz писал(а):Переводим рычаг из 2 в 0 положение (т.к. перевод идёт через 1 положение сделана задержка 0,5 сек. до начала отсчёта) - начинается отсчёт секунд...
...Если рычаг с положения 2 перевести в положение 1 - таймер не запускается, просто через 0,5 сек. импульсы с интервалом 5 сек.
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Soir писал(а): если при преходе из положения 2 в положение 0 задержаться на 5 сек в положении 1, то запустится режим 5 сек. Если пройти дальше в положение 0 запускается счетчик, при переводе снова в 1 работает по этому счетчику. После возврата в 0 и повторного включения в 1 - по умолчанию - 5 сек.
Я думал что всё ещё так....
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Поиздевался.. сперва было по старому, т.е. таймер работал через раз. Потом опять эксперимент: на питание МК подвесил электролит какой нашёл - 1500мк/6,3В (стоял на 220мк). Пять минут гонял дворники - результата никакого, но потом - ни одного сбоя. У меня смутные сомнения насчёт штатно установленного электролита, а новый, немного отформовавшись, начал исполнять свою функцию...
В общем нужны боевые действия в дождь, к тому времени кондюк отформуется (езжу каждый день, а схемка включается при включении зажигания). О результатах доложу..
В общем нужны боевые действия в дождь, к тому времени кондюк отформуется (езжу каждый день, а схемка включается при включении зажигания). О результатах доложу..
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Прогнал в боевых условиях: работает не стабильно, таймер срабатывает на 3-4 раз. Soir, напиши какой алгоритм сделан, если не забыл, конечно.
Re: Микроконтроллер в автомобиле
nvz писал(а):Прогнал в боевых условиях: работает не стабильно, таймер срабатывает на 3-4 раз. Soir, напиши какой алгоритм сделан, если не забыл, конечно.
Старался придерживаться ТЗ.
Логика такая (по крайней мере, так задумывалось):
1. Начальное состояние рычаг в положении 0.
2. Переводим в положение 1, дворники начинают работать по таймеру 5 сек.
3. Переводим в положение 2. Работа прекращается, ожидание перехода в положение 1.
4. Переводим в положение 1. Если в положении 1 задержаться более, чем 0,5 сек, то запускается работа по таймеру 5 сек. Если быстро (быстрее, чем 0,5 сек) переключить в положение 0, то запускается отсчет для нового таймера, дворники не работают.
5. Переводим в положение 1, дворники работают по новому таймеру.
6. Переводим в положение 0, дворники отключаются, новый таймер сбрасывается. Устройство в начальном состоянии (пункт 1).
Кнопка SET для установки значения таймера в положении 1 для пункта 2. Весь алгоритм симулируется в Proteus, так что гоняй, проверяй что не так.
Попробуй подтянуть входа МК резисторами ~1 кОм к +5V. И с входов на общий провод конденсаторы ~0,1мкФ. Может идут ложные срабатывания... Защита от дребезга присутствует, но все-таки.
А может наоборот, причина в следующем:
Дребезг обрабатывается около 0,1 сек, может это время надо уменьшить, или увеличить время нахождения в положении 1 (пункт 4), а то получается узкий коридор 0,1 – 0,5 сек, в течении которого надо переключиться в режим 0, чтобы запустился отсчет для нового таймера?
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
Дополнительно подтягивать входа МК к плюсу вряд ли необходимо: у меня уже больше года по такой-же схеме работают повторители тормозов-поворотников, нареканий никаких. По схеме сигналы на входы МК подаются с коллекторов транзисторов 315, на базы транзисторов сигналы с подрулевого подаются через 10кОм, так же базы подтянуты к массе через 10кОм. Где ты предлагаешь установить конденсаторы: на входах МК или перед базовыми резисторами?
Только что провёл эксперимент, решил проверить работу входных сигналов: параллельно входам схемы посадил светодиоды через 1,5кОм. Что странно - всё сработало без проблем, гонял дворники минут пять. Что интересно - отсчитываю, к примеру, 3 секунды, включаю 1 положение, а дворники работают через две секунды. Ну это понятно - я и МК считаем по разному. На больших выдержках это незаметно, а вот на маленьких - увы. Да и Бог с ним, к тому-же ты сразу отказался вести счёт с десятыми. Сегодня вроде у нас опять дождь обещают, проверю в боевых условиях - отпишу.
Только что провёл эксперимент, решил проверить работу входных сигналов: параллельно входам схемы посадил светодиоды через 1,5кОм. Что странно - всё сработало без проблем, гонял дворники минут пять. Что интересно - отсчитываю, к примеру, 3 секунды, включаю 1 положение, а дворники работают через две секунды. Ну это понятно - я и МК считаем по разному. На больших выдержках это незаметно, а вот на маленьких - увы. Да и Бог с ним, к тому-же ты сразу отказался вести счёт с десятыми. Сегодня вроде у нас опять дождь обещают, проверю в боевых условиях - отпишу.
Re: Микроконтроллер в автомобиле
nvz писал(а):Дополнительно подтягивать входа МК к плюсу вряд ли необходимо: у меня уже больше года по такой-же схеме работают повторители тормозов-поворотников, нареканий никаких. По схеме сигналы на входы МК подаются с коллекторов транзисторов 315, на базы транзисторов сигналы с подрулевого подаются через 10кОм, так же базы подтянуты к массе через 10кОм. Где ты предлагаешь установить конденсаторы: на входах МК или перед базовыми резисторами?
Подтягивать предлагаю для проверки и поиска причины, если не поможет, тогда внешнюю подтяжку можно убрать. Конденсаторы, тоже для проверки, поставь параллельно транзисторам. А резисторы в базах транзисторов уменьши. Который на массу до 1 кОм, а который с переключателя до 3-5 кОм.
nvz писал(а):отсчитываю, к примеру, 3 секунды, включаю 1 положение, а дворники работают через две секунды. Ну это понятно - я и МК считаем по разному. На больших выдержках это незаметно, а вот на маленьких - увы...
Посмотрю, исправлю.
Re: Микроконтроллер в автомобиле
Soir писал(а):Посмотрю, исправлю.
Посмотрел, МК считает правильно. Наверно вопрос все-таки в десятых. МК увеличивает счетчик каждую секунду, если переключатель будет переведен из положения 0 в положение 1, скажем, через 2,9 сек, то счетчик отсчитает только 2 сек.
Если сделаю дискретность отсчета 0,25 сек будет нормально, или все-таки лучше 0,1 сек?
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Микроконтроллер в автомобиле
nvz писал(а):А резисторы в базах транзисторов уменьши. Который на массу до 1 кОм, а который с переключателя до 3-5 кОм.
Да я уж и сам подумал об этом. Сделаю.
Soir писал(а):если переключатель будет переведен из положения 0 в положение 1, скажем, через 2,9 сек, то счетчик отсчитает только 2 сек.
Я это и имел ввиду, говоря о маленьких выдержках
.Soir писал(а):Если сделаю дискретность отсчета 0,25 сек будет нормально, или все-таки лучше 0,1 сек?
Как прощще, тебе виднее...
На улице жара, 30 в тени, может всё-таки дождь будет (во всяком случае по телеку обещали).
Re: Микроконтроллер в автомобиле
nvz писал(а):Soir писал(а):Если сделаю дискретность отсчета 0,25 сек будет нормально, или все-таки лучше 0,1 сек?
Как прощще, тебе виднее...
Проще 0,5 сек с округлением. То есть, от 2,75 до 3,25 сек -> 3 сек; от 2,25 до 2,75 -> 2,5 сек. Если нужно точнее - говори, тут проблем не будет. Если надо будет что-то в алгоритме поправлять, тогда уже заодно...
- Вложения
-
- WSW.zip
- (919 байт) 167 скачиваний