Реклама ⓘ
Главная » Автоматика в быту
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Автомат, включающий нагрузку по свистку на PIC

Всем знакома такая ситуация: открываешь дверь в темном помещении и судорожно ищешь кнопку выключателя что бы зажечь свет… Или наоборот, уютно устроившись в теплом кресле, начинаешь дремать, и так не охота вставать и выключать свет…

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


В основе автомата-приставки микроконтроллер серии Microchip – PIC12F629. Аналоговая часть – усилитель звуковой частоты и исполнительная цепь – ключевой транзистор и реле, коммутирующее питание нагрузки. В качестве реле я использовал TRM3003 на 110 В с гасящим резистором (R8)16 kOm (2 Вт). Устройство питается от параметрического стабилизатора, собранного на стабилитроне и сглаживающих пульсации конденсаторах.

Устройство работает так: в режиме ожидания на порту GP0 микроконтроллера присутствует лог. «1», а на порту GP2 – лог. «0». Таким образом аналоговая часть работает в режиме усилителя звуковой частоты. Сигнал от пьезоэлемента подается на базу первого транзистора КТ3102Б. Смещение на базу подается через резистор 3,3 М. С коллекторной нагрузки первого транзистора сигнал через развязывающую емкость подается на базу второго транзистора обратной структуры. Его база приоткрыта резистором 2 М. С коллекторной нагрузки второго транзистора усиленный сигнал подается через емкость 510 пФ на порт GP1 контроллера. Резистор 20 К совместно с емкостью выполняет роль дифференцирующей цепочки, что снижает реакцию усилителя на посторонние шумы.

При поступлении громкого сигнала свиста либо хлопка в ладоши на выходе усилителя появляется напряжение, которое поступает на порт GP1 контроллера. Контроллер «просыпается», изменяет напряжения на порту GP0 на противоположные, а через порт GP2 начинает генерировать сигнал звуковой частоты – пакеты длительностью 200 mS, заполненные частотой 5000 Гц, с интервалами в 100 mS. Это своего рода сигнал о том, что команда принята. Всего 3 пакета общей длительностью около 1 S. Затем на GP5 формируется лог.«1» и включается нагрузка. Наличие диода в базовоколлекторном переходе первого транзистора позволяет сигналу проходить через пьезоизлучатель. Диод необходимо подобрать по наименьшему сопротивлению в прямом состоянии, в этом случае сигнал будет звучать громче.

Устройство питается от сети 220 В. Напряжение выпрямляется двухполупериодным выпрямителем и гасится на резисторе 100 кОм, затем стабилизируется стабилитроном КС 106 Б.

О программе: в контроллере задействован внутренний тактовый генератор на 4 МГц. В режиме ожидания контроллер находится в спящем состоянии и потребляет ток примерно 4 мкА, не считая потребления от портов питания усилителя и ключевого транзистора. В общем, суммарный ток потребления в режиме ожидания не превышает 100 мкА. В программе реализовано прерывание по изменению состояния порта GP1. Сразу после пробуждения и сброса флага прерывания от порта, запрещаются дальнейшие прерывания от порта, изменяется уровень логики на GP0 и начинается генерация частотнозаполненных пакетов. Пакеты формируется посредством простых циклов. После окончания формирования звуковых пакетов контроллер включает нагрузку, устанавливает первоначальное состояние на портах питания усилителя, разрешает прерывания от GP1 и уходит в сон… Последующая подача сигнала в виде хлопка и свиста повторяет алгоритм и приводит к выключению нагрузки.

Основные моменты программы

Для разрешения прерываний от периферии необходимо настроить регистр INTCON.

Это можно сделать сразу в подпрограмме инициализации:

MOVLW	B'10001000'
MOVWF	INTCON			; разрешаем глобальные прерывания и прерывания от портов

Здесь установлен быт разрешения глобальных прерываний и прерываний от портов  

Непосредственно разрешить прерывания от конкретного порта можно в регистре IOCB.

Нужно, при этом, помнить что IOCB находится в первом банке памяти!

START_


	BSF		GPIO,0			; УСТ. В "1"
	BCF		GPIO,2			; УСТ. В "0"

	BSF 	STATUS, RP0	 	; банк 1
	bsf		IOCB,1			; вкл. прервывание от GP1
	BCF 	STATUS, RP0	 	; банк 0

;******************ОЖИДАНИЕ******************

	SLEEP
	NOP

;********************ОТВЕТ*******************
    
	BSF 	STATUS, RP0	 	; банк 1
	bcf		IOCB,1			; выкл. прервывание от GP1
	BCF 	STATUS, RP0	 	; банк 0

	
	BCF		GPIO,0			; УСТ. В "0"

Программа устанавливает GP0 в «1», GP2 в «0», т.е. включает аналоговую часть устройства в режим микрофона, разрешает прерывания от порта GP1 и уходит в сон.

При пробуждении от прерывания программа запрещает прерывание от GP1 и устанавливает на GP0 «0», т.е. отключает питание усилителя.

Вход в прерывание

; ВХОД В ПРЕРЫВАНИЕ ОТ ПОРТОВ 

PER

	MOVF	GPIO,0
	BCF		INTCON,0		; сбросим флаг прерывания от портов

	RETFIE	

Необходимо выполнить чтение порта, чтобы исключить несоответствие и сбросить флаг прерывания.

Генерирование сигнала (отклик брелка)

Происходит чисто программно, без использования прерываний. Задержки формируются посредством вложенных циклов. Цикл реализованный на переменной «TEMP» формирует задержку, равную половине периода частоты 500 Гц (т.е. 1 миллисекунда). После выполнения задержки порт GP2 изменяет свое состояние на противоположное и т.д…

Цикл реализованный на переменных «TEMP1» и «TEMP2» формирует повторение внутреннего цикла на «TEMP» в течении 200 миллисекунд.

;**********СИГНАЛ 5000 Гц (100 mS)***********


	MOVLW	.9
	MOVWF	TEMP1

	MOVLW	.10
	MOVWF	TEMP2


	MOVLW	.30
	MOVWF	TEMP

	DECFSZ	TEMP
	GOTO	$-1

	BTFSS	GPIO,2    		; ЕСЛИ ПОРТ В "0"
	GOTO	$+2

	GOTO	$+3	

	BSF		GPIO,2			; УСТ. В "1"

	GOTO	$+2

	BCF		GPIO,2			; УСТ. В "0"	


	DECFSZ	TEMP2
	GOTO	$-.11
	DECFSZ	TEMP1
	GOTO	$-.13

;******************************************

Пауза формируется все теми же вложенными циклами:

;*************ПАУЗА (100 mS)***************

	MOVLW	.200
	MOVWF	TEMP1

	MOVLW	.170
	MOVWF	TEMP2

	DECFSZ	TEMP2
	GOTO	$-1

	DECFSZ	TEMP1
	GOTO	$-5

;******************************************

Объединив оба блока (звук + пауза) в один и задав количество повторений через переменную «TEMP3» равную 3 получаем:

;**********ЦИКЛ ПОВТОРА - 3 РАЗ***********

	MOVLW	.10
	MOVWF	TEMP3

;**********СИГНАЛ 5000 Гц (100 mS)***********


	MOVLW	.9
	MOVWF	TEMP1

	MOVLW	.10
	MOVWF	TEMP2

	MOVLW	.30
	MOVWF	TEMP

	DECFSZ	TEMP
	GOTO	$-1

	BTFSS	GPIO,2    		; ЕСЛИ ПОРТ В "0"
	GOTO	$+2

	GOTO	$+3	

	BSF		GPIO,2			; УСТ. В "1"

	GOTO	$+2

	BCF		GPIO,2			; УСТ. В "0"	


	DECFSZ	TEMP2
	GOTO	$-.11
	DECFSZ	TEMP1
	GOTO	$-.13

;******************************************
;*************ПАУЗА (100 mS)***************

	MOVLW	.200
	MOVWF	TEMP1

	MOVLW	.170
	MOVWF	TEMP2

	DECFSZ	TEMP2
	GOTO	$-1

	DECFSZ	TEMP1
	GOTO	$-5

;******************************************

	DECFSZ	TEMP3
	GOTO	$-.27

Таким образом будет сформирован прерывистый звуковой сигнал частотой 500 Гц, длительностью 200 миллисекунд с интервалом следования 100 миллисекунд. Всего 10 пакетов. Общей длительностью: (0,2+0,1)х3 = 0,9 секунды

 

Далее следует блок, включающий или выключающий нагрузку:

;************ВКЛ./ОТКЛ. нагрузку***********

	BTFSS	GPIO,5    		; ЕСЛИ ПОРТ В "0"
	GOTO	$+2

	GOTO	$+3	

	BSF		GPIO,5			; УСТ. В "1"

	GOTO	$+2

	BCF		GPIO,5			; УСТ. В "0"	

;******************************************

Переключение состояния порта происходит по принципу: если был «0» - установить «1», если был «1» - установить «0». Я называю такой принцип переключения – триггерным.

При повторении устройства крайне важно подобрать транзисторы по наибольшему коэффициенту усиления: КТ3102 – не менее 500, КТ3107 – не менее 1000. Допускается использовать любые другие маломощные низкочастотные транзисторы с подобными коэффициентами усиления. Наладка устройства сводится к подбору резисторов смещения на базы усилительных каскадов по наибольшему усилению сигнала.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МК PIC 8-бит
PIC12F629
1 Поиск в магазине ОтронВ блокнот
Биполярный транзистор
КТ3102Б
1 Поиск в магазине ОтронВ блокнот
Биполярный транзистор
КТ3102Е
1 Поиск в магазине ОтронВ блокнот
Биполярный транзистор
KSE13003
1 Поиск в магазине ОтронВ блокнот
СтабилитронКС106Б1 Поиск в магазине ОтронВ блокнот
Диод
КД512А
1 Поиск в магазине ОтронВ блокнот
Выпрямительный диод
1N4007
5 Поиск в магазине ОтронВ блокнот
R* Резистор
16 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
100 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
3.3 МОм
1 Поиск в магазине ОтронВ блокнот
Резистор
100 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
2 МОм
1 Поиск в магазине ОтронВ блокнот
Резистор
47 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор
20 кОм
1 Поиск в магазине ОтронВ блокнот
Конденсатор100 мкФ х 6 В1 Поиск в магазине ОтронВ блокнот
Конденсатор100 нФ1 Поиск в магазине ОтронВ блокнот
Конденсатор1000 пФ1 Поиск в магазине ОтронВ блокнот
Конденсатор510 пФ1 Поиск в магазине ОтронВ блокнот
Пьезоизлучатель1 Поиск в магазине ОтронВ блокнот
РелеTRM 30031 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 1 Проголосовало: 1 чел.

Комментарии (17) | Я собрал (0) | Подписаться

0
Владимир #
А это точно работает???
Дмитрий, вот такое бестрансформаторное питание - дикость! Я бы еще понял перед мостом пару 0,47мкФ/470кОм, а потом стабилизацию нужных напряжений. Но гасить выпрямленное сетевое резистором - это что-то!
Ответить
0

[Автор]
dima1983 #
Схема не на столько сложная, чтобы рассуждать о ее работоспособности. Соберите и проверьте. Трансформаторные источники целесообразно ставить там, где в них есть необходимость.
Посмотрите прикрепленную к ответу схему. Там такой же источник питания и все прекрасно работает.
Прикрепленный файл: i0075rp.jpg
Ответить
0
RGB-V #
Потребление 100 мкА расчётное или измерено? И резистор 100к греется?
Ответить
-2

[Автор]
dima1983 #
Теперь по вашему вопросу. Максимальный то первого каскада: 6 В/100 000 Ом = 0,00006 А
второго каскада:6 В/ 47 000 Ом = 0,00013 А
ток потребления пика в спящем режиме: 0,000004 А
суммарный ток: 0,00006 + 0,00013 + 0,000004 = 0,000194 А = 194 мкА
тепловыделение на резисторе:
I*I*R = 0,000194 * 0,000194 *100 000 = 0,004 Вт
в схеме стоит резистор на 0,125 Вт
Ответить
-2

[Автор]
dima1983 #
При при активной работе контроллера ток потребления возрастает до 2 миллиампер
при этом тепловыделение на резисторе составляет
0,002*0,002*100 000 = 0,4 Вт
поэтому в схеме
установлен резистор мощностью: 0,125 - 0,5 Вт
Ответить
0
Wladimir #
Не смущает, что ток стабилизации КС106 - 0,5мА по даташиту? КС133 - 50-80мА
Ответить
0

[Автор]
dima1983 #
Изначально вы спросили о том, можно ли гасить напряжение после диодного моста. Я вам привел пример схемы, где такое питание применяется. Теперь вы спрашиваете про стабилитрон... Не нравится вам такой как на схеме - ставьте другой...133 или 147 или 156...
Отредактирован 30.11.2015 15:11
Ответить
0
Григорий Т. #
По вашему, ток через резистор зависит от тока через контроллер?
Ответить
0

[Автор]
dima1983 #
Обращаю внимание на то, что устройство питается от сети напрямую и не имеет гальванической развязки! При наладке рекомендуется задействовать трансформаторный блок питания.
Ответить
0
Евгений #
Выступлю в поддержку Владимира.
Данная схема есть прекрасный пример как не надо организовывать питание. Дмитрий, Вы привели пример по ссылке: i0075rp.jpg. Подобных опусов очень много, где описываются устройства эксплуатация которых просто опасна для пользователя!
Ответить
0

[Автор]
dima1983 #
Читайте мой комментарий к материалу выше.
Ответить
0
Romas #
А этот звуковой сигнал и в правду можно услышать? Ведь по этой схеме с пьезоэлементом как бы и не должны. Для того, чтобы слышалось надо ещё один диод и конденсатор. Или ошибаюсь, Евгений, Владимир?
Отредактирован 09.12.2015 21:14
Ответить
0

[Автор]
dima1983 #
Можно. Обратите внимание на то, что параллельно базово-эмиттерному переходу первого по схеме транзистора (КТ3102Е) установлен диод, включенный в обратном направлении. Таким образом в режиме отклика пьезоэлемент оказывается соединенным на землю, по сути, через два встречно запараллеленных диода.
Ответить
0

[Автор]
dima1983 #
https://www.youtube.com/watch?v=7sHk_u12bHU
Ответить
0

[Автор]
dima1983 #
Для надежности работы схемы рекомендую установить сразу после диодного моста небольшой электролит емкость до 10 мкФ на 250 - 400 В. Транзисторы КТ3102 и КТ3107 могут быть заменены на более распространенные КТ315 и КТ361. Однако, в этом случае резистор (20 к), подтягивающий порт GP1 по питанию необходимо увеличить до 200 к. Этим же резистором можно "притуплять" чувствительность устройства. Для уменьшения чувствительности номинал резистора следует уменьшить, для увеличения - увеличить.
Отредактирован 12.12.2015 07:31
Ответить
0
Иван #
Молодец Автор! Собрал и все работает!
Ответить
0
Евгений #
Господа, противники такой "не правильной" организации питания! Не усложняйте жизнь, там где этого не требуется. Похожая схема на PIC 12F683 в пластмассовом корпусе у меня уже два года включает/выключает свет в туалете по тепловому датчику. Питание от емкостного делителя, блок спрятан под профилем потолка. Делайте все правильно, используйте термоусадку и не лазьте пальцами в необесточенную схему, и будет вам счастье! :)
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
Конструктор: DDS генератор сигналов AVR-программатор USB ASP
вверх