Как стать автором
Обновить

Трёхкомандное ДУ с программой из 290 16-битных слов

Время на прочтение2 мин
Количество просмотров6.3K
Автор оригинала: Gerhard Schmidt


Устройство на ATtiny13, управляемое программой из 290 16-разрядных слов, написанной на ассемблере, запоминает коды шести кнопок пульта ДУ и включает/выключает три нагрузки. Схема:



Стандартный ИК-приёмник TSOP1740 использует инверсную логику, и это учтено в программе. Принимаемые сигналы вызывают прерывание INT0. Резистор нужен для отвязки ИК-приёмника от микроконтроллера во время заливки прошивки.

Порядок обучения устройства кодам кнопок следующий. Включаем питание при нажатой кнопке на входе PB3 (затем её можно отпустить). Первая нагрузка кратковременно включится и тут же выключится. Нажимаем на пульте кнопку, которой желаем включать первую нагрузку. Как только пульт отправит один и тот же код два раза (это происходит, если держать кнопку нажатой хотя бы пару секунд), первая нагрузка включится на пять секунд и отключится. А вторая включится кратковременно и тоже тут же отключится. Обучаем устройство коду кнопки включения второй нагрузки. Затем третьей. Теперь последовательно проделываем то же с кодами кнопок, которыми желаем отключать нагрузки. Программа запишет коды в ЭСППЗУ, теперь надо выключить и включить питание, но кнопку на входе PB3 не нажимать. Устройство перейдёт в рабочий режим, в котором можно управлять нагрузками.

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



Вообще-то, там должны быть NPN-транзисторы, включённые эмиттерами к общему проводу, но у автора работает и так. Нагрузками могут служить, например, светодиодные лампы с цветовыми температурами в 2700, 4000 и 6400 К. Вы сможете переключать их вручную согласно циркадным ритмам, не полагаясь на автоматику.

Код на ассемблере: без HTML-форматирования и с таковым.

Подтверждение, что удалось уложиться в 290 16-битных слов:

gavrasm Gerd's AVR assembler version 3.5 (C)2015 by DG4FAC
----------------------------------------------------------
Source file: 12_IR-Rx_Switch.asm
Hex file:    12_IR-Rx_Switch.hex
Eeprom file: 12_IR-Rx_Switch.eep
Compiled:    23.11.2016, 23:23:05
Pass:        2
     1: ;
     2: ; ***************************************
     3: ; * IR-Switch 3-Channel with ATtiny13   *
     4: ; * (C)2016 by www.avr-asm-tutorial.net *
     5: ; ***************************************
...
Program             :      290 words.
Constants           :        0 words.
Total program memory:      290 words.
Eeprom space        :       13 bytes.
Data segment        :       29 bytes.
Compilation completed, no errors.
Compilation ended 23.11.2016, 23:23:05
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 38: ↑37 и ↓1+36
Комментарии24

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань