リモコンでLEDストリップライトのオン/オフと明るさを制御

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





この投稿では、Arduinoを使用してLEDストリップコントローラー回路を構築します。これにより、通常のIR(赤外線)リモコンを使用してLEDのオン/オフを切り替えたり、LEDの輝度を増減したりできます。



LEDストリップライトとは何ですか? (初心者向け)

LEDストリップライトに慣れていない場合は、それが何であるかを理解しましょう。

LEDストリップ(リボンライトと呼ばれることもあります)は、一連の明るいLEDとコントローラー回路で構成されるフレキシブルPCBであり、LEDストリップのコンポーネントは表面マウンド(SMD)です。



お祭りの季節など、家やパーティールーム、アウトドアの飾り付けに使われます。

裏面に粘着層があり、接着剤を使わなくても壁や木などの滑らかな表面に貼り付けることができます。

さまざまな長さ、幅、色があります。このプロジェクトでは、単色のLEDストリップを制御します。ただし、RGBカラーを個別に制御する場合は、指定されたコードと回路を変更できます。

LEDストリップは仕様に応じて12Vまたは24Vで動作しますが、このプロジェクトでは、arduinoボードが24Vを処理するように設計されていないため、24Vは適していません。 5Vで動作し、回路を適切に変更した後にのみこのプロジェクトで使用できるUSBタイプのLEDストリップも利用できます。

これで、LEDストリップライトについて理解できたはずです。

LEDストリップライトには、市場で容易に入手できるコントローラー回路が必要ですが、それらは高価です。このプロジェクトでは、任意のIRリモコンを介してLEDストリップライトを制御できるシンプルで安価な回路を構築します。

回路図:

Arduinoを搭載したLEDストリップライトコントローラー

回路はいくつかのコンポーネントで構成されています:カップリングコンデンサを備えた電圧レギュレータ、TSOP1738 IRセンサー、MOSFET IRFZ44N、LEDストリップ、プロジェクトarduinoUnoの頭脳。このプロジェクトでは、お気に入りのarduinoボードを選択できます。

TSOP1738センサーは、リモートからIR信号を受信し、マイクロコントローラーが理解できるようにデコードします。 NチャネルMOSFETは、arduinoからの信号を増幅し、LEDストリップに供給します。

電圧レギュレータは、arduinoとLEDストリップに電力を供給します。電源がLEDストリップに十分な量の電流を供給できることを確認してください。

提案された回路は12VLEDストリップ用に設計されており、LEDストリップの仕様に応じて電圧レギュレーターを変更できます。 arduinoの絶対最大値は20Vであるため、定格電圧が20Vを超えるLEDストリップは使用しないことをお勧めします。

この回路は、LEDストリップのオンとオフを切り替えることができ、明るさを5段階で上下に調整できます。これは、LEDストリップにさまざまなPWM信号を適用することによって実現されます。

テストする方法

これらの操作を実行するには、以下の手順に従ってください。

•回路を制御するリモコンの3つのボタンを選択します。これらのボタンの16進コードを知る必要があります

•IDEを開き、[ファイル]> [例]> [IRremote]> [IRrecvDemo]に移動します。

•セットアップが完了したら、USBをarduinoに接続し、PC(外部電源なし)にコードをアップロードして、シリアルモニターを開きます。

•各ボタンを1回押すと、シリアルモニターに16進コードが表示され、メモされます。これらの16進コードは、指定されたプログラムとともにarduinoにアップロードする必要があります。

注意:

提案された回路は、単色LEDストリップを制御するために設計されています。マルチカラーLEDストリップの短いRGB端子(白色を与える)がある場合、回路の残りの部分は同じです。

プログラムコード:

//---------Program developed by R.Girish---------//
#include
int X
int Y
int output = 9
int W = 5
int receive = 10
IRrecv irrecv(receive)
decode_results Z
void setup()
{
irrecv.enableIRIn()
Y=0
X=255
pinMode(output,OUTPUT)
}
void loop()
{
if (irrecv.decode(&Z))
{
if (Z.value==0x80C) // Hex code for ON/OFF
{
if(Y==0)
{
digitalWrite(output,HIGH)
Y=1
}
else
{
digitalWrite(output,LOW)
Y=0
X=255
}}
if (Z.value==0x811 && Y==1) // Hex code for reducing Brightness
{
if(X-255/W<0)
{
analogWrite(output,X)
}
else
{
X=X-255/W
analogWrite(output,X)
}}
if (Z.value==0x810 && Y==1) // Hex code for increasing Brightness
{
if(X+255/W>255)
{
analogWrite(output,X)
}
else
{
X=X+255/W
analogWrite(output,X)
}}
irrecv.resume()
}}
//---------Program developed by R.Girish---------//

注意:
0x80C、0x810、0x811を、「0x」で始まるリモコンの16進コードに置き換えます




前:トランジスタストレイピックアップの誤トリガーの問題 次へ:ホテル用自動フードウォーマーランプ