Дистанционно управление Arduino IR

Опитайте Нашия Инструмент За Премахване На Проблемите





В тази публикация ще създадем персонализиран Arduino базиран IR (инфрачервен) безжичен превключвател за дистанционно управление, който се състои от IR дистанционно и приемник, можете да модифицирате според вашите нужди. В по-късната част на статията научаваме за подобрена надеждна версия на IR дистанционно управление, която ще реагира само на уникално зададена честота.

Ако сте над начинаещо ниво, можете да го постигнете с лекота. Предложената схема, илюстрирана тук, има само три контроли на дистанционно и 3 релета на края на приемника. Можете да промените кода и схемата, за да отговорите на вашите нужди.



Ще ви трябват две дъски Arduino, които действат като дистанционно и друго като приемник. Бих препоръчал Arduino pro mini за този проект, тъй като размерите им са доста малки и общият размер на дистанционното може да бъде намален.

Можете да използвате 3.3V базиран Arduino pro mini за дистанционно, така че да можете да се захранвате с две клетки или две батерии с размер AA, според вашите нужди.



Схемата на IR предавателя има 3 бутона за включване и IR LED за изпращане на команди до приемника. Всеки бутон е програмиран с уникален шестнадесетичен код, същият шестнадесетичен код е програмиран и от страната на приемника.

Когато се натисне бутон, IR индикаторът изпраща шестнадесетичния код към приемника, приемникът ще разпознае кой от бутоните е натиснат и превключва съответното реле ВКЛ. / ИЗКЛ.

Предложеното дистанционно използва протокол RC5 за комуникация с приемник, можете да промените всичко, като промените кода.

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

Схемата и програмата:

Дистанционен предавател Arduino:

Безопасна IR верига за дистанционно управление

Горната схема илюстрира как да се изгради дистанционният предавател 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