Простое 4-канальное дистанционное управление на attiny13. схема

Пульт ду на микроконтроллере своими руками: самодельный 4-х канальный пульт дистанционного управления на микроконтроллере pic12f629

Step 1: RF Message Format

For this project I chose to replicate the signals for one of my Etekcity RF wireless switches (refer to my Instructable on those modules). I did that because I was able to verify that my transmitter works with the Etekcity receiver and that my receiver works with the Etekcity remote. I also happen to know exactly what the correct codes and format are for those devices because I captured them previously. Refer to my “Arduino RF Sensor Decoder” Instructable for the code capture sketch.

The codes and formats for the Etekcity outlets are very typical of inexpensive RF devices. I have cheap security devices that use very similar formats with just some timing variations. The message length is a convenient 24 bits with a long start bit and a short stop bit. You can easily modify the code to add more bytes of data and to change the timing of the sync and data bits. Again, this sketch is just a starting template.

Introduction: ATtiny85 RF Remote Control

By Boomer48Boomer RulesFollow

More by the author:

About: Old dog still learning new tricks.

More About Boomer48 »

NOTE: My Instructable «Virtual Hide-and-Seek Game» shows how to use this type of remote with an RXC6 module which automatically decodes the message.

As I mentioned in a previous Instructable I recently started playing with some ATtiny85 chips. The initial project I had in mind was to make an RF remote control that could operate on a coin battery. I needed to go with a raw chip because none of the Arduinos I have can meet both the need for very low power and relatively small size. A modified LilyPad came close but the chip is a better answer. The idea was not so much to duplicate an existing remote but to demonstrate how you can make up your own transmitter and receiver set. Besides being a fun learning project, it also allows you to create your own “secret” code combination. I put “secret” in quotes because it’s pretty easy to crack these simple codes.

Ставим “ядро”

Для того, чтобы работать с Attiny через Arduino IDE, нам нужно установить так называемое ядро, или как оно называется в самой IDE – плату. Для ATmega328 у нас уже есть стандартное ядро, например плата Arduino NANO. Но тут есть нюанс: внутренние настройки “платы” NANO рассчитаны на работу с загрузчиком (bootloader) и с внешним тактированием 16  Мгц, то есть лучше не рисковать и установить ядро, которое поддерживает работу без загрузчика и с возможностью выбора частоты, чтобы иметь полный контроль над платой. Могу посоветовать вот эти:

  • GyverCore – ядро для ATmega328, которое разработали мы с коллегой. Лёгкое и быстрое, возможность работы без загрузчика и широкий выбор вариантов тактирования. Ссылка для менеджера плат: https://alexgyver.github.io/package_GyverCore_index.json
  • MiniCore – ядро для поддержки и расширенной настройки МК ATmega328, ATmega168, ATmega88, ATmega48 и ATmega8. Ссылка для менеджера плат: https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  • ATTinyCore – ядро для поддержки и расширенной настройки МК ATtiny 441/841, 44/84, 45/85, 461/861, 48/88, 828, 1634, 87, 167. Ссылка для менеджера плат: http://drazzy.com/package_drazzy.com_index.json
  • MicroCore – ядро для поддержки и расширенной настройки МК ATtiny13, ATtiny13A и ATtiny13V. Ссылка для менеджера плат: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
  • megaTinyCore – ядро для поддержки и расширенной настройки МК ATtiny 3217, 1617, 817, 417, 3216, 1616, 816, 416, 1614, 814, 414, 214, 412, 212, 1607, 807, 1606, 806, 406, 1604, 804, 404, 204, 402, 202. Новые модели шьются по UPDI, по этой теме читайте отличную статью на русском языке. Можно сделать программатор из обычной Ардуины – читай тут. Данное ядро можно установить через менеджер плат, ищите по названию Arduino megaAVR board package, никаких ссылок вставлять не нужно.
  • MightyCore – ядро для поддержки и расширенной настройки МК ATmega8535, ATmega16, ATmega32, ATmega164, ATmega324, ATmega644 и ATmega1284. Ссылка для менеджера плат: https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
  • MegaCore – ядро для поддержки и расширенной настройки МК ATmega64, ATmega128, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561, AT90CAN32, AT90CAN64 и AT90CAN128. Ссылка для менеджера плат: https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json

Как установить ядро: идём в Файл/Настройки и вставляем ссылку в окно дополнительных ссылок для менеджера плат   Далее идём в Инструменты/Плата/Менеджер плат… и находим нужное ядро. Устанавливаем   После этого в списке плат появится новое семейство плат/МК на выбор. Я буду работать с ATtiny85   Нас интересует меню Clock – тактирование. ATtiny85 интересна тем, что может тактироваться от внутреннего источника на 8 МГц, но также может его “умножить” на 2 и получится 16 МГц, этот вариант называется 16 MHz (PLL). Это очень круто, потому что голый чип будет работать с почти максимальной скоростью, что делает его ничуть не хуже той же Arduino Nano. Выбираем программатор из списка (я буду прошивать при помощи USB ASP). Однократно выполним Инструменты/Записать загрузчик, чтобы применить настройки тактирования:   Про остальные менюшки и варианты можно догадаться из их названия, или почтить подробное описание на GitHub по ссылкам выше.

Проектирование схем и печатных плат с использованием EasyEDA:

Для разработки этой домашней автоматизации с дистанционным управлением мы использовали EasyEDA, бесплатный онлайн-инструмент EDA для создания цепей и печатных плат без проблем. Ранее мы заказывали несколько печатных плат у EasyEDA и по-прежнему пользуемся их услугами, поскольку мы обнаружили, что весь процесс, от чертежа схем до заказа печатных плат, более удобен и эффективен по сравнению с другими производителями печатных плат. EasyEDA предлагает бесплатные чертежи схем, моделирование, проектирование печатных плат, а также предлагает высококачественные, но недорогие услуги по индивидуальному заказу печатных плат. Здесь вы найдете полное руководство по использованию Easy EDA для создания схем, макетов печатных плат, моделирования схем и т. Д.

EasyEDA улучшается день ото дня; они добавили много новых функций и улучшили общий пользовательский интерфейс, что делает EasyEDA проще и удобнее для разработки схем. Вскоре они собираются запустить его настольную версию, которую можно будет загрузить и установить на свой компьютер для автономного использования.

В EasyEDA вы можете сделать свои схемы и проекты печатных плат общедоступными, чтобы другие пользователи могли их копировать или редактировать и извлекать выгоду из этого. Мы также сделали общедоступными все макеты схем и плат для этой домашней автоматизации с дистанционным управлением.

Ниже приведен снимок верхнего слоя компоновки печатной платы из EasyEDA. Вы можете просмотреть любой слой (верхний, нижний, Topsilk, снизу и т.д.) печатной платы, выбрав слой в окне «Слои».

С помощью микроконтроллеров

С помощью него можно получить множество различных оттенков света. Управление RGB-светодиодом осуществляется с помощью микроконтроллера (MK), например, Arduino (рис.2).

Конечно, можно обойтись простым блоком питания на 5 вольт, резисторами в 100-200 Ом для ограничения тока и тремя переключателями, но тогда управлять свечением и цветом придется вручную. В таком случае добиться желаемого оттенка света не получится (рис.3-4).

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

Подпрограмма output

В данной подпрограмме выполняются все «полезные» действия, по которым мы можем судить о функционировании микроконтроллерного устройства. Нам необходимо получить на выходе вот такую функцию:

Состояния выходов в дискретные моменты времени, определяемые установкой флага задания TF, получим табличным методом, для этого в память программ поместим таблицу соответствующих значений. Табличная реализация различных вычислений в микроконтроллере характеризуется максимальным быстродействием, но при этом требует много места в памяти программ. Например, в нашем случае надо задать 60 значений, что требует 60 ячеек памяти.

В подпрограммах содержатся инструкции:

OUTPUT decfsz COUNTER, Fgoto NOT0movlw 0x3Cmovwf COUNTERNOT0 movf COUNTER, Wcall TABmovwf PORTBreturn

Инструкция «decfsz» предназначена для организации циклов. Она декрементирует содержимое регистра COUNTER, в случае если результат не равен нулю, выполняется следующая по порядку инструкция (переходим на метку NOT0), иначе в течение 2 циклов выполняется пустая инструкция «nop», а затем в регистр COUNTER помещается начальное значение 0x3C (заметьте, т.к. декремент регистра осуществляется до использования значения этого регистра в программе, при инициализации мы задали значение на 1 большее).

Значение регистра COUNTER помещается в аккумулятор W, после чего осуществляется чтение из таблицы путем вызова подпрограммы инструкцией «call TAB». При возврате из таблицы в W содержится необходимое нам значение состояния выходов. Это значение записывается в регистр PORTB, чем осуществляется вывод сигналов из микроконтроллера. Далее происходит возврат из подпрограммы командой «return».

Самая простая схема на микроконтроллере

Наше первое устройство, можно сказать, почти не будет делать ничего полезного. Но зато оно очень простое и новичкам будет проще разобраться как со схемотехникой, так и с программой микроконтроллера.

Итак, наше устройство — это простейшая сигнализация. Если вход микроконтроллера замкнут, то на выходе ноль. Если вход разомкнуть, то на выходе, к которому подключен светодиод, появится сигнал. Светодиод включится, и это будет означать, что сигнализация сработала.

Конечно, это всё достаточно примитивно. Однако в давние времена, когда я занимался (в том числе) и обслуживанием систем сигнализации, мы использовали такие самодельные “датчики”. Например, обматывали решётку на окне тонким проводом и подключали его в шлейф прибора сигнализации. Если злодей выдернет решётку — провод порвётся и сигнализация сработает.

Ну а теперь к схеме.

Микроконтроллер ATtiny13A по умолчанию использует внутренний генератор на 9,6 МГц (это следует из документации,
и я писал об этом ).
И если нас такое решение устраивает (а нас оно устраивает), то это означает, что никаких внешних цепей для задания тактовой частоты нам не потребуется.

Микроконтроллер ATtiny13A выпускается в нескольких корпусах. Будем считать, что у нас корпус 8PDIP/SOIC
(подробнее об этом здесь). Тогда схема будет такой:

Наверно вы знаете, что у этих МК есть встроенные подтягивающие резисторы. Но эти резисторы очень маломощные и могут перегореть, если их использовать с нагрузкой. Поэтому последовательно со светодиодом лучше ставить внешний резистор.

На схеме SA1 может быть либо охранным датчиком, либо просто тонким проводом, обмотанным, например, вокруг какого-то охраняемого предмета. При обрыве провода (или размыкании контакта) сигнализация “срабатывает” и светодиод загорается.

Термо оборудование на микроконтроллерах (Термометры, термореле, термостаты)

Многоканальный USB-Термометр (ATmega8, C)
27.10.2011
Когда то давно я написал статью о том, как сделать USB Термометр и разместил ее на двух сайтах. Девайс очень простой, но спустя пару дней,…
Просмотров: 5188

Уменьшение шума от кулеров, с выводом температур на LCD (ATmega8, C)
28.08.2010
Устройство создано для уменьшения шума от кулеров компьютера и контроле температур в системном блоке на LCD дисплее. Включает в себя…
Просмотров: 3959

USB Термометр (ATmega8, C)
10.03.2010
В качестве микроконтроллера, был выбран ATmega8 (такие, как ATtiny8/48 не захотел использовать по причине их дискретности в некоторых городах)….
Просмотров: 6756

Термостат на ATtiny2313 и DS18B20 (ATtiny2313, C)
13.01.2010
Данная конструкция стала прямым продолжением конструкции «Термометр на ATtiny2313 и DS18B20». Как там упоминалось, хотелось…
Просмотров: 9699

Улучшенный термостат на ATtiny2313 и DS18B20 (ATtiny2313, C)
13.01.2010
По многочисленным просьбам дорабатываю конструкцию «Термостат на ATtiny2313 и DS18B20». Теперь умеет:

Измерение температуры от -55°С до…
Просмотров: 26374

Термометр на ATtiny2313 и DS18B20 (ATtiny2313, C)
12.01.2010
В Интернете есть куча схем термометров на AVR, но как всегда хочется чего-то своего.. Да и мозги размять тоже следует. Этот термометр был…
Просмотров: 14058

