Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Незабывайка включения - отключения ходовых огней

Незабывайка включения - отключения ходовых огней 28 окт 2017 09:24 #1

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
Здравствуйте. просьба написать прошивку для устройства-незабывайка включения-отключения ходовых огней. Для забывчивых думаю будет полезным. Микроконтроллер Attiny13. Контроль по включению зажигания, габаритов и датчику давления масла.Для сигнализации на выход подавать меандр для подключения бузера с генератором или лампочки. При возможности добавить еще один выход для управления реле, для автоматического включения света. Принцип работы опишу.
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 28 окт 2017 12:28 #2

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 8044
  • Спасибо получено: 2776
Сначала подробно опишите, а потом посмотрим...
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 28 окт 2017 21:02 #3

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
Мк назначить три входа и два выхода.
PB0 IN0 вход с датчика масла.
PB1 IN1 вход + габаритов
PB2 IN2 вход + с замка зажигания
PB3 OUT1 выход на бузер или лампочку (меандр 1 Гц. на время 30 сек.)
PB4 OUT2 выход на реле
При не заведенном двигателе и выключеном габарите на входах IN1 и IN0 лог.0.
получается пять комбинаций состояния входов и выходов.
1)
IN0=0 \ зажигание включено, подано питание на устройство-на входе IN2 лог.1, двигатель
IN1=0 \ не заведен-вход IN0=0, габарит выключен-вход IN1=0, на выходах OUT1 и OUT2 лог.0.
IN2=1
OUT1=0
OUT2=0

2)
IN0=1 \ зажигание включено-вход IN2=1,двигатель заведен-вход IN0=1, габарит не включен-вход
IN1=0 \ IN1=0, на выход OUT1 подать сигнал (меандр с частотой 1 Гц. на время 30 сек. или
IN2=1 \ прекратить (начать с начало)если значения входов были изменены (согласно
OUT1=меандр \\новой комбинации входов) выход OUT2 с задержкой в 3 сек. перевести в логическую
OUT2=1 \\ 1.

3)
IN0=1 \ двигатель заведен, габарит включен-на всех входах лог.1, выход OUT1=0 (сигнал не
IN1=1 \ не подается) выход OUT2=1
IN2=1
OUT1=0
OUT2=1

4)
IN0=0 \ зажигание включено-вход IN2=1, габарит включен-вход IN1=1, двигатель не
IN1=1 \ заведен-вход IN0=0, на выходе OUT1 сигнал меандр на 30 сек. или прекратить (начать
IN2=1 \ с начало) если значения входов были изменены (согласно новой комбинации входов) ,
OUT1=меандр \\ на выходе OUT2 лог.0
OUT2=0

5)
IN0=0 \ зажигание выключено-вход IN2=0,двигатель не заведен-вход IN0=0, габарит включен-
IN1=1 \ вход IN1=1, на выходе OUT1 сигнал меандр на 30 сек.или не измениться состояние
IN2=0 \входов и выдать сигналы по новой комбинации
OUT1=меандр
OUT2=0
Как я понимаю, при любом изменении состояния любого входа или входов, произвести иницилизацию всех входов сначала и по их состоянию выдать значения на выходы
Последнее редактирование: 29 окт 2017 01:23 от vech. Причина: добавление
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 28 окт 2017 22:16 #4

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 8044
  • Спасибо получено: 2776
Много противоречий или неточностей. Разобраться в работе я не смог.
Пример:
I2)
IN0=1 зажигание включено-вход IN2=1,двигатель заведен-вход IN0=1, габарит не включен-вход
IN1=0 IN1=0, на выход OUT1 подать сигнал (меандр с частотой 1 Гц. на время 30 сек.)
IN2=1 выход OUT2 с задержкой в 3 сек. перевести в логическую 1.
OUT1=1
OUT2=1
Почему "IN1=0 IN1=0" дважды подряд?
Почему OUT1 меандр, и тут же OUT1=1? Если в течении 30 сек меандр, а потом лог.1 - так и напишите.

Вначале писали, что
При выключенном зажигании на всех входах и выходах лог.0.
а в 5) уже при IN2=0 OUT1 почему-то равен 1.

В идеале должно быть так (только форма, логика по Вашему описанию для меня не ясна, поэтому пример):
если IN0=1 и IN1=1 тогда OUT1=1; OUT2=0.
если IN0=0 и IN1=1 тогда OUT1=0; OUT2=1.
если IN0=1 и IN1=0 тогда OUT1 - меандр с частотой 1 Гц на время 30 сек, затем OUT1=0; OUT2=0.
если IN0=0 и IN1=0 тогда OUT1=0; OUT2 с задержкой в 3 сек. перевести в логическую 1.
То есть, для состояния входов возможно 4 комбинации - вот они все здесь представлены. Для каждой комбинации входов - однозначное состояние выходов.

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

