Obwód zdalnego sterowania Arduino na podczerwień

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować konfigurowalny bezprzewodowy przełącznik zdalnego sterowania oparty na Arduino, oparty na podczerwieni (podczerwień), który składa się z pilota na podczerwień i odbiornika, który możesz modyfikować zgodnie z własnymi potrzebami. W dalszej części artykułu dowiemy się o ulepszonej, niezawodnej wersji pilota na podczerwień, który będzie reagował tylko na jednoznacznie przydzieloną częstotliwość.

Jeśli jesteś powyżej poziomu początkującego, możesz to z łatwością osiągnąć. Przedstawiony tutaj proponowany obwód ma tylko trzy elementy sterujące na pilocie i 3 przekaźniki na końcu odbiornika. Możesz zmodyfikować kod i schemat połączeń, aby spełnić swoje potrzeby.



Będziesz potrzebować dwóch płyt Arduino, które działają jako zdalne, a druga jako odbiornik. Poleciłbym Arduino pro mini do tego projektu, ponieważ ich rozmiary są dość małe, a całkowity rozmiar pilota można by uchylić.

Możesz użyć Arduino pro mini na bazie 3.3 V do pilota, dzięki czemu możesz być zasilany dwoma bateriami guzikowymi lub dwoma bateriami AA, w zależności od potrzeb.



Obwód nadajnika podczerwieni ma 3 przyciski i diodę podczerwieni do wysyłania poleceń do odbiornika. Każdy przycisk ma zaprogramowany unikalny kod szesnastkowy, ten sam kod szesnastkowy jest również zaprogramowany po stronie odbiornika.

Kiedy przycisk jest wciśnięty, dioda podczerwieni wysyła kod szesnastkowy do odbiornika, odbiornik rozpoznaje, który przycisk jest wciśnięty i włącza / wyłącza odpowiedni przekaźnik.

Proponowany pilot do komunikacji z odbiornikiem wykorzystuje protokół RC5, możesz wszystko zmienić modyfikując kod.

Jeśli dopiero zaczynasz korzystać z Arduino, nadal możesz to osiągnąć, po prostu postępuj zgodnie ze schematem i prześlij kod bez modyfikowania.

Obwód i program:

Zdalny nadajnik Arduino:

Niezawodny obwód zdalnego sterowania na podczerwień

Powyższy obwód ilustruje jak zbudować zdalny nadajnik Arduino IR.

Trzy rezystory 10K są rezystorami obniżającymi, które zapobiegają przypadkowemu wyzwoleniu pilota z powodu ładunku statycznego, a rezystor ograniczający prąd 220 omów jest zastosowany dla diody LED IR.

Program do zdalnego nadajnika:

//---------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--------//

Odbiornik Arduino:

Obwód odbiornika IR Arduino, jak pokazano powyżej, składa się z Czujnik TSOP1738 kilka tranzystorów, rezystory ograniczające prąd dla tranzystora, przekaźniki i diody do absorbowania skoków wysokiego napięcia z cewek przekaźników.

Schemat obwodu jest oczywisty.

Program dla odbiornika 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-----------//

Postępując zgodnie z powyższymi objaśnieniami, możesz wykonać trzy kontrolki, jeśli chcesz dodać więcej kontrolek i przekaźników, musisz edytować kod i schemat obwodu.

Możesz w programie przypisać wyjście i wejście dla nieużywanych pinów w odbiorniku i pilocie oraz podłączyć liczbę tranzystorów i przekaźników do odpowiednich pinów w odbiorniku i podobnie podłączyć liczbę przełączników i rezystor obniżający w zdalnym układzie.

Możesz użyć losowego kodu szesnastkowego do przypisania większej liczby przycisków.

Na przykład: 0xA235, 0xFFFF, 0xBA556 i tak dalej. Dodaj też tę samą wartość szesnastkową w kodzie odbiornika. Na przykład: #define output4 0xA235, #define outout5 0xFFFF i tak dalej.

Tworzenie pilota na podczerwień z unikalną częstotliwością

W powyższych sekcjach dowiedzieliśmy się o prostym pilocie na podczerwień, który będzie współpracował z każdym pilotem na podczerwień.
W następnym artykule dowiemy się, jak wykonać ulepszoną wersję powyższej koncepcji, aby zapewnić niezawodne sterowanie urządzeniami gospodarstwa domowego za pomocą mikrokontrolera arduino, który będzie pracował z unikalną częstotliwością i nigdy nie będzie współpracował ze zwykłym pilotem IR.

