http://forum.getchip.net/

МОД #076 Игорь 63rus
http://forum.getchip.net/viewtopic.php?f=24&t=879
Страница 1 из 5

Автор:  Игорь 63rus [ 17 фев 2019, 01:54 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

Игорь 63rus

Доброго времени суток. Не знаю, по теме или нет, но напишу сюда. Начинаю изучать ардуино, мало чего пока что понимаю и почти всегда НЕполучается что-либо написать. Скопировать, вставить, загрузить и выгрузить из АТмеги могу. Скопировать чью-либо схему по силам, и даже внести свои коррективы по примерам кода, но не смог открыть ваш "человеческий" код. Не знаю на чём написан. Может быть дадите совет, с чего же начать изучение програмирования, хотя бы на ардуинке.
Микросхема ATtiny 13A
Цель: Нажать дважды на одну кнопку, после второго нажатия, будет включатся/выключатся нагрузка.
Логику работы могу описать, но ещё не могу понять, как это реализовать.
PB2(7) -> PB2 - номер порта по даташиту , (7) - номер контакта , должно быть одно и то же. На всякий случай, если где то ошибка, то смотреть номер контакта.
Програмируется одна кнопка (условно ОК). К- красный , Ж- жёлтый , З- зелёный. Мигания - 4 раза за секунду

Питание подано. PB3(2), РВ0(5), РВ1(6) высокий уровень и PB2(7) низкий,. Если РВ4(3) на низком уровне, то програмирование, РВ3(2) низкий сигнал, РВ0(5) и РВ2(7) высокий сигнал, мигать РВ1(6), ИНАЧЕ нормальная работа.
Состояние первое: При получении первой команды [после включения] (ОК), мигать РВ1(6) 3 секунды, при получении второй команды (ОК), подать низкий синал на РВ3(2) и PB0(5) , а на РВ2(7) и РВ1(6) высокий сигнал->(см. состояние второе). ИНАЧЕ, либо по истечении 3 секунд ИЛИ нажатие любой другой кнопки, подать высокий на PB1(6), мигать PB0(5) 1 секунду.

Сосотяние второе: PB3(2) и PB0(5) низкий уровень. PB2(7) и PB1(6) высокий уровень. первое Нажате (ОК) , Мигать РВ1(6) 3 секунды . Второе нажатие (ОК) РВ3(2) , РВ0(5) , РВ1(6) высокое состояние, РВ2(7) низкое состояние->(см. Состояние первое) Если второе состояние остаётся без изменений в течении не менее 12 и не более 15 часов, НЕ СЧИТАЯ условия ИНАЧЕ во втором состоянии, то включать состояние первое. ИНАЧЕ, либо по истечении 3 секунд ИЛИ нажатие любой другой кнопки, РВ3(2) низкий уровень, РВ2(7) и РВ1(6) высокий уровень, мигать РВ0(5) 1 секунду, подать низкое состояние на РВ0(5).

 подробная Логика работы
При подаче питания, всегда есть + на выходе PB3(2), к нему подключу IRF 840, включаются светодиоды на 12 вольт при этом загорается З-LED по низкому уровню.
Память используется только для сохранения кнопки пульта.
Програмирование по замыканию на массу PB4(3) сюда же подкючается ножка IR-приёмника (РС1838).
Програмируется одна кнопка (условно ОК). При програмировании, на транзисторе минус, на З-LED и К-LED плюс, Ж-LED мигает пока не поймает сигнал.
После выходит в рабочий режим.

При нажатии на кнопку (ОК) один раз, мигает Ж-LED, если кнопка (ОК) не нажата повторно в течении 3х секунд или нажата иная кнопка, то Ж-LED гаснет и трижды мигает К-LED PB0(5) в течении 1 секунды. При этом З-LED и транзистор не меняют своего состояния. Если успели за 3 секунды нажать (ОК), на транзистор РВ3(2) и К-LED подаётся минус, а на Ж и З - LED плюс.

Когда транзистор на ноге (2) закрыт минусом, и минус на К-LED, а Ж и З-LED на плюсе. При нажатии на (ОК), начинает мигать Ж-LED в течении 3х секунд и если успели нажать на (ОК) ещё раз, то на ноги (2) , (5) и (6) подать плюс, а на (7) Минус.
Если не успели нажать на (ОК) , то на (2) остаётся минус, (6) и (7) подать плюс и помигать в течении секунды на (5) ноге и на неё же подать потом минус.
Если же в течении от 12 до 15 часов небыло включения транзистора на ноге(2) то, нужно подать на (2) , (5) и (6) плюс, а на (7) минус. То есть переидти на первое состояние

Разброс по времени от 12 до 15 часов не случайный, так как ATtiny13 не имеет кварца и может считать время не точно, о чём вероятно знаете.


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

Автор:  SVN [ 17 фев 2019, 02:25 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

Прочитал ТЗ три раза, но не понял, что требуется и какова задача. :? Похоже и мне понадобится три дня, чтобы понять написанное. 8-)

Цитата:
Програмирование по замыканию на массу PB4(3) сюда же подкючается ножка IR-приёмника (РС1838).

Схема устройства выглядит так...
Вложение:
096.png
096.png [ 23.32 КБ | Просмотров: 766 ]

То есть подключать TSOP необходимо к выводу 6 (РВ1), а не к выводу 3 (РВ4).

Автор:  Игорь 63rus [ 17 фев 2019, 03:17 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

Изображение
Схема с натуральными компонентами.

Автор:  SVN [ 17 фев 2019, 03:27 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

Программа работы с TSOP использует прерывание по INT0 которое находится у тини13 на ноге 6 (РВ1). Так что жёлтому светодиоду не повезло… :D его необходимо переключить на другой вывод.

Автор:  Игорь 63rus [ 17 фев 2019, 03:34 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

SVN писал(а):
Программа работы с TSOP использует прерывание по INT0 которое находится у тини13 на ноге 6 (РВ1). Так что жёлтому светодиоду не повезло… :D его необходимо переключить на другой вывод.


Понял, тогда РВ1 и РВ4 поменять местами. Не учёл такой расклад. С контроллерами только начинаю знакомится. Что насчёт частоты? 9.6 MHz стоит по стандарту. Хватит-ли памяти таймеру на 12 - 15 часов? Или лучше убавить частоту, для экономии и увеличения времени для таймера...

Автор:  SVN [ 17 фев 2019, 03:43 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

Игорь 63rus писал(а):
Понял, тогда РВ1 и РВ4 поменять местами.

Принял.

Цитата:
Что насчёт частоты? 9.6 MHz стоит по стандарту.

Да.
Цитата:
Хватит-ли памяти таймеру на 12 - 15 часов? Или лучше убавить частоту

Частота в данном случае не мешает…

ЗЫ. Я пока не понял ТЗ. 8-)

Автор:  Игорь 63rus [ 17 фев 2019, 03:55 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

SVN писал(а):
ЗЫ. Я пока не понял ТЗ. 8-)

Теперь я не понял, о чём речь :)
Тэ Зэ или Тэ три? Т - транзистор, Зэ - зелёный Led ?

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

Автор:  SVN [ 17 фев 2019, 04:01 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

ТЗ – это Техническое задание! :-) То есть твои выше написанные хотелки по алгоритму работы устройства.

ЗЫ. Вообще данный алгоритм не касается данного топика… в дальнейшем будет создана отдельная тема для данного мода в этом разделе. ;)

Автор:  SVN [ 17 фев 2019, 04:13 ]
Заголовок сообщения:  МОД #076 Игорь 63rus

:arrow:

Автор:  SVN [ 17 фев 2019, 04:17 ]
Заголовок сообщения:  Re: Mod#076 (держишь кнопку -"1", отпустил -"0")

:arrow:

Страница 1 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/