В тази публикация ще създадем персонализиран Arduino базиран IR (инфрачервен) безжичен превключвател за дистанционно управление, който се състои от IR дистанционно и приемник, можете да модифицирате според вашите нужди. В по-късната част на статията научаваме за подобрена надеждна версия на IR дистанционно управление, която ще реагира само на уникално зададена честота.
Ако сте над начинаещо ниво, можете да го постигнете с лекота. Предложената схема, илюстрирана тук, има само три контроли на дистанционно и 3 релета на края на приемника. Можете да промените кода и схемата, за да отговорите на вашите нужди.
Ще ви трябват две дъски Arduino, които действат като дистанционно и друго като приемник. Бих препоръчал Arduino pro mini за този проект, тъй като размерите им са доста малки и общият размер на дистанционното може да бъде намален.
Можете да използвате 3.3V базиран Arduino pro mini за дистанционно, така че да можете да се захранвате с две клетки или две батерии с размер AA, според вашите нужди.
Схемата на IR предавателя има 3 бутона за включване и IR LED за изпращане на команди до приемника. Всеки бутон е програмиран с уникален шестнадесетичен код, същият шестнадесетичен код е програмиран и от страната на приемника.
Когато се натисне бутон, IR индикаторът изпраща шестнадесетичния код към приемника, приемникът ще разпознае кой от бутоните е натиснат и превключва съответното реле ВКЛ. / ИЗКЛ.
Предложеното дистанционно използва протокол RC5 за комуникация с приемник, можете да промените всичко, като промените кода.
Ако сте начинаещ в Arduino, все още можете да го постигнете, просто следвайте схемата и качете кода, без да променяте.
Схемата и програмата:
Дистанционен предавател Arduino:

Горната схема илюстрира как да се изгради дистанционният предавател Arduino IR.
Трите 10K резистора са резистори надолу, които предотвратяват случайно задействане на дистанционното поради статичен заряд и за IR LED се използва резистор за ограничаване на тока 220ohm.
Програма за дистанционен предавател:
//---------Program developed by R.Girish--------//
#include
IRsend irsend
const int button1 = 4
const int button2 = 5
const int button3 = 6
void setup() {
pinMode(button1, INPUT)
pinMode(button2, INPUT)
pinMode(button3, INPUT)
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50)
irsend.sendRC5(0x80C, 32)
delay(200)
}
if (digitalRead(button2) == HIGH)
{
delay(50)
irsend.sendRC5(0x821, 32)
delay(200)
}
if (digitalRead(button3) == HIGH)
{
delay(50)
irsend.sendRC5(0x820, 32)
delay(200)
}
}
//---------Program developed by R.Girish--------//
Arduino приемник:

Схемата на приемника IR Arduino, както е показано по-горе, се състои от TSOP1738 сензор малко транзистори, резистори за ограничаване на тока за транзистор, релета и диоди за поглъщане на пик с високо напрежение от релейни бобини.
Схемата е обяснима.
Програма за Arduino приемник:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//
Следвайки горните обяснения, можете да постигнете три контроли, ако искате да добавите още контроли и реле, трябва да редактирате кода и схемата на веригата.
Можете да зададете изход и вход за неизползвани щифтове в приемника и дистанционното в програмата и да свържете броя на транзистора и релето за съответните щифтове в приемника и по същия начин да свържете броя превключватели и да свалите резистора в дистанционното.
Можете да използвате произволен шестнадесетичен код за присвояване на по-голям брой бутони.
Например: 0xA235, 0xFFFF, 0xBA556 и т.н. И също така добавете същата шестнадесетична стойност в кода на приемника също. Например: #define output4 0xA235, #define outout5 0xFFFF и т.н.
Изработване на IR дистанционно управление с уникална честота
В горните раздели научихме за просто IR дистанционно управление, което ще работи с всеки IR дистанционен предавател.
В следващата статия ще научим как да направим подобрена версия на горепосочената концепция за надеждно управление на домашните уреди с помощта на микроконтролер arduino, който ще работи с уникална честота и никога няма да работи с обща IR слушалка.
Безопасно IR дистанционно управление
Тази схема може да включва / изключва вашите приспособления, като използва неизползваните бутони на дистанционното на телевизора или друго неизползвано дистанционно, което може да лежи във вашата боклука от векове.
Девизът на този проект е да се помогне на хора с физически увреждания и да им се помогне да имат достъп до включването / изключването на основните домакински уреди като вентилатори или осветление независимо.
Втората цел е да се даде възможност на потребителя да контролира приспособленията „Като шеф“, без да се налага да се движи от съществуващата си позиция.
Схемата използва традиционна IR базирана комуникация между предавател и приемник.
Тази схема е процентово защитена от други IR дистанционни и други IR източници и по-малко податлива на грешки.
Основният проблем с не-микроконтролер базирани IR верига за дистанционно управление , който се среща в интернет, е, че той може да се включва / изключва с всяко IR базирано дистанционно управление и може да управлява само едно устройство в един момент и също така е по-податлив на грешки.
Тази схема преодолява горепосочените проблеми и ние можем контролирайте няколко приспособления на едно дистанционно управление и задайте ключове за конкретни приспособления.
Преди да продължите с този проект, трябва да изтеглите библиотечните файлове за arduino от тази връзка и да следвате инструкциите, дадени по-долу: github.com/z3t0/Arduino-IRremote
Инструкции:
1) Щракнете върху бутона „клониране или изтегляне“ от дадената връзка и натиснете „Изтегляне на ZIP“.
2) Извлечете файла и преместете папката “IRremote” във вашата библиотечна папка на Arduino.
3) Изтрийте папката „RobotIRremote“ от вашата библиотека на arduino. „RobotIRremote“ има подобна дефиниция на библиотеката „IRremote“, която се сблъсква и не може да качи кода в Arduino, така че изтриването / премахването е задължително.
Като дублирате горната инструкция, вашият софтуер Arduino IDE е готов за всеки / повечето от IR базирани проекти.
Присвояване на ключове за дистанционно:
В дистанционното на телевизора всеки клавиш има уникален шестнадесетичен код, който се използва за разпознаване на кой бутон е натиснат за дадена операция. Преди да качите окончателния код в Arduino, трябва да намерите кои са шестнадесетичните кодове за вашите ключове.
За целта изградете следната схема в макет и следвайте инструкциите.

1) Отворете IDE на Arduino и качете примерния код „IRrecv Demo“
2) Отворете серийния монитор и натиснете бутона на дистанционното, който искате да използвате.
Ще видите изскачащ шестнадесетичен код веднага щом натиснете клавиша. Това е шестнадесетичният код за този конкретен ключ.
3) Направете същото за другите два клавиша (3 ключа са дадени в този проект за управление на 3 устройства)
· Ще използваме тези шестнадесетични кодове в основната програма и ще ги качим в arduino.
Програма: //-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//
ЗАБЕЛЕЖКА:
В програмата:
#define output1 0x111 // поставете кода, получен от бутон A
#define output2 0x111 // поставете кода, получен от бутон B
#define output3 0x111 // поставете кода си, получен от бутон C
· Поставете вашите 3 уникални кода от дистанционното на това място 111, 112 и 113 и качете кода. Шестнадесетичните кодове ще бъдат от 0 до 9 и от A до F, например: 20156, 26FE789, FFFFFF.
· Поставете кода си с „0x“ (нула x).
Електрическа схема:
· Натискането на клавиша изключва релето и чрез повторно натискане релето ще се изключи.

Предишна: Естествен репелент против комари, използващ резистор с висока мощност Следваща: Deep Soil Metal Detector Circuit - Ground Scanner