Niezawodny pilot na podczerwień

Ten obwód może włączać / wyłączać gadżety za pomocą nieużywanych przycisków pilota telewizora lub dowolnego innego nieużywanego pilota, który może leżeć w pudełku na śmieci przez wieki.

Mottem tego projektu jest pomoc osobom niepełnosprawnym fizycznie i ułatwienie im samodzielnego włączania / wyłączania podstawowych urządzeń domowych, takich jak wentylatory czy oświetlenie.

Drugim celem jest umożliwienie użytkownikowi kontrolowania gadżetów „jak szef” bez konieczności przemieszczania się z istniejącej pozycji.

Obwód wykorzystuje tradycyjną komunikację między nadajnikiem a odbiornikiem opartą na podczerwieni.

Ten obwód jest w procentach niezawodny w stosunku do innych pilotów na podczerwień i innych źródeł podczerwieni oraz mniej podatny na błędy.

Główny problem w przypadku systemów innych niż mikrokontrolery Obwód pilota na podczerwień , który można znaleźć w Internecie, polega na tym, że można go włączać / wyłączać za pomocą dowolnego pilota na podczerwień i może sterować tylko jednym urządzeniem na raz, a także jest bardziej podatny na błędy.

Ten obwód pokonuje powyższe problemy i możemy steruj kilkoma gadżetami na jednym pilocie i przypisywać klawisze do określonych gadżetów.

Przed kontynuowaniem tego projektu należy pobrać pliki biblioteki dla arduino z tego linku i postępować zgodnie z instrukcją podaną poniżej: github.com/z3t0/Arduino-IRremote

Instrukcje:

1) Kliknij przycisk „klonuj lub pobierz” z podanego linku i naciśnij „Pobierz plik ZIP”.

2) Wyodrębnij plik i przenieś folder „IRremote” do folderu biblioteki Arduino.

3) Usuń folder „RobotIRremote” z biblioteki arduino. „RobotIRremote” ma podobną definicję biblioteki „IRremote”, która koliduje i nie jest w stanie przesłać kodu do Arduino, więc usunięcie / usunięcie jest obowiązkowe.

Powielając powyższą instrukcję, oprogramowanie Arduino IDE jest gotowe do każdego / większości projektów opartych na podczerwieni.

Przypisz klawisze do pilota:

W naszym pilocie do telewizora każdy klawisz ma unikalny kod szesnastkowy, który służy do rozpoznawania, który klawisz został naciśnięty w celu wykonania operacji. Przed przesłaniem ostatecznego kodu do Arduino musisz dowiedzieć się, jakie są kody szesnastkowe dla twoich kluczy.

Aby to zrobić, utwórz następujący obwód w płytce prototypowej i postępuj zgodnie z instrukcjami.

1) Otwórz Arduino IDE i prześlij przykładowy kod „IRrecv Demo”

2) Otwórz monitor szeregowy i naciśnij klawisz na pilocie, którego chcesz użyć.

Zaraz po naciśnięciu klawisza pojawi się wyskakujący kod szesnastkowy. To jest kod szesnastkowy dla tego konkretnego klucza.

3) Zrób to samo dla pozostałych dwóch kluczy (w tym projekcie podano 3 klucze do sterowania 3 urządzeniami)

· Zamierzamy użyć tych kodów szesnastkowych w głównym programie i przesłać do arduino.

Program:
//-----------------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-----------//

UWAGA:

W programie:

#define output1 0x111 // umieść kod otrzymany z przycisku A

#define output2 0x111 // umieść swój kod otrzymany z przycisku B

#define output3 0x111 // umieść kod otrzymany z przycisku C

· Umieść 3 unikalne kody z pilota w tym miejscu 111, 112 i 113 i prześlij kod. Kody szesnastkowe będą wynosić od 0 do 9 i od A do F, na przykład: 20156, 26FE789, FFFFFF.

· Umieść swój kod z „0x” (zero x).

Schemat obwodu:

· Naciśnięcie klawisza powoduje załączenie przekaźnika, a ponowne naciśnięcie wyłącza przekaźnik.




Poprzedni: Naturalny środek odstraszający komary przy użyciu rezystora o dużej mocy Dalej: Obwód detektora metali głębokich gleby - skaner naziemny