При необходимости, особые условия. Например, при выдаче меандра изменился IN2 (стал=0). Программа должна немедленно завершить выдачу меандра, или же досчитать 30 сек, а потом отключить?
Последнее редактирование: 28 окт 2017 22:18 от Soir.
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 28 окт 2017 23:50 #5

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
второй раз IN1=0 написал в описании, так совпало, пытался отделить большими пробелами-не получается.
Запись о состоянии входов при выключенном зажигании убрал. Она ошибочна.При выключенном зажигании и выключенных габаритах питание на МК не подается.
на выходе OUT1 меандр обозначил лог.1. Исправлю.
По пункту 5 верно. Это возможное состояние входов и выходов. Тоисть при выключенном зажигании на входе IN1 при включенном габарите будет лог.1, от этого входа через диод будет подаваться питание на МК. МК подает сигнал на выход OUT1, пока не будет выключен габарит (МК будет обесточен)
Своими словами так. Включили только зажигание, габарит не включен, двигатель не заведен, никаких сигналов на выходах нет. Если затем включить габарит-подается сигнал меандр в течении 30 сек.(сигнал что включен свет) прекратить сигнал если был заведен двигатель или пока не будет выключен габарит если двигатель не заведен. И если двигатель завели, а габарит не включен то подается сигнал меандр в течении 30 сек. (но уже что свет не включен),или прекратить если свет был включен
Последнее редактирование: 29 окт 2017 01:36 от vech. Причина: добавление
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 29 окт 2017 05:53 #6

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 8044
  • Спасибо получено: 2776
vech пишет:
второй раз IN1=0 написал в описании, так совпало, пытался отделить большими пробелами-не получается.
Какая разница большие пробелы, маленькие пробелы или слэш. Почему повторяется?
Приведите описание к так виду, как я привел пример. Она у меня уместилась в четыре строчки, у Вас половина страницы, а понять ничего невозможно.
vech пишет:
IN0=1 \ зажигание включено-вход IN2=1,двигатель заведен-вход IN0=1, габарит не включен-вход
IN1=0 \ IN1=0, на выход OUT1 подать сигнал (меандр с частотой 1 Гц. на время 30 сек. или
IN2=1 \ прекратить (начать с начало)если значения входов были изменены (согласно
OUT1=меандр \\новой комбинации входов) выход OUT2 с задержкой в 3 сек. перевести в логическую
OUT2=1 \\ 1.
Даже догадаться не могу как это все должно работать...
Или опишите простыми словами, что это за устройство, его назначение и функции.
При выключенном зажигании и выключенных габаритах питание на МК не подается.
А когда подается? Опишите все подробно, я не должен гадать. А еще лучше, приведите схему.
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 29 окт 2017 09:12 #7

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
1) Если IN0=0, IN1=0, IN2=1 тогда OUT1=0, OUT2=0
2) если IN0=1, IN1=0, IN2=1 тогда OUT1=меандр, OUT2 с задержкой 3 сек перевести в лог.1
3) если IN0=1, IN1=1, IN2=1 тогда OUT1=0, OUT2 с задержкой 3 сек перевести в лог.1
4) если IN0=0, IN1=1, IN2=1 тогда OUT1=меандр, OUT2=0
5) если IN0=0, IN1=1, IN2=0 тогда OUT1=меандр, OUT2=0
Примечание-выход OUT1=меандр- это сигнал подается на время до 30 сек. затем OUT1=0 ,если состояние входов было изменено на другую комбинацию, состояние выходов немедленно изменить согласно этой комбинации.
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 29 окт 2017 10:16 #8

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 8044
  • Спасибо получено: 2776
Теперь описание на отлично. Прошивку написал, но один неясный момент остался. Если к примеру, запущен меандр. Входа меняются, но условия подачи меандра сохраняются. Отсчет 30 сек должен начаться заново или программа должна досчитать уже запущенный таймер? Аналогичный вопрос и для задержки OUT2.

А в целом - проверьте логику работы программы.
Вложения:
Последнее редактирование: 29 окт 2017 10:52 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 29 окт 2017 10:28 #9

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
Отсчет 30 сек должен начаться заново или сигнал отключается, в зависимости от комбинации входов. OUT2 пусть всегда включается с задержкой
Администратор запретил публиковать записи гостям.

Незабывайка включения - отключения ходовых огней 29 окт 2017 10:52 #10

  • Soir
  • Soir аватар
  • на форуме
  • Moderator
  • Сообщений: 8044
  • Спасибо получено: 2776
Перезалил прошивку в предыдущее свое сообщение.
Администратор запретил публиковать записи гостям.
Спасибо сказали: vech

Незабывайка включения - отключения ходовых огней 29 окт 2017 11:58 #11

  • vech
  • vech аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 87
  • Спасибо получено: 3
Работает отлично. буду собирать в железе.
Администратор запретил публиковать записи гостям.
Модераторы: wolf2000, Vakula, Айнцвайдрайченко