Цифровой термометр на DS18B20 (ATmega8, C)
18.10.2009
Цифровой термометр предназначен для измерения температуры с точностью до одной десятой доли градуса Цельсия*.

Цифровой термометр…
Просмотров: 5835

Регулятор оборотов 12V вентилятора на DS18B20 (ATtiny13, C)
01.07.2009
Взял все вентиляторы из своего компа и попробовал при каком напряжении они стартуют. Получилась довольно печальная картина: некоторые…
Просмотров: 12234

Многофункциональные часы-термостат с дистанционным управлением (ATmega8)
08.03.2009
Возникла у меня потребность в настольных часах-термометре, чтобы помимо времени можно было узнать температуру на улице и в доме. В…
Просмотров: 4451

Термометр — меньше не бывает (ATmega8)
18.05.2008
Предлагается схема на микроконтроллере ATMega8 для измерения температуры в диапазоне от −55° C до +127° C с точностью не хуже +-0,5° C. В…
Просмотров: 6523

Термометр с ЖКИ и датчиком DS18B20 (ATtiny15)
01.03.2008
В технической литературе и в Интернете можно найти множество описаний и схем цифровых термометров. В большинстве конструкций…
Просмотров: 4153

Термостат (AT90S2313, C)
15.02.2008
Прибор был создан по просьбе одного знакомого для контроля температуры в комнате — включения отопителя / вентилятора при достижении…
Просмотров: 4386

Термостат на DS18B20 и ATmega8 (ATmega8, C)
27.01.2008
В схеме, можно применять светодиодные семисегментные индикаторы с общим катодом или анодом (2 прошивки).
Датчик температуры DS18B20….
Просмотров: 15452

Простой термометр на DS18B20 (ATtiny2313, C)
26.01.2008
Это простой термометр на основе термо датчика DS18B20 и мк ATtiny2313 (или AT90S2313) выводящий информацию на 7-сегментный ЖКИ – модуль на основе…
Просмотров: 8168

Печать

ЗАКАЗ! СПРАШИВАЕМ ЭЛЕКТРОСХЕМЫ И ДОКУМЕНТАЦИЮ!

Электросхемы и документацию нужно выкладывать в соответствующем подразделе «Электросхемы, документации», здесь в ответе человеку указать ссылку на него. Если возникнет необходимость в обсуждении выложенного, обсуждать в соответствующей теме в разделах форума !

1. Общение в этой теме ведется лаконично, по принципу — «Просьба или вопрос» — «Конкретный ответ + линк на софт».

2. Любые посты, не соответствующие тематике и правилам, будут удаляться.

3. Перед выкладыванием электросхем или документации , пожалуйста, убедитесь в его отсутствии на форуме в этом или других разделах.

2.Нуна схема штатной сигналки НИССАН СЕРЕНА 1995 г. 1.6 литра

здравствуйте! интересует меня электросхема bmw 318i E 46 базовой модели с указанием цвета проводов. заранее спасибо.

здравствуйте! интересует меня электросхема bmw 318i E 46 базовой модели с указанием цвета проводов. заранее спасибо. Поясню немножко ситуацию. Вся схема = BMW WDS размером порядка 4,5 Гигабайт. К то му же отнюдь не цветная, как в печатном издании «За Рулём». И совсем не на 2 страницах.

На что конкретно нужно?

Прошивка

Помещённый здесь код является свободным для некоммерческого использования, при условии указания ссылки на автора (Погребняк Дмитрий, http://aterlux.ru/).

Настройки пульта

Настройки nRF24L01+ и пульта задаются в EEPROM. Если настройки в EEPROM не заданы, то применяются настройки по умолчанию. При этом настройки nRF24L01+ соответствуют настройкам принимающей стороны по-умолчанию: адрес длиной 5 байт, 0xC2C2C2C2C2, радио-канал 2, CRC 8 бит, скорость 2мбит/с.

Фьюзы (ATmega48PA): extended 0xFF, high 0xD6, low 0x62

Отличие от настроек по-умолчанию: включен BOD на 1.8 Вольт, включена опция EESAVE

Интерактивная форма ниже поможет сформировать файл .hex (или .eep) для загрузки в EEPROM микроконтроллера.

Ардуино – принцип действия

Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер. К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI. Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328

Внешний вид

Программирование осуществляется в среде Ардуино с открытым исходным кодом, установленным на обычном компьютере. Программы загружаются через USB.

Схема дистанционного управления на микроконтроллере Attiny45. Схема и описание

Главная » Бытовая электроника » Схема дистанционного управления на микроконтроллере Attiny45. Схема и описание

Это простая схема дистанционного управления, которая работает практически с любым ИК пультом дистанционного управления (с режимом обучения), позволяет включать/выключать произвольную нагрузку.

Исполнительным элементом является электромагнитное реле. Схема дистанционного управления питается от безопасного напряжения 12В, как вариант — непосредственно к выходу можно подключить светодиодную ленту на 12В. Устройство идеально подходит в качестве дистанционного выключателя электроприборов или светодиодного освещения.

Как это работает? Как уже было сказано выше, схема питается постоянным напряжением номиналом 12В. Это может быть любой блок питания с выходным током, который должен соответствовать подключенной нагрузке.

Прием сигналов от ПДУ выполняет ИК приемник U1 типа TSOP4836, а всей работой устройства управляет микроконтроллер ATtiny45. Главная задача, которую выполняет микроконтроллер — это прием и расшифровка пакета импульсов с ик-приемника, с последующим включением/выключением нагрузки.

Такой пакет импульсов, как правило, содержит до нескольких десятков импульсов, где длительность и время перерывов, как правило, находятся в диапазоне от 0,2 мс до 3 мс.

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

Таким образом, одно из требований, для того чтобы устройство смогло подстроиться под определенный ПДУ – это продожительность каждого отдельного импульса и паузы должны находиться в указанных пределах и максимальная длина кода должна составлять 32 импульса.

Последнее условие — это частота модуляции ИК сигнала. Каждый пульт дистанционного управления посылает коды на определенной несущей частоте, самая популярная и наиболее часто встречающаяся – это частота 36 кГц, менее популярные — это 38 кГц или 40 кГц.

В схеме использован ИК-приемник TSOP4836. Он создан для сигналов с частотой 36 кГц, поэтому он будет неправильно работать с сигналами 38 кГц. При необходимости приемник можно заменить на аналогичный с другой несущей частоты.

В качестве исполнительного устройства в схеме применено электромагнитное реле типа JQX -68F (катушка 12 В, 8 A/230 В)

При управлении нагрузкой значительной мощностью, следует обратить внимание размер дорожек печатной платы

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

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров. ..

Подробнее

Светодиод HL1 сигнализирует текущее состояние реле, и, кроме того, сообщает, о работе системы, поступлении команды с пульта, вход в режим программирования.

Вся схема собрана на двухсторонней печатной плате размером 31х 44 мм. Устройство, собранное из исправных деталей, не требует какой-либо регулировки и после регистрации команд, отправляемых с пульта, готово к работе.

Вход в режим программирования кодов ПДУ осуществляется путем нажатия и удерживания кнопки Sl на время около 5 секунд. После этого светодиод начнет мигать. Это означает, что устройство готово принять и записать команду с ПДУ. Правильное получение будет подтверждено продолжительным свечением светодиода.

На следующем этапе светодиод снова начнет мигать, это означает, что устройство ожидает подтверждения зарегистрированной ранее команды. Поэтому следует повторно нажать ту же кнопку на пульте.

Если после этого нажать кнопку S1, то мы закончим процесс обучения, и устройство будет реагировать только на эту одну кнопку пульта, попеременно включая и выключая реле.

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

Скачать прошивку и рисунок печатной платы (10,5 KiB, скачано: 1 661)

Блок питания 0…30В/3A

Набор для сборки регулируемого блока питания…

Подробнее

Программатора для микроконтроллеров (Программаторы)

USB программатор микроконтроллеров AVR / 89S совместимый с AVR910 (ATmega8, C)
22.01.2012
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по…
Просмотров: 10641

USB, COM отладчик JTAG ICE (ATmega16)
27.04.2010
Иногда, программа зашитая в микроконтроллера работает совсем не так как надо её создателю. Тогда наступает стадия отладки (Отлаживать…
Просмотров: 3951

Параллельный программатор для микроконтроллеров AVR (ATmega16)
16.02.2008
Поводом для создания данного устройства послужило появление новых чипов AVR поддерживающих отладку по протоколу debugWIRE. Так как он не…
Просмотров: 13746

USB параллельный программатор для микроконтроллеров AVR (ATmega16)
16.02.2008
Этот программатор является продолжением «Параллельного программатора для микроконтроллеров AVR»  Предлагаемый вариант…
Просмотров: 6211

Декодирование инфракрасных сигналов управления с помощью Arduino

Плата Arduino в рассматриваемом проекте выполняет сразу две функции: одна заключается в декодировании инфракрасных сигналов от пультов ДУ, а вторая — в управлении инфракрасным излучателем.

Для декодирования сигналов от инфракрасных пультов ДУ мы будем использовать заголовочный файл от Ken Shirriff’s IRremote, который значительно упрощает эти процессы. Для работы с этим заголовочным файлом вы должны сделать следующую последовательность действий:

Текст программы для декодирования сигналов от инфракрасных пультов ДУ:

После того как вы сумеете это реализовать аккуратно запишите все значения кодов и другую представленную информацию для всех кнопок со всех пультов ДУ, которые вы хотите реализовать в вашем универсальном пульте. Таким образом, вы создадите своеобразную базу данных кнопок и соответствующих им кодов.

Представленный пример программы для декодирования сигналов инфракрасных пультов ДУ был взят из подпапки ‘examples’ (примеры) папки IRremote (которую мы скачали по вышеприведенной ссылке). Также в подпапке ‘examples’ вы можете при желании изучить и другие примеры работы с устройствами инфракрасной связи.

Три схемы дистанционных выключателей | KAVMASTER

В этой статье будут рассмотрены три схемы дистанционных выключателей, применить их можно для управления практически любых электроприборов, так как в качестве выключателя используется реле. Схемы выключателей достаточно просты и повторимы.

Дистанционный выключатель с управлением от ПДУ

Это простая схема для дистанционного включения и выключения любого электрического устройства при помощи обычного пульта дистанционного управления (ПДУ).

Дальность действия дистанционного выключателя составляет около 10 метров. В качестве датчика используется 3-контактный ИК- приемник (TSOP 1738 или его аналог), работающий на частоте 38 кГц. При обнаружении ИК-излучения, на выходе датчика появляется сигнал лог.0, который в свою очередь усиливается транзистором VT1.

С выхода транзистора VT1 усиленный сигнал запускает ждущий мультивибратор на таймере NE555 . Импульс с выход (3) таймера, имеющий длительность в 1 секунду, переключает JK-триггер, чей выход (1) через транзистор (VT2) управляет электромагнитным реле. С каждым новым сигналом от NE555, выход JK-триггера будет изменяться на противоположное состояние.

Светодиод HL1 используются для отображения состояния выходного каскада во время работы устройства. Схема питается от стабилизатора напряжения 7805. Конденсатор С2 и резистор R4 предназначены для предотвращения ложного срабатывания таймера NE555.

Вариант 1

Эта схема дистанционного акустического выключателя предназначена для дистанционного включения / выключения света либо изменения скорости вращения напольного вентилятора. Особенность данного дистанционного выключателя в том, что управление нагрузкой происходит по звуковому сигналу (хлопку). Так же данная схема может быть востребована, в целях безопасности, для бесконтактного включения и выключения электроприборов в помещениях с повышенной влажностью.

Устройство имеет три канала управления, каждый из которых оснащен индикатором на светодиоде. Основу схемы акустического выключателя составляют две микросхемы: таймер NE555 и десятичный счетчик-делитель К561ИЕ8 (аналог CD4017)

Микросхема NE555 в данном случае подключена в режиме ждущего мультивибратора. При изменении сигнала на входе 2 таймера NE555, на его выходе 3 появляется одиночный импульс, после чего ждущий мультивибратор переходит в исходное состояние. С помощью формулы, приведенной ниже, можно длительность выходного импульса:

T = 1,1 * R5 * C4

В то время, когда кто-то хлопает в ладоши, звуковой сигнал при помощи конденсаторного микрофона преобразуется в электрический. Затем этот сигнал поступает на базу транзистора VT1, который в свою очередь запускает ждущий мультивибратор на NE555.

Сигнал с выхода 3 таймера NE555 поступает на счетный вход (вывод 14) микросхемы К561ИЕ8. После получения сигнала тактовой частоты, счет начинается с нуля. С каждым новым входным сигналом (хлопком) происходит последовательное появление сигнала высокого уровня на выходах К561ИЕ8. (Подробное описание К561ИЕ8.)

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

При первом хлопке на вывод 2 будет лог.1 — загорится светодиод HL1 и включится реле К1, при следующем хлопке лог.1 появится уже на выводе 4 — загорится светодиод HL2 и включится реле К2, при этом на выводе 2 будет лог.0 и светодиод HL1 погаснет (реле К1 отключится) и так далее.

Вариант 2

Звуковой сигнал, принятый микрофоном, усиливается микрофонным усилителем на ОУ 741. С выхода ОУ сигнал поступает на вход десятичного счетчика К561ИЕ8, работа которого была описана в предыдущей схеме.

C помощью резистора R3 регулируют чувствительность ОУ 741. Резистор R1 устанавливает чувствительность микрофона. Резистор R4 предназначен для исключения ложных срабатываний счетчика К561ИЕ8. Свечение светодиода HL1 указывает на выключенное состояние нагрузки.

Дистанционный выключатель на основе лазера

Эта простая схема дистанционного выключателя построена на таймере NE555. В качестве управляющего элемента использована лазерная указка. Эта схема была опробована в работе с расстояния 50 метров и показала хорошие результаты. По большому счету дальность действия зависит от мощности и качества самого лазера. Электрическая схема дистанционного выключателя:

При наведении лазерного луча на фоторезистор U1 происходит включение нагрузки через электромагнитное реле, а при фокусировке лазерного луча на фоторезистор U2 — выключение.

На этом всё! Делитесь статьёй в соц сетях!

Подпрограмма обработки прерываний

При переполнении регистра таймера происходит переход на вектор прерывания по адресу 0x0004 и запрещаются все прерывания (автоматически сбрасывается бит GIE в регистре INTCON). Подпрограмма обработки прерывания прежде всего должна обеспечивать сохранение содержимого аккумулятора W и регистра STATUS при перед началом обработки прерывания, и восстанавливать значения W и STATUS по окончании обработки. Это необходимо для предотвращения их случайной модификации в подпрограмме обработки прерывания.

Содержимое аккумулятора просто помещается в заранее выделенную ячейку памяти командой «movwf W_TEMP».Регистр STATUS может изменять свое значение при выполнении ряда инструкций, поэтому применяется маленькая хитрость. Содержимое регистра помещается в аккумулятор с перестановкой нибблов (полубайтов) командой «swapf STATUS, W», а оттуда помещается в заранее выделенную ячейку памяти командой «movwf STATUS_TEMP».

Восстановление содержимого W и STATUS в конце подпрограммы происходит в обратном порядке. Содержимое ячейки памяти, хранящей содержимое регистра STATUS помещается в аккумулятор с перестановкой нибблов командой «swapf STATUS_TEMP, W», и из аккумулятора переносится непосредственно в регистр STATUS командой «movwf STATUS».

swapf W_TEMP, F swapf W_TEMP, W

Причина использования команды “swapf” заключается в том, что она не влияет на флаги в регистре STATUS.

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

btfss INTCON, T0IFgoto ENDISRbcf INTCON, T0IFbsf FLAGS, TF

Если бит не установлен, то произойдет переход к инструкциям восстановления содержимого W и STATUS на метку ENDISR. Если бит установлен то мы его сбросим вручную командой «bcf INTCON, T0IF» и установим флаг задания командой «bsf FLAGS, TF». Далее выполнятся инструкции восстановления содержимого W и STATUS.

Понравилась статья? Поделиться с друзьями:
Зинг-Электро
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: