Выбор системы управления на расстоянии
При подборе аппарата с ДУ необходимо обратить внимание на ряд факторов. Следует проверить, соответствует ли мощность силового блока аналогичному показателю осветительного прибора, а также требуемому для питания выключателя напряжению
Последнее должно совпадать с количеством вольт в сети, к которой планируется подключать дистанционное устройство.
Желательно также оценить необходимость дополнительных функций, которыми часто оснащаются модели: с одной стороны, они заметно расширяют сферу применения прибора, с другой – в конкретных ситуациях они часто остаются невостребованными.
Наконец, определенное значение имеет дизайн приспособления, его форма, цвет, размеры, наличие дополнительной подсветки, другие факторы.
Настройка
Как настроить универсальный пульт? Как правило, в инструкции подробно описана ручная и автонастройка. Ниже детально изложен каждый способ подключения.
Автонастройка
Для начала стоит рассмотреть автоматический метод настройки универсального пульта для ТВ:
- Первое действие – включить ТВ, направить ПДУ на него.
- Затем понадобится нажатие кнопок с надписью «TV» и «POWER».
- Когда загорится лампочка индикатора, можно отпустить две нажатые клавиши. Если она мигает — это значит, что послан автосигнал для поиска кодовых цифр.
- Далее происходит автоматическое отключение прибора, после которого следует нажать кнопку OK. Это позволит сохранить код телевизора для универсального пульта в автонастройках.
Настройка вручную
Как можно настроить вручную универсальный пульт для телевизора? Чтобы сделать это, достаточно узнать данные, занесенные в специальную таблицу. В ней указаны самые известные компании-производители и шифры, которые ей соответствуют. Когда комбинация найдена, нужно следовать этой инструкции:
- Для начала стоит запустить ТВ-приставку и сам телевизор с использованием разных ПДУ.
- После этого понадобится одновременное нажатие на TV и ОК. Кнопочки удерживаются до того, как засветится лампочка индикатора.
- Следующий шаг – ввести шифр, который подходит для этой модели. Если все сделано верно, светодиод загорится дважды.
- Затем нужно быстрое нажатие на ОК.
Если прибор не срабатывает, можно повторить порядок действий, но уже с другим набором цифр. Есть и другие варианты. Но перед тем, как перейти к режиму программирования понадобится нажать на TV либо POWER на 5-10 сек. Можно использовать такие сочетания клавиш (зависит от производителя или конкретной модели):
- POWER + SET;
- POWER + TV;
- POWER + C;
- TV + SET.
Чтобы сделать все правильно, стоит сверяться с инструкцией. Далее перечислены другие методы настройки.
Способ №1
- Сначала требуется ввести кодовое значение.
- Затем можно попробовать выключить ТВ, плеер или цифровую приставку пультом, переключить ТВ-каналы либо уменьшить\увеличить громкость.
Способ №2
- Первый шаг – нажать клавишу переключения ТВ-каналов. Если лампочка замигает, можно переходить к выполнению следующих команд.
- Далее следует зажать клавишу переключения каналов, пока не произойдет выключение телевизора.
- Затем 5 сек. нужно удерживать клавишу OK.
Способ №3
- Сперва нужно зажать кнопку программирования УП, после – 4 раза на клавишу «9» с секундным интервалом.
- Если лампочка замигает дважды, ПДУ следует положить на равномерную поверхность, направить на ТВ. Настройка займет около 15 минут.
- Когда УПДУ автоматически найдет набор подходящих команд, экран отключится. Далее понадобится быстрое нажатие на кнопку ОК.
Способ №4
Этот вариант годится исключительно для моделей, в которых предусмотрена функция программирования вручную:
- Для начала требуется найти шифры для ручных настроек всех команд в брошюре-инструкции.
- Далее нужно зажать кнопки, чтобы перейти к режиму программирования.
- После того, как загорится светодиод, следует зажать клавишу, на которую пользователь хочет назначить команду.
- Секунду спустя можно ввести кодовое значение этой команды. Действия необходимо повторять до тех пор, пока не будут настроены все функции.
Во-первых, аппаратное обеспечение
ATmega328P – это 28-контактный микроконтроллер от Atmel, один из линейки AVR. Вероятно, он наиболее известен, как наиболее часто используемый микроконтроллер в отладочных платах Arduino, но AT328P способен на гораздо большее, чем то, насколько он используется в Arduino. Если вы хотите увидеть некоторые доказательства этого утверждения, посмотрите на 660-страничное техническое описание.
ATtiny45 – 8-выводный микроконтроллер, который может считаться «младшим братом» ATmega328P. Он обладает многими из тех же функций, но у него не так много контактов ввода/вывода.
Для программирования ATmega328P и ATtiny45 используется последовательный периферийный интерфейс SPI; это трехпроводная (плюс общий провод) шина, состоящая из сигналов «Выход ведущего, вход ведомого» (Master Out, Slave In – MOSI), «Вход ведущего, выход ведомого» (Master In, Slave Out – MISO) и «Тактовый сигнал» (Serial Clock – SCK). Тактовый сигнал генерируется ведущим устройством (мастером) и используется для обеспечения синхронной связи между ведущим и ведомым (или ведомыми); поэтому SPI является «синхронной» шиной связи.
Схемы программирования
Схемы программирования показаны ниже
Обратите внимание, что резистор R2 и LED1 не требуются для программирования, но включены в схемы для тестирования, что будет описано ниже
Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора
Выбор программатора
Доступно несколько программаторов, работающих с ATmega328P и ATtiny45; Atmel-ICE находится в верхней части списка, является прекрасным программатором и будет рассмотрен в следующей статье. Пока что у нас есть менее дорогостоящие варианты, и скупым автором статьи использовался программатор Sparkfun AVR Pocket Programmer. Если вы предпочитаете что-то другое, не стесняйтесь выбирать тот, который соответствует вашим предпочтениям и вашему кошельку. Просто убедитесь, что он использует SPI интерфейс, как описано выше, и будьте готовы внести соответствующие изменения в информацию в этой статье.
ВНИМАНИЕ! Обязательно загрузите и установите на компьютер соответствующий драйвер для AVR Pocket Programmer, прежде чем подключать программатор в первый раз. Если Windows будет разрешено установить неправильный драйвер, то это будет сложно исправить
Инструкции для получения драйвера AVR Pocket Programmer приведены ниже.
AVR Pocket Programmer поставляется с шлейфовым кабелем, который должен быть подключен к микроконтроллеру Atmel. Он оснащен тремя разъемами: разъем 2×5 (мама), который вставляется в штырьковый разъем на AVR Pocket Programmer, еще один разъем 2×5 (мама) ниже на кабеле примерно через 23 см (в данной статье не используется), плюс разъем 2×3 (мама) на другом конце кабеля. Распиновка разъемов показана ниже.
Распиновка разъемов на кабеле программатора AVR Pocket Programmer
Сборки схем программирования на макетных платах
На следующих фотографиях показаны сборки схем программирования ATmega328P и ATtiny45 на беспаечных макетных платах. Шесть коротких перемычек используются для подключения необходимых проводов от разъема 2×3 (мама) к соответствующим контактам микроконтроллера на макете
Обратите внимание, что цвета проводов на фотографиях соответствуют обозначениям на схемах
Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора
Список комплектующих
Кроме нескольких перемычек, для сборки схемы программирования понадобятся следующие комплектующие.
Обозначение элемента | Описание |
---|---|
U1 | Микросхема, ATmega328P-PU, флеш 32 КБ, DIP-28, 1,8–5,5 В |
U1 | Микросхема, ATtiny45-PU, флеш 4 КБ, DIP-8, 2,7–5,5 В |
R1 | Резистор, 10 кОм, 0,25 Вт |
R2 | Резистор, 470 Ом, 0,25 Вт |
LED1 | Светодиод, T1 3/4, желтый |
C1 | Конденсатор керамический, 0,1 мкФ, 50 В |
нет | Программатор, AVR Pocket, PGM-09825 |
нет | Макетная плата, беспаечная, 400 контактов |
USB осциллограф на микроконтроллере ATTINY45-20
Введение
Микроконтроллеры семейства AVR за сравнительно короткое время завоевали
заслуженную популярность во всём мире. Они представляют собой мощный инструмент
для создания современных высокопроизводительных и экономичных многоцелевых
контроллеров.
На настоящий момент соотношение «цена — производительность,
энергопотребление» для AVR является одним из лучших на мировом рынке
8-разрядных микроконтроллеров.
Области применения AVR многогранны. Для семейства «ATTINY» — это интеллектуальны
автомобильные датчики различного назначения, игрушки, игровые приставки,
материнские платы персональных компьютеров, контроллеры защиты доступа в
мобильных телефонах, зарядные устройства, детекторы дыма и пламени, бытовая
техника, разнообразные инфракрасные пульты дистанционного управления.
Цель курсовой работы «USB осциллографа на микроконтроллере
ATTINY45-20»заключается в следующем:
— спроектировать электрическую-принципиальную схему USB
осциллографа с использование микроконтроллера;
— выполнить расчёт электрической цепи светодиода (VD1);
— выполнить программирование микроконтроллера ATTINY45;
— рассчитать надежность системы.
1
Общая часть
1.1 Общие сведения о микропроцессорной системе
Микропроцессорная система представляет собой функционально законченное
изделие, состоящее из одного или нескольких устройств, главным образом из
микропроцессора или микроконтроллера.
Микропроцессор
— процессор
<#»729385.files/image001.gif»>
Рисунок 1 — Структурная схема осциллографа
Простейшая структурная схема осциллографа состоит из трех элементов:
усилителя вертикально отклоняющего напряжения Ux, генератора развертки G и ЭЛТ.
Формирование осциллограммы осуществляется следующим образом: Исследуемое
напряжение (его мгновенное значение во времени) Ux через усилитель подают на
вертикально отклоняющие пластины ЭЛТ. Под действием этого напряжения
электронный луч отклоняется по оси ординат на Y = kSY·Ux(t), где: k —
коэффициент усиления усилителя; SY — чувствительность трубки по оси ординат.
В основе схемы стоит микроконтроллер ATTINY45-20. Осциллограф имеет два
аналоговых входа и питается от USB-интерфейса. Один вход задействован через
потенциометр, что позволяет уменьшать уровень входного сигнала.
Рисунок 2 — Схема микроконтроллера ATTINY 45-20
2.3 Программирование микроконтроллера
Для микроконтроллеров AVR
существуют различные языки программирования, но, пожалуй, наиболее подходящими
являются ассемблер и Си, поскольку в этих языках в наилучшей степени
реализованы все необходимые возможности по управ-лению аппаратными средствами
микроконтроллеров.
Ассемблер — это низкоуровневый язык программирования, использующий
непосредственный набор инструкций микро-контроллера. Создание программы на этом
языке требует хо-рошего знания системы команд программируемого чипа и
до-статочного времени на разработку программы. Ассемблер проигрывает Си в
скорости и удобстве разработки программ, но имеет заметные преимущества в
размере конечного испол-няемого кода, а соответственно, и скорости его
выполнения.
Си позволяет создавать программы с гораздо большим комфортом,
предоставляя разработчику все преимущества языка высокого уровня.
Архитектура и система команд AVR создавалась при непосредственном участии разработчиков компилятора языка
Си и в ней учтены особенности этого языка. Компиляция ис-ходных текстов,
написанных на Си, осуществляется быстро и дает компактный, эффективный код.
Основные преимущества Си перед ассемблером: высокая скорость разработки
программ; универсальность, не требую-щая досконального изучения архитектуры
микроконтроллера; лучшая документируемость и читаемость алгоритма; наличие
библиотек функций; поддержка вычислений с плавающей точ-кой.
Для того чтобы запрограммировать («прошить») микро-контроллер,
необходим программатор. Программатор пред-ставляет собой программно-аппаратный
комплекс, состоящий непосредственно из устройства, связывающего
микро-контроллер с компьютером, и программы, которая этим устройством
управляет. Программатор заносит подготовленную для микроконтроллера программу в
его память.
Следует обратить внимание, что программатор не имеет промежуточного
буфера и не имеет гальванической развязки по отношению к параллельному порту,
поэтому во избежание вывода из строя параллельного порта подключать и отключать
кабель следует при выключенном питании на плате, где установлен контроллер. 3
Специальная часть
3
Специальная часть
Устройство пульта дистанционного управления
Гаджет представляет собой небольшую продолговатую пластиковую коробочку. На лицевой ее части располагаются кнопки, с помощью которых осуществляется выбор управляющей команды.
На торце устройства расположено отверстия для линзы ИК-излучателя, который непосредственно и отправляет команду на исполнение. С обратной стороны, под крышкой, располагается ниша для установки элементов питания. Как правило, это две батарейки AAA.
Если разобрать пульт, отсоединив верхнюю его часть от нижней, то мы увидим еще два элемента. Первый — печатная плата с контактными площадками и смонтированной электроникой.
Второй — выполненная из мягкого эластичного материала накладка с выпуклыми кнопками управления с проводящими дисками.
Устройство пульта дистанционного управления
Гаджет представляет собой небольшую продолговатую пластиковую коробочку. На лицевой ее части располагаются кнопки, с помощью которых осуществляется выбор управляющей команды.
На торце устройства расположено отверстия для линзы ИК-излучателя, который непосредственно и отправляет команду на исполнение. С обратной стороны, под крышкой, располагается ниша для установки элементов питания. Как правило, это две батарейки AAA.
Если разобрать пульт, отсоединив верхнюю его часть от нижней, то мы увидим еще два элемента. Первый — печатная плата с контактными площадками и смонтированной электроникой.
Второй — выполненная из мягкого эластичного материала накладка с выпуклыми кнопками управления с проводящими дисками.
Системы безопасности на микроконтроллерах (Охрана)
Датчик утечки газа на микроконтроллере (ATtiny13, C)
10.11.2010
В данной статье представлен датчик утечки газа на микроконтроллере ATtiny13, а в качестве сенсора газа применён MQ-4 фирмы HANWEI ELETRONICS. Это…
Просмотров: 6369
GSM сигнализация для автомобиля (ATmega16)
07.10.2010
Устройство предназначено для своевременного оповещения автовладельца о взломе автомобиля. Сигнализация контролирует двери, окна,…
Просмотров: 10390
Контроллер доступа «Tiny KTM» (AT90S2343)
09.08.2008
Контроллер доступа «Tiny KTM» — проще схемы не бывает! Контроллер предназначен для ограничения и контроля доступа в помещения, такие…
Просмотров: 3481
Электронный замок с ключами iButton (AT89C2051, asm)
09.08.2008
Некоторое время тому назад появился проект «ИМИТАТОР TOUCH-MEMORY DS1990A», т.е. отмычка. Теперь Вашему вниманию предлагается замок к зтой…
Просмотров: 4866
Если Вы потеряли Touch Memory… (AT89C2051, asm)
09.08.2008
Последнее время во многих организациях, а порой и дома, появились дверные замки, ключом к которым является таблетка Touch Memory фирмы DALLAS….
Просмотров: 4145
Имитатор touch-memory DS1990A (AT89C2051, asm)
09.08.2008
Этот проект является развитием проекта Если Вы потеряли Touch Memory…
Имитатор touch-memory DS1990A, который предлагается Вашему вниманию, способен…
Просмотров: 4480
Телефонный охранный сигнализатор (AT90S2313, asm)
09.08.2008
Передать тревожный сигнал на некоторое расстояние можно различными способами. В случае охраны квартиры, когда расстояние до хозяина…
Просмотров: 2606
Автономная охранная система на базе ТМ (ATmega8)
09.08.2008
Автономные системы охраны получили достаточно широкое распространение в нашей стране из-за простоты и дешевизны. Классическая…
Просмотров: 5411
SignALL — GSM сигнализация всем (ATtiny2313)
09.08.2008
“SignALL” – GSM сигнализация (далее по тексту “устройство”), предназначена для охраны помещений, таких как квартиры, дачи,…
Просмотров: 8581
Контроллер доступа Visual KTM (ATiny2313)
09.08.2008
Контроллер предназначен для ограничения и контроля доступа в помещения, такие как жилая комната, рабочий кабинет и т.д., с количеством…
Просмотров: 3566
Система оповещения GSM-click (ATmega8, C)
09.08.2008
Предлагаемое устройство предназначено для оповещения о произошедшем событии по GSM каналу, проще говоря СМС-кой. Подключаем его…
Просмотров: 4479
Скетч для устройства управления двумя нагрузками от одной кнопки
Сейчас начинается, наверное, самое интересное. По крайней мере, мне так кажется
Здесь начинается творчество, когда фон и основные мотивы есть, а надо прорисовывать детали.Вначале надо обратить внимание на детали связанные с входом, и выходами
Здесь дело обстоит так:
Назначение | Физическая ножка | Программная ножка | Примеч. |
Вход 1 (in) | 7 | 2 | Отрицательный вход |
Вход 2 (in1) | 2 | 3 | Положительный вход |
Выход 1 (out) | 6 | 1 | Через транзистор |
Выход 2 (out1) | 5 | Через транзистор |
Теперь пишем скетч под эти условия. Сам скетч написан для среды Arduino, то есть подразумевается, что и заливаться он будет через Ардуинку. Для этого надо:
— подключить Ардуинку к компьютеру;- «залить» платы нужного нам микроконтроллера;- залить САМ СКЕТЧ.
Собственно здесь комментировать нечего, каждая из «ступеней» освоения и выполнения проекта имеет свою отдельную специализированную статью, а скетч приведен в отдельном файле.
Теперь немного о том, как же все это будет работать.
Схема пульта дистанционного управления
Большинство схем пультов ДУ TV и других бытовых устройств в своей основе имеют основную микросхему, формирующую сигнал управления после нажатия соответствующей клавиши, усилитель сигнала и ИК-светодиод. Разница заключается лишь в наименовании и компоновке радиоэлементов внутри корпуса устройства и на печатной плате.
Микросхема представляет собой специализированный микроконтроллер, в который в процессе производства записывается программный код. Записанная программа затем уже не изменяется в течение эксплуатации. На плате располагается также кварцевый резонатор для синхронизации частоты приемника и передатчика. Усилитель сигнала входит в состав микросхемы или выполнен на отдельном элементе.
Улучшение схемы контроллера
Конечно всегда есть пути дальнейшего улучшения схемы:
- Хорошо бы дать между выходом ШИМ и микроконтроллером некоторый буфер на транзисторе или простой усилитель, работающий в классе AB. В этом случае он защитит микроконтроллер от повреждений и дополнительно раскачает сигнал.
- Дополнительные шаги контроля частоты также были бы полезны. Если собираетесь внедрить проект, предлагаем более крупный микроконтроллер с аппаратным ШИМ для SMPS, чтобы было 2/4 канала и регулирование времени простоя.
Можно также расширить диапазон регулирования заполнения до 0..100%. Это может быть полезно при тестировании работы исполнительных блоков управления ШИМ. Например, при 100% заполнении – измерение падения напряжения на дорожках и открытом ключе.
Пульт ДУ для ПК
Пульт дистанционного управления для персонального компьютера может оказаться полезным при работе с интерфейсом, как самой операционной системы, так и при управлении функционированием различных программ. Например, управление презентациями в Power Point или воспроизведением медиа-контента в Media Center. Иногда такие пульты уже входят в комплект ПК.
Производители пультов для ПК, в отличие от TV, реализовали 2 решения: ИК и радиопульты. Дело в том, что устойчиво при управлении в инфракрасном диапазоне взаимодействует с устройством при прямой видимости и на расстоянии до 10 м, что достаточно для TV, но может оказаться неудобным для управления ПК, особенно во время презентаций. Радиопульт увеличивает это расстояние до 30 м независимо от препятствий на пути сигнала.
Внешне радиопульт от ИК будет отличаться только наличием небольшой антенны. Но для того, чтобы можно было осуществлять управление, ПК необходим еще один элемент: приемник радио- или ИК- сигнала, установленный в компьютер или ноутбук. Это может быть, как встроенное устройство, так и модуль, подключаемый к порту USB. Второй вариант предпочтительней.
Алгоритм работы
Информация передаётся каждый раз когда кнопки нажимаются, отпускаются, а также в режиме повтора 5 раз в секунду (по умолчанию), пока кнопки нажаты.
Структура пакета
Данные, передаваемые в пакете, имеют размер два байта.
Первый байт | Второй байт | ||||||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
D4 | D3 | D2 | D1 | B4 | B3 | B2 | B1 | L | счётчик | C4 | C3 | C2 | C1 |
Если плату повернуть антенной вверх, то кнопки нумеруются так: 1 — верхняя, 2 — нижняя, 3 — левая, 4 — правая
Младшие 4 бита первого байта, B1-B4, кодируют текущее состояние кнопок. Если бит принимает значение 1, то кнопка в данный момент нажата, если 0 — то отпущена.
Старшие 4 бита первого байта, D1-D4, кодируют признак двойного щелчка. Если бит принимает значение 1, это значит, что последнее нажатие было сделано спустя интервал времени меньше заданного (0.75 с по-умолчанию) с момента предыдущего нажатия. Иначе говоря, был сделан двойной щелчок. Эти биты сохраняют своё значение и после отпускания кнопки, по ним также можно определить, что двойной щелчок был сделан на кнопке, которая уже отпущена.
Старший бит второго байта, L, указывает, что текущая комбинация зажатых кнопок удерживается больше заданного (по умолчанию 2 секунды) интервала времени. По этому биту можно определить удержание кнопки.
Три бита «счётчик» с 4 по 6й, меняют своё значение каждый раз, когда кнопка нажата, или отпущена. При удержании кнопки периодически передаются повторы. Если значение младших 7 бит второго байта не менялось с прошлого раза, значит, кнопки не отпускались и не нажимались. Изменение этого поля позволяет отследить ситуации, когда кнопка была отпущена, а затем нажата вновь, но пакет с информацией об отпускании был утерян.
Младшие 4 бита второго байта, C1-C4, кодируют какие кнопки изменили своё состояние (т.е. были нажаты, или отпущены) в последний раз.
Обработка данных
Пример кода обработки полученного от пульта пакета:
uint8_t buttons = buf[] & 0x0F; uint8_t changed = (((buf & 0x7F) == (prevbuf1 & 0x7F)) ? : (buf & 0x0F)) | (buttons ^ prevbuttons); uint8_t clicked = changed & buttons; uint8_t released = changed & ~buttons; uint8_t dblclick = (buf[] >> 4) & 0x0F; uint8_t is_long = buf & 0x80; uint8_t is_long_appears = is_long && !(prevbuf1 & 0x80); prevbuf1 = buf; prevbuttons = buttons; if (clicked & mask) { if (dblclick & mask) { } else { } } if (released & mask) { } if (buttons & mask) { } if (is_long_appears) { if (buttons & mask) { } }
Если при удержании кнопки выполняется некоторое продолжительное действие, то может случиться ситуация, когда пакет с информацией об отпускании кнопки был потерян. На этот случай хорошей идеей будет предусмотреть некий таймер, срабатывающий через 2,5 периода повтора, и если пакет подтверждающий удержание кнопки не пришёл в течение этого периода времени, то считать кнопку отпущенной.
Алгоритмы энергосбережения
В неактивном состоянии микроконтроллер пульта и чип nRF24L01+ находятся в состоянии power-down, потребляя около 1 микроампера. Заряда типичной батарейки CR2032 хватит на более чем 25 лет пребывания в таком режиме.
В момент нажатия, удержания кнопок и до истечения времени ожидания двойного щелчка после отпускания всех кнопок, nRF24L01+ между отправками пакетов переводится в режим standby-I, потребляя около 26мкА, микроконтроллер же ожидает события в режиме power-save. При нажатии кнопок, отправках со средней частотой 5 пакетов при максимальных повторах передачи, потребление тока не превышает 650мкА. Если же удалённая сторона принимает пакеты и высылает подтверждения о приёме, то есть повторов не происходит, потребление тока не превышает 300мкА. Заряда батареи хватит на месяц непрерывной работы в таком режиме.
На случай если пульт положен на хранение с кнопками в зажатом положении (например, придавлен чем-то) реализован алгоритм защиты. Если состояние кнопок не меняется, но подтверждений от удалённой стороны не приходит подряд заданное количество раз (по умолчанию — 40). То микроконтроллер отключает передатчик, отключает подтягивающие резисторы на зажатых кнопках и переходит в режим power-down. В этом случае пульт может не среагировать на отпускание и нажатие этой кнопки и для вывода пульта из спящего режима может потребоваться нажатие на кнопку, которая не была зажата. Если такая ситуация произошла, когда все кнопки оказались зажаты, то подтягивающий резистор оставляется включенным на кнопке 1 (верхней). Отпускание и нажатие на неё сможет перевести пульт в нормальный режим, однако в этой ситуации ток утечки через подтягивающий резистор может составить до 80 мкА.
Как работает пульт дистанционного управления на инфракрасном излучении: личный опыт
ИК датчики уже давно работают для беспроводной передачи команд с пульта ПДУ на различные исполнительные устройства.
Первоначально они стали внедряться для удобного просмотра телевизионных программ, а затем получили применение в других сферах нашей деятельности.
Упрощенная структурная схема пульта ДУ показывает принципы построения его работы.
В центре логической схемы пульта находится программируемый контроллер — микропроцессор, который обычно питается от пальчиковых батареек ААА.
Он по запланированному заранее алгоритму формирует строго определенную последовательность электрических импульсов, используемых в качестве уникальной команды для каждой кнопки.
Закодированный сигнал микропроцессора поступает на инфракрасный передатчик и импульсами светового потока излучается в окружающее пространство.
Его необходимо точно направить на ИК приемник. Тогда произойдет прием и обработка команды удаленным микропроцессором. Расшифрованная информация, после проверки, поступит на исполнительное устройство приемника.
Выключатели света производителя «Мастер Кит»: обзор возможностей
Все ИК модули работают по описанному выше принципу. Например, электронный блок BM8049M, выполненный в виде обычной платы, может быть врезан в разрыв существующей электрической схемы освещения. После монтажа его удобно изолировать от внешних цепей термоусадочной трубкой.
Для настройки его работы можно использовать пульт от телевизора, приставки интерактивного телевидения либо другого устройства. Главное условие — чтобы на нем была кнопка, которой вам не надо пользоваться для других целей.
Согласитесь, что их довольно много: в обычной работе достаточно нескольких, а назначение других мы даже не помним. Вот такая бесполезная кнопка и настраивается для работы с выключателем BM8049M.
Более современный модуль реле МР3328 компании Мастер Кит обладает возможностями управления от одного до восьми отдельных осветительных приборов, расположенных в разных местах дома или дачи.
Дистанция, которую может нормально преодолевать инфракрасный сигнал, от пульта к ИК приемнику может составлять до 15 метров. В условиях дома и квартиры этого вполне достаточно.
Но между датчиками необходимо создать прямую видимость: через препятствия сигнал не проходит.
Выключатель BM8049M наделен функцией автоматического отключения света через 10÷14 часов работы, что полезно для забывчивых людей. Его коммутационная способность ограничена нагрузкой 1,5 кВт.
Простая программа микроконтроллера
Итак, пройдём путь от создания проекта до написания программы.
Запускаем среду разработки AVRStudio 4 и видим окно:
Нажимаем кнопку NEW PROJECT. Откроется окно:
ВНИМАНИЕ!
В пути к файлу не должно быть русских букв. То есть если вы сохраните проект в папку , то программа не скомпилируется, так как AVR Studio 4 может не понять путь с русскими буквами
Мы будем писать программу на ассемблере. Проект назовём .
Теперь можно нажать кнопку ДАЛЕЕ (NEXT).
В следующем окне надо выбрать отладочную платформу и тип микроконтроллера:
Выберем . Ну и поскольку у нас микроконтроллер ATtiny13A, то выберем . Затем нажимаем FINISH.
Ну вот. Проект создан. Редактор исходного кода открыт. Теперь можно приступить к написанию программы. Она может быть примерно такой:
; Сообщить ассемблеру модель микроконтроллера .device ATtiny13A .nolist ; Подключить файл с объявлениями для ATtiny13A .include "tn13def.inc" .list ; Инициализация Init: ; PB0 - вход, остальные - выходы LDI R16, 0b11111110 OUT DDRB, R16 ; Включить подтяжку для PB0 LDI R16, 0b00000001 OUT PortB, R16 ; Начало программы Start: SBIS PinB, 0 ; Проверить датчик SBI PortB, 1 ; Если обрыв, то включить светодиод SBIC PinB, 0 ; Проверить датчик CBI PortB, 1 ; Если замкнут, то погасить светодиод RJMP Start ; Возвращаемся к началу программы
При инициализации мы определяем, какие выводы будут входами, а какие — выходами. Если в бит регистра
записать 0, то соответствующий вывод порта будет входом, если 1 — выходом.
У нас к выводу РВ0 подключен датчик, следовательно, РВ0 будет входом. К выводу РВ1 подключен светодиод, значит, РВ1 будет выходом. Неиспользуемые выводы лучше всегда делать выходами (хотя здесь у каждого свои предпочтения).
С помощью команды мы записываем число в регистр ,
который используем как временную переменную. Это необходимо, потому что команда
не может записать в регистр непосредственное значение.
Далее мы включаем подтягивающий резистор для вывода РВ0. Для этого в регистр надо в соответствующий бит записать 1.
Ну а далее начинается программа.
Сначала выполняем команду . Эта команда проверяет указанный вход. И если на этом входе 1, то следующая команда НЕ БУДЕТ выполнена. То есть в этом коде:
SBIS PinB, 0 SBI PortB, 1 SBIC ...
мы проверяем РВ0. Если там единица, то мы переходим к команде .
Если же ноль (датчик разомкнут — сигнализация сработала), то выполняем команду , которая устанавливает указанный выход (то есть в нашем случае зажигает светодиод, подавая напряжение на вывод РВ1).
Затем выполняем команду . Эта команда также проверяет указанный вход. Но если на этом входе 0,
то следующая команда не будет выполнена. Если же 1 (контакты датчика замкнуты), то будет выполнена команда , которая обнуляет указанный вывод. То есть на РВ1 будет подан 0, и светодиод погаснет.
Таким образам исполняется наш простой алгоритм: если датчик “не сработал” (контакт замкнут), то светодиод не горит. Если контакты разомкнулись, то светодиод светится.
На этом пока всё. Если что-то осталось непонятно — посмотрите видео в начале статьи.