Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене

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

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

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

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

  • Soir
  • Soir аватар
  • онлайн
  • Moderator
  • Дописи: 14111
  • Подякували: 5431
  • sxem.org 2019,2020,2021,2022,2023 Respect Author
Сначала подробно опишите, а потом посмотрим...
Увійдіть до облікового запису, щоб писати повідомлення.

Незабывайка включения - отключения ходовых огней 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
  • Дописи: 14111
  • Подякували: 5431
  • sxem.org 2019,2020,2021,2022,2023 Respect Author
Много противоречий или неточностей. Разобраться в работе я не смог.
Пример:
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
  • Дописи: 14111
  • Подякували: 5431
  • sxem.org 2019,2020,2021,2022,2023 Respect Author
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
  • Дописи: 14111
  • Подякували: 5431
  • sxem.org 2019,2020,2021,2022,2023 Respect Author
Теперь описание на отлично. Прошивку написал, но один неясный момент остался. Если к примеру, запущен меандр. Входа меняются, но условия подачи меандра сохраняются. Отсчет 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
  • Дописи: 14111
  • Подякували: 5431
  • sxem.org 2019,2020,2021,2022,2023 Respect Author
Перезалил прошивку в предыдущее свое сообщение.
Увійдіть до облікового запису, щоб писати повідомлення.
Користувачі які сказали Дякую: vech

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

  • vech
  • vech аватар
  • Оффлайн
  • I'm here long time
  • Дописи: 87
  • Подякували: 3
Работает отлично. буду собирать в железе.
Увійдіть до облікового запису, щоб писати повідомлення.
Модератори: Wolf, Vakula, Айнцвайдрайченко, Soir