ArduinoIRリモートコントロール回路

問題を排除するために楽器を試してください





この投稿では、IRリモートとレシーバーで構成されるカスタマイズ可能なArduinoベースのIR(赤外線)ベースのワイヤレスリモートコントロールスイッチを構築します。必要に応じて変更できます。記事の後半では、一意に割り当てられた周波数にのみ応答するIRリモコンのアップグレードされた絶対確実なバージョンについて学習します。

あなたが初心者レベル以上であれば、あなたはそれを簡単に達成することができます。ここに示されている提案された回路には、リモートに3つのコントロールがあり、レシーバー側に3つのリレーがあります。必要に応じて、コードと回路図を変更できます。



リモートとして機能し、もう1つはレシーバーとして機能する2つのArduinoボードが必要です。このプロジェクトにはArduinopro miniをお勧めします。サイズがかなり小さく、リモートの全体的なサイズが大きくなる可能性があるためです。

リモコンには3.3VベースのArduinopro miniを使用できるため、必要に応じて2つのボタン電池または2つのAAサイズの電池で電力を供給できます。



IR送信機回路には、3つのプッシュオンボタンと、受信機にコマンドを送信するためのIRLEDがあります。各ボタンには固有の16進コードがプログラムされており、同じ16進コードが受信側にもプログラムされています。

ボタンが押されると、IR LEDは16進コードを受信機に送信します。受信機はどのボタンが押されたかを認識し、対応するリレーのオン/オフを切り替えます。

提案されたリモコンは、受信機との通信にRC5プロトコルを使用しており、コードを変更することですべてを変更できます。

Arduinoの初心者の場合でも、図に従って、変更せずにコードをアップロードするだけで、それを達成できます。

回路とプログラム:

Arduinoリモートトランスミッター:

誰にでもできるIRリモートコントロール回路

上記の回路は、ArduinoIRリモートトランスミッターの構築方法を示しています。

3つの10K抵抗はプルダウン抵抗であり、静電気によるリモコンの偶発的なトリガーを防ぎ、220オームの電流制限抵抗がIRLEDに採用されています。

リモートトランスミッターのプログラム:

//---------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レシーバー:

上に示したIRArduinoレシーバー回路は 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-----------//

上記の説明に従うことで、3つのコントロールを実行できます。さらにコントロールとリレーを追加する場合は、コードと回路図を編集する必要があります。

プログラムのレシーバーとリモートの未使用ピンに出力と入力を割り当て、レシーバーのそれぞれのピンにトランジスターとリレーの数を接続し、同様にリモートのスイッチとプルダウン抵抗の数を接続できます。

より多くのボタンを割り当てるために、ランダムな16進コードを使用できます。

例:0xA235、0xFFFF、0xBA556など。また、レシーバーコードにも同じ16進値を追加します。例:#define output4 0xA235、#define outout50xFFFFなど。

独自の周波数でIRリモコンを作る

上記のセクションでは、任意のIRリモート送信機で動作する簡単なIRリモートコントロールについて学習しました。
次の記事では、arduinoマイクロコントローラーを使用して家電製品を確実に制御するための上記の概念のアップグレードバージョンを作成する方法を学習します。これは、固有の周波数で動作し、一般的なIRハンドセットでは動作しません。

誰にでもできるIRリモコン

この回路は、テレビのリモコンの未使用のボタンや、ジャンクボックスに何年も置かれている可能性のあるその他の未使用のリモコンを使用してガジェットをオン/オフできます。

このプロジェクトのモットーは、身体障害者を支援し、ファンやライトなどの基本的な家電製品のオン/オフ切り替えに個別にアクセスできるようにすることです。

2番目の目的は、ユーザーが既存の位置から移動することなく、「ボスのように」ガジェットを制御できるようにすることです。

この回路は、送信機と受信機の間の従来のIRベースの通信を利用しています。

この回路は、他のIRリモート、および他のIRソースに対してセントパーセント確実であり、エラーの影響を受けにくくなっています。

非マイクロコントローラベースの主な問題 IRリモコン回路 は、インターネットで見られるように、IRベースのリモートでオン/オフを切り替えることができ、一度に1つのデバイスしか制御できず、エラーの影響を受けやすくなっています。

この回路は上記の問題を克服し、 1つのリモコンで複数のガジェットを制御する 特定のガジェットにキーを割り当てます。

このプロジェクトを進める前に、このリンクからarduinoのライブラリファイルをダウンロードし、以下の手順に従う必要があります:github.com/z3t0/Arduino-IRremote

指示:

1)所定のリンクから「クローンまたはダウンロード」ボタンをクリックし、「ZIPのダウンロード」をクリックします。

2)ファイルを抽出し、「IRremote」フォルダーをArduinoのライブラリフォルダーに移動します。

3)arduinoライブラリから「RobotIRremote」フォルダを削除します。 「RobotIRremote」には「IRremote」ライブラリの同様の定義があり、衝突してコードをArduinoにアップロードできないため、削除/削除が必須です。

上記の手順を複製することで、ArduinoIDEソフトウェアはIRベースのプロジェクトのいずれか/ほとんどに対応できるようになります。

リモートにキーを割り当てます。

テレビのリモコンでは、各キーに一意の16進コードがあり、操作のためにどのキーが押されたかを認識するために使用されます。最終的なコードをArduinoにアップロードする前に、キーの16進コードを見つける必要があります。

これを行うには、ブレッドボードに次の回路を作成し、指示に従います。

1)Arduino IDEを開き、サンプルコード「IRrecvDemo」をアップロードします

2)シリアルモニターを開き、使用したいリモコンのキーを押します。

キーを押すとすぐに16進コードがポップアップ表示されます。これが、その特定のキーの16進コードです。

3)他の2つのキーについても同じようにします(このプロジェクトでは、3つのデバイスを制御するために3つのキーが与えられています)

・これらの16進コードをメインプログラムで使用し、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のこの場所に配置し、コードをアップロードします。 16進コードは0から9およびAからFになります(例:20156、26FE789、FFFFFF)。

・コードを「0x」(ゼロx)で配置します。

回路図:

・キーを押すとリレーがオンになり、もう一度押すとリレーがオフになります。




前:高ワット抵抗器を使用した天然蚊忌避剤 次へ:深層土壌金属探知機回路–地上スキャナー