ИК СИГНАЛИЗАЦИЯ

Рассказать в:

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

готовый вид ИК сигналки

Принцип работы охранного устройства

Направляем луч лазера на фоторезистор - на расстояние предполагаемой охраняемой зоны, подключаем питание - загорает зелёный светодиод, нажимаем на пульте ДУ красную кнопку или чёрную механическую - устройство в режиме срабатывания сигнализации, при прерывании хода луча лазера - неважно чем условно "рукой" загорает rgb светодиод и из динамика звучит мелодия "Аксель - полицейский из Беверли - Хилз". Чёрная кнопка (слева от красной) на пульте для пропуска или выхода из условно охраняемой зоны - затем снова активируем защиту красной кнопкой или чёрной механической.

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

Оговорюсь, что это любительская сигнализация и реализована не профессионалом, для более серьёзного исполнения нужны более глубокие знания и опыт в разработке подобных систем, надёжные детали, автономное питание и т.д. и т.п.letsgo - начнём с принципиальной схемы:

Электрическая схема

ИК СИГНАЛИЗАЦИЯ - схема принципиальная на МК

ИК СИГНАЛИЗАЦИЯ - список деталей

На схеме вместо: фоторезистора - переменный резистор, ИК датчика - лампа; питание (5 Вольт) микроконтроллера - 7 и 20 ноги - +; 8 и 22 ноги - -. Начнём с механизма фиксации прерывания луча пары лазер - фотодатчик. В цепи делителя r1 - fotoresistor, основным элементом является фоторезистор, меняющий своё сопротивление в зависимости от уровня освещённости, чем светлее, тем меньше его сопротивление. Провоцирующим устройством - уменьшающим сопротивление - будет луч лазера. В роли ключа использован тиристор, этот полупроводник работает как диод, только когда на его управляющий вывод подано нужное напряжение открывания (по справочному листу - 0.8 Вольт), с нашего делителя. Всё просто при создании барьера между лазером и фоторезистором в виде условной руки, у нас открывается ключ-тиристор, и подключенный последовательно с тиристором rgb светодиод загорается. Каждый участок схемы отлаживался на breadboarde:

ИК СИГНАЛИЗАЦИЯ - отладка

Реле rl2 подключенное параллельно rgb будет имитировать кнопку, то есть подачу логической единички на 13 вход контроллера. Этот механизм необходим для связи сигнализации с микроконтроллером. Реализован следующим образом - контакты питания реле подключены параллельно светодиоду, НР контакты один вывод к плюсу питания, второй через подтягивающий резистор к минусу, с этого вывода и забираем нашу "1" на вход 13 при срабатывании нашей сигнализации. На данном этапе микроконтроллер будет управлять следующими процессами:

  • будет включать светодиод зелёного свечения с 15 вывода и отключать его в случае срабатывания сигнализации, на выводе 17 контроллера подключать buzzer и проигрывать мелодию сирены.

Отладка номер 2

ИК СИГНАЛИЗАЦИЯ - настройка схемы

Инфракрасный датчик задуман для возможности отключения-включения питания схемы сигнализации. Реле rl1 коммутирует НР контакты, при поступлении сигнала с пульта ДУ на ИК (4 вход atmeg-и) НР контакты реле (получают усиленный транзистором с 6 вывода сигнал) замыкаются и "питают" механизм фиксации прерывания луча пары лазер - фотодатчик. Другим сигналом с пульта ДУ разрываем контакты реле - вобщем это нужно чтобы включать и отключать сигнализацию дистанционно.

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

В схеме присутствует стандартная обвязка прошитого на плате arduino микроконтроллера atmega - кварцевый резонатор на 16 мГц и 2 конденсатора на 22 пФ.

Для усиления выходного сигнала на 17 выходе контроллера подключим транзистор и будем регулировать громкость переменным резистором.

Для минимизации своего проекта я зашил бутлоадер arduino в контроллер atmeg-и по инструкции описанной в этой статье.

зашил бутлоадер arduino в контроллер atmeg

Я просто вытащил родной контроллер из arduino uno и вставил с записанным загрузчиком микроконтроллер и зашил свой скетч. Учтите, что выходы arduino uno и микроконтроллера будут отличаться, поэтому придерживайтесь этой схемы:

arduino uno схема

Немного о коде

Для связи ИК и контроллера в среде arduino написана библиотека iremote.h, в ней выбираем скетч dump, собираем схему подключения ИК датчика к контроллеру, открываем serial monitor и нажимая на кнопки пульта считываем код этой самой кнопки.

О мелодии - ну тут всё просто музыкальное сопровождение можно выбрать из 180 композиций, которые находятся в свободном доступе в инете.Весь код далее:

#include <irremote.h>//это библиотека для связи ИК-датчика с arduino
irrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results; //это переменная для приёма сигнала
int freq[7][12] = {
{65, 69, 73, 78, 82, 87, 92, 98, 104, 110, 117, 123}, //0 = Большая октава
{131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247}, //1 = Малая октава
{262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494}, //2 = 1-я октава
{523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988}, //3 = 2-я октава
{1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 1976}, //4 = 3-я октава
{2093, 2218, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 3951}, //5 = 4-я октава
{4186, 4435, 4699, 4978, 5274, 5588, 5920, 6272, 6645, 7040, 7459, 7902}, //6 = 5-я октава
};
int soundpin = 11;// выхода на динамик - переменная
void setup() {

irrecv.enableirin(); // запускаем прием
pinmode (soundpin, output);// 17 ножка 328
pinmode (4, output);// 6 ножка 328
pinmode (7, input);// 13 ножка 328
pinmode (9, output);// 15 ножка 328
}
//ВЕСЬ ПОСЛЕДУЮЩИЙ КОД НЕОБХОДИМ ДЛЯ ВОСПРОИЗВЕДЕНИЯ ВЫБРАННЫХ МЕЛОДИЙ
int extractnumber(int& mynumber, char muz[], int& curposition)
{
int digitsnumber=0;
int curdigit=0;
mynumber=0;
do
{
if ((muz[curposition]> 47) && (muz[curposition]<58)) // Коды ascii цифр '0' == 48 , "9' == 57
{
curdigit=muz[curposition]-48;
digitsnumber++;
mynumber=mynumber*10+curdigit;
}
else
{
return digitsnumber;
}
curposition++;
}while(muz[curposition]!= '\0');
return digitsnumber;
}

int pointscount(char muz[], int& curposition)
{
int pointsnumber=0;
do
{
if (muz[curposition]== '.')
{
pointsnumber++;
}
else
{
return pointsnumber;
}
curposition++;
}while(muz[curposition]!= '\0');
return pointsnumber;
}

void qb_play(char muz[])
{
static int generaloktava;
int oktava;
static int tempo=120; // Задание темпа или четвертных нот, которые исполняются в минуту. n от 32 до 255. По умолчанию 120
int nota=0;
int curposition, curnota4;
unsigned long currentnotapauseduration;
unsigned long currentnotaduration;
unsigned long pauseduration;
int takt=240000/tempo;
bool isnota;
bool ispause;
int pointsnum=0;
float generalnotamultipl=0.875;
static float notalong;
float curmultipl;
float tempflo;
float curpause;
unsigned long templong;
int i=0;
do
{
isnota=false;
ispause=false;
oktava=generaloktava;
switch(muz[i]){
case '\0':{
return;
}
break;
case 'c':{
nota=0;
isnota=true;
}
break;
case 'd':{
nota=2;
isnota=true;
}
break;
case 'e':{
nota=4;
isnota=true;
}
break;
case 'f':{
nota=5;
isnota=true;
}
break;
case 'g':{
nota=7;
isnota=true;
}
break;
case 'a':{
nota=9;
isnota=true;
}
break;
case 'b':{
nota=11;
isnota=true;
}
break;
case 'n':{// nнота Играет определенную ноту (0 - 84) в диапазоне семи октав (0 - пауза).
curposition=i+1;
if (extractnumber(curnota4, muz, curposition)){
i=curposition-1;
if (curnota4){
curnota4--;
oktava=curnota4 / 12;
nota=curnota4 % 12;
isnota=true;
}
else{
ispause=true;
}
}
}
break;
case 'o':{ //oоктава Задает текущую октаву (0 - 6).
curposition=i+1;
if (extractnumber(oktava, muz, curposition)){
i=curposition-1;
generaloktava=oktava;
}
}
break;
case '>':{
generaloktava++;
}
break;
case '<':{
generaloktava--;
}
break;
case 'm':{
switch(muz[i+1]){
case 'n':{ //mn Нормаль. Каждая нота звучит 7/8 времени, заданного в команде l
generalnotamultipl=0.875; // =7/8
i++;
}
break;
case 'l':{ //ml Легато. Каждая нота звучит полный интервал времени, заданного в команде l
generalnotamultipl=1.0;
i++;
}
break;
case 's':{ //ms Стаккато. Каждая нота звучит 3/4 времени, заданного в команде l
generalnotamultipl=0.75; // =3/4
i++;
}
break;
case 'f':{ //mf Режим непосредственного исполнения. Т.е. на время проигрывания ноты программа приостанавливается. Используется по умолчанию
i++; //Сдвигаем точку чтения и ничего не делаем.
}
break;

case 'b':{ //mb проигрывние в буффер
i++; //Сдвигаем точку чтения и ничего не делаем.
}
break;
}
}
break;
case 'l':{ //lразмер Задает длительность каждой ноты (1 - 64). l1 - целая нота, l2 - 1/2 ноты и т.д.
curposition=i+1;
if (extractnumber(curnota4, muz, curposition)){
i=curposition-1;
tempflo=float(curnota4);
notalong=1/tempflo;
}
}
break;
case 't':{ //tтемп Задает темп исполнения в четвертях в минуту (32-255).По умолчанию 120
curposition=i+1;
if (extractnumber(tempo, muz, curposition)){
i=curposition-1;
takt=240000/tempo; // миллисекунд на 1 целую ноту. 240000= 60 сек * 1000 мсек/сек *4 четвертей в ноте
}
}
break;
case 'p':{ //pпауза Задает паузу (1 - 64). p1 - пауза в целую ноту, p2 - пауза в 1/2 ноты и т.д.
curposition=i+1;
if (extractnumber(curnota4, muz, curposition)){
tempflo=float(curnota4);
curpause=1/tempflo;
i=curposition-1;
ispause=true;
}
}
break;
case ' ':{ //Есть в некоторых текстах. Вероятно это пауза длительностью в текущую ноту
curpause= notalong;
ispause=true;
}
break;
}
if (isnota){
switch(muz[i+1]){
case '#':{ // диез
nota++;
i++;
}
break;
case '+':{ // диез
nota++;
i++;
}
break;
case '-':{ // бемоль
nota--;
i++;
}
break;
}
curposition=i+1;
if (extractnumber(curnota4, muz, curposition)){
currentnotaduration=takt/curnota4;
i=curposition-1;
}
}
if (oktava<0) oktava=0;
if (oktava>6) oktava=6;
if (isnota || ispause){
curposition=i+1;
pointsnum=pointscount(muz, curposition);
if (pointsnum) i=curposition-1;
curmultipl=1.0;
for (int j=1; j<=pointsnum; j++) {
curmultipl= curmultipl * 1.5;
}
currentnotapauseduration=(takt*notalong);
}
if (isnota){
curmultipl=curmultipl*generalnotamultipl;
currentnotaduration= (currentnotapauseduration*curmultipl);
if (nota<0) nota=0;
if (nota>11) nota=11;
templong= freq[oktava][nota];
tone(soundpin,templong,currentnotaduration);
delay(currentnotapauseduration);
}
if (ispause){
pauseduration=takt*curpause*curmultipl;
delay(pauseduration);
}
i++;
} while (muz[i]!= '\0');
}

void loop() {
digitalwrite(9,high);// делаем активным зелённый светодиод
if ( irrecv.decode( &results )) { // если данные с пульта ДУ пришли
switch ( results.value ) {
case 0xff02fd:// это то что мы считали с пульта ДУ
digitalwrite(4, high); //подключаем реле
break;
case 0xff827d:// это то что мы считали с пульта ДУ
digitalwrite(4, low); // разрываем реле
break;
}
irrecv.resume(); // принимаем следующую команду
}

while(digitalread(7) == high)// если на 13 ножке, действительно логическая единичка, то выполнить условие
{
digitalwrite(9,low);//отключить зелёный светодиод
digitalwrite(soundpin,high);// подключаем динамик и проигрываем мелодию
qb_play ( "mnt150l8o2f+p8a.l16f+f+f+l8bf+ef+p8>c+l16<f+f+f+l8>dc+");
qb_play ( "<af+>c+f+l16<f+eeel8c+g+f+l4f+p2l8f+p8a.l16f+f+f+l8bf+");
qb_play ("ef+p8>c+l16<f+f+f+l8>dc+<af+>c+f+l16<f+eeel8c+g+f+l4f+");
qb_play ( "p2l8<f+p8>f+.l16<ee>el8<c+>c+<ef+p8>f+p8p16l16<c+l8>c+");
qb_play ( "ef+<dp8>d.l16<ee>el8<c+ef+l4>f+p4p16l16el8<c+baf+p8>f+.");
qb_play ( "l16<ee>el8<c+>c+<ef+p8>f+p8p16l16<c+l8>c+ef+<dp8>d.l16<e");
qb_play ( "e>el8<c+ef+l4>f+p4p16l16el8<c+baf+p8a.l16f+f+f+l8bf+e");
qb_play ( "f+p8o3c+l16<f+f+f+l8>dc+<af+>c+f+l16<f+eeel8c+g+f+l4f+");
qb_play ( "p2l8f+p8a.l16f+f+f+l8bf+ef+p8>c+l16<f+f+f+l8>dc+<af+>c+");
qb_play ( "f+l16<f+eeel8c+g+f+l4f+p2p8l8>c+c+l16c+ep16l8el16el8d+");
qb_play ( "d+d+c+c+l16c+ep16el8dc+<ap8aaal16al8bl16bp16l8bl16bl8b");
qb_play ( ">c+c+c+l16<bl8>c+l16c+p16l8c+p8p8c+c+l16c+ep16l8el16e");
qb_play ( "l8d+d+d+c+c+l16c+ep16el8dc+<ap8aaal16al8bl16bp16l8bl16b");
qb_play ( "l8b>c+c+c+l16<bl8>c+l16c+p16l8c+p8o1f+p8>f+.l16<ee>el8<c+");
qb_play ( ">c+<ef+p8>f+p8p16l16<c+l8>c+ef+<dp8>d.l16<ee>el8<c+ef+");
qb_play ( "l4>f+p4p16l16el8<c+baf+p8>f+.l16<ee>el8<c+>c+<ef+p8>f+");
qb_play ( "p8p16l16<c+l8>c+ef+<dp8>d.l16<ee>el8<c+ef+l4>f+p4p16l16e");
qb_play ( "l8<c+baf+p8a.l16f+f+f+l8bf+ef+p8o3c+l16<f+f+f+l8>dc+<a");
qb_play ( "f+>c+f+l16<f+eeel8c+g+f+l4f+p2p4l8f+p8a.l16f+f+f+l8bf+");
qb_play ( "ef+p8>c+l16<f+f+f+l8>dc+<af+>c+f+l16<f+eeel8c+g+f+l4f+");
qb_play ( "p2p4l8a.l16el8eal16al8e.aea.l16el8eal16al8e.aea.l16el8e");
qb_play ( "al16al8e.ael16>ed<baal8bl16>dl8ed<bal16>ed<baal8bl16>d");
qb_play ( "l8ed<bal16>ed<baal8bl16>dl8ed<bal16>ed<baal8bl16>dl8e");
qb_play ( "d<bap8>c+c+l16c+ep16l8el16el8d+d+d+c+c+l16c+ep16el8dc+");
qb_play ( "<ap8aaal16al8bl16bp16l8bl16bl8b>c+c+c+l16<bl8>c+l16c+");
qb_play ( "p16l8c+p8p8c+c+l16c+ep16l8el16el8d+d+d+c+c+l16c+ep16e");
qb_play ( "l8dc+<ap8aaal16al8bl16bp16l8bl16bl8b>c+c+c+l16<bl8>c+");
qb_play ( "l16c+p16l8c+p8aaal16al8bl16bp16l8bl16bl8bc+c+c+l16<bl8>c+");
qb_play ( "l16c+p16l8c+p8f+p8a.l16f+f+f+l8bf+ef+p8c+l16<f+f+f+l8>d");
qb_play ( "c+<af+>c+f+l16<f+eeel8c+g+f+l4f+p2p4" );

}
}

Печатная плата:

ИК СИГНАЛИЗАЦИЯ - печатная плата

Далее монтажные работы, и наконец-то финальная пуско-наладка:

ИК СИГНАЛИЗАЦИЯ самодельная

Дальше больше сделал такие наличники:

ИК СИГНАЛИЗАЦИЯ - наличники

И собрал схему под названием "Угол падения - равен углу отражения" - настройка была долгой но всё прошло на УРА!

Своими руками ИК СИГНАЛИЗАЦИЯ ОХРАННАЯ

Всё действо можно лицезреть на видеоролике - будет интересно:

Видео

Спасибо за внимание - с уважением ко всем таким же начинающим радиолюбителям как и я, да и просто заблудшим душам. С вами был Тольяттинский Эмбеддер (1945).

Форум по охранным устройствам

Обсудить статью ИК СИГНАЛИЗАЦИЯ


Раздел: [Схемы]

Сохрани статью в:

Оставь свой комментарий или вопрос:


Тясячи схем в категориях:
-> Прочее
-> Измерительная техника
-> Приборы
-> Схемыэлектрооборудования
-> Источники питания (прочие полезные конструкции)
-> Теоретические материалы
-> Справочные материалы
-> Устройства на микроконтроллерах
-> Зарядные устройства (для батареек)
-> Зарядные устройства (для авто)
-> Преобразователи напряжения (инверторы)
-> Все для кулера (Вентилятора)
-> Радиомикрофоны, жучки
-> Металоискатели
-> Регуляторы мощности
-> Охрана (Сигнализация)
-> Управление освещением
-> Таймеры (влажность, давление)
-> Трансиверы и радиостанции
-> Конструкции для дома
-> Конструкции простой сложности
-> Конкурс на лучшую конструкцию на микроконтроллерах
-> Конструкции средней сложности
-> Стабилизаторы
-> Усилители мощности низкой частоты (на транзисторах)
-> Блоки питания (импульсные)
-> Усилители мощности высокой частоты
-> Приспособления для пайки и конструирования плат
-> Термометры
-> Борт. сеть
-> Измерительные приборы (тахометр, вольтметр итд)
-> Железо
-> Паяльники ипаяльные станции
-> Радиопередатчики
-> Вспомогательные устройства
-> Телевизионная техника
-> Регуляторы тембра, громкости
-> Блоки питания (лабораторные)
-> Усилители мощности низкой частоты (на микросхемах)
-> Другие устройства для усилителей
-> Cветовое оформление новогодней ёлки или праздничного зала
-> Глушилки
-> Телефонные жуки
-> Инфракрасная техника
-> Медицинская техника
-> Телефония
-> Для животного мира
-> Конструируем усилители
-> Антенны и усилители к ним
-> Звонки
-> Электронные игрушки
-> Усилители мощности низкой частоты (ламповые)
-> Управление двигателями (питание от однофазной сети)
-> Программаторы микроконтроллеров
-> Сверлилки
-> Изучаем микроконтроллеры
-> Радиоприемники
-> Сигнализации
-> Сотовая связь
-> USB-устройства
-> Блоки питания (трансформаторные)
-> Радиостанции простые в изготовлении
-> Источники питания (для усилителей)
-> Прочеее
-> защита от короткого замыкания (электронные предохранители)
-> Зарядные устройства (для радиостанций)
-> Мигалки
-> Cварочное оборудование
-> Кодовые электронные замки
-> Блоки питания (бестрансформаторные)
-> Часы
-> Управление поворотниками
-> Зажигание
-> Управление водой (насосы для скважин или колодцев, полив растений)
-> Моделирование
-> Блоки управления стеклоочистителями
-> Предварительные усилители
-> Защита от перегрузки и перегрева
-> Динамики
-> Ремонт бытовой техники
-> Дистанционное управление компьютером
-> Акустические микрофоны и преобразователи
-> Спутниковое ТВ
-> Gsm антенны, примочки, усилители, ретрансляторы.
-> Пищалки
-> Роботы
-> Ретрансляторы
-> Паяльники и паяльные станции
-> Звуковые сигнализаторы
-> Рули и джойстики
-> Схемы электрооборудования
-> Все для "кулера" (Вентилятора)
-> Работа с BGA микросхемами
-> Фильтры
-> Сабвуферы
Рейтинг@Mail.ru