Arduinoを使用したLEDストリップの配線図と制御。 LEDストリップをarduinoに接続して制御する
この記事では、カラーLED、単純なRGB LEDとアドレス指定可能なLEDの違いについて説明し、アプリケーション、それらの動作、LED接続の概略図による制御方法に関する情報を補足します。
LEDは発光できる電子部品です。 今日では、懐中電灯、コンピューター、家電製品、自動車、電話など、さまざまな電子機器で広く使用されています。 多くのマイクロコントローラープロジェクトは、何らかの方法でLEDを使用しています。
それらには2つの主な目的があります。:
機器の動作のデモンストレーションまたはイベントの通知。
装飾目的(照明と視覚化)に使用します。
内部のLEDは、赤(赤)、緑(緑)、青(青)の結晶が1つのパッケージにまとめられています。 したがって、名前はRGBです(図1)。
2.マイクロコントローラーの使用
これを使用すると、さまざまな色合いの光を得ることができます。 RGB LEDは、Arduinoなどのマイクロコントローラー(MK)によって制御されます(図2)。
もちろん、単純な5ボルトの電源、電流を制限する100〜200オームの抵抗、および3つのスイッチでうまくいくことができますが、その場合は、グローと色を手動で制御する必要があります。 この場合、希望する色合いを実現することはできません(図3-4)。
この問題は、100色のLEDをマイクロコントローラーに接続する必要がある場合に発生します。 コントローラのピン数には制限があり、各LEDには4つのピンが必要です。そのうちの3つは色を担当し、4番目のピンは一般的です。LEDのタイプに応じて、アノードまたはカソードになります。
3.RGB制御用コントローラー
MKの出力をアンロードするには、特別なコントローラーWS2801(5ボルト)またはWS2812B(12ボルト)が使用されます(図5)。
別のコントローラーを使用すると、複数のMK出力を占有する必要がなく、1つの信号出力のみに制限できます。 MKは、WS2801LED制御コントローラーの「データ」入力に信号を送信します。
この信号には、24ビットの色輝度情報(各色に8ビットの3チャネル)と、内部シフトレジスタの情報が含まれています。 これは、どのLED情報がアドレス指定されているかを判別できるようにするシフトレジスタです。 したがって、マイクロコントローラの1つの出力を使用しながら、複数のLEDを直列に接続することができます(図6)。
4.アドレス指定可能なLED
これはRGBLEDであり、チップ上に直接統合されたWS2801コントローラーのみを備えています。 LEDのハウジングは、表面実装用のSMDコンポーネントとして作られています。 このアプローチにより、LEDを互いにできるだけ近くに配置して、グローをより詳細にすることができます(図7)。
オンラインストアでは、1メートルに最大144個が収まる場合、アドレス指定可能なLEDストリップを見つけることができます(図8)。
1つのLEDが最大輝度で60〜70 mAしか消費しないことを考慮する価値があります。たとえば、テープを90個のLEDに接続する場合、少なくとも5アンペアの電流を備えた強力な電源が必要になります。 いかなる場合でも、コントローラーを介してLEDストリップに電力を供給しないでください。そうしないと、過熱して負荷から燃え尽きてしまいます。 外部電源を使用してください(図9)。
5.アドレス指定可能なLEDの欠如
アドレス指定可能なLEDストリップは、低温では機能しません。-15になると、コントローラーが故障し始めます。より厳しい霜では、故障のリスクが高くなります。
2番目の欠点は、1つのLEDに障害が発生すると、残りのすべてがチェーンに沿って動作することを拒否することです。内部シフトレジスタはそれ以上情報を転送できなくなります。
6.アドレス指定可能なLEDストリップの適用
アドレス指定可能なLEDストリップは、車、水族館、フォトフレーム、絵画の装飾照明、インテリアデザイン、クリスマスの装飾などに使用できます。
LEDストリップをコンピューターモニターのAmbilightバックライトとして使用すると、興味深い解決策になります(図10-11)。
Arduinoベースのマイクロコントローラーを使用する場合は、LEDストリップの操作を簡素化するためにFastLedライブラリが必要になります()。
RGB LEDストリップは、導体が適用された柔軟なストリップとRGB LED(フルカラー)です。 最近、LEDストリップは、建築、自動車やオートバイのチューニング、衣装、装飾などで広く使用されています。 たとえばプールで使用できる防水テープもあります。
LEDストリップには2つのタイプがあります。 アナログとデジタル.
アナログテープでは、すべてのLEDが並列に接続されています。 したがって、LEDストリップ全体の色を設定することはできますが、特定のLEDに特定の色を設定することはできません。 これらのテープは接続が簡単で、高価ではありません。
デジタルLEDストリップはもう少し複雑です。 LEDごとにマイクロチップを追加搭載し、LEDの制御を可能にします。 このようなテープは通常よりもはるかに高価です。
この記事では、アナログLEDストリップのみを使用することを検討します。
アナログRGBLEDストリップ
データシート:
-セグメントあたり幅10.5mm、厚さ3mm、長さ100mm
- 防水
-下部に3Mテープ
-最大 消費電流(12V、白)-セグメントあたり60mA
-グローカラー(波長、nm):630nm / 530nm / 475nm
RGBLEDストリップの回路図
テープはロールで提供され、長さ10cmのセクションで構成されています。各セクションには3つのRGBLED、サイズ5050が含まれています。 各セクションには、9つのLEDがあります。3つは赤、3つは緑、3つは青です。 セクションの境界はマークされており、銅製のパッドが含まれています。 したがって、必要に応じて、テープを切断して安全にはんだ付けすることができます。 LEDストリップ図:
エネルギー消費
テープの各セクションに3つのLEDが直列に接続されているため、5V電源は機能しません。 電源は12Vである必要がありますが、電圧と9Vを供給することができますが、そうするとLEDはそれほど明るく燃えなくなります。
1つのセグメントのLEDラインは、12Vで給電されたときに約20mAを消費します。 それか。 白が点灯している場合(赤100%、緑100%、青100%)、セクションの消費電力は約60mAになります。
これで、テープ全体の消費電流を簡単に計算できます。 したがって、テープの長さは1メートルです。 テープには10個のセクションがあります(各10cm)。 白色のテープ消費量は60mA * 10 = 600mAまたは0.6Aになります。 色間でPWMフェード効果を使用すると、消費電力を半分にすることができます。
テープ接続
テープを接続するには、ワイヤーを4つのパッドにはんだ付けする必要があります。 LEDの色に合わせて+ 12Vと他の色の白い線を使用しました。
テープの端にある保護フィルムを切り取ります。 どちら側から接続が行われるかは問題ではありません。 テープは対称です。
絶縁層を剥がしてパッドを露出させます。
それらに取り組みます。
4本のワイヤーをはんだ付けします。 撚り線(PV3やPVAケーブルなど)を使用することをお勧めします。柔軟性が高くなります。
熱収縮チューブは、水や外部の影響から保護するために使用できます。 LEDストリップを湿気の多い環境で使用する場合は、さらに、接点をシリコンで塗りつぶすことができます。
LEDストリップの操作
このテープは、どのマイクロコントローラーでも簡単に使用できます。 LEDの制御には、パルス幅変調(PWM)を使用することをお勧めします。 テープリードをMKリードに直接接続しないでください。 これは大電流負荷であり、コントローラが焼損する可能性があります。 トランジスタを使用することをお勧めします。
NPNトランジスタまたはさらに優れたNチャネルMOSFETを使用できます。 トランジスタを選択するときは、トランジスタの最大スイッチング電流に余裕を持たせる必要があることを忘れないでください。
LEDストリップをArduinoコントローラーに接続する
LEDストリップを一般的なものに接続する例を考えてみましょう。 接続するには、安価で人気のあるMOSFETを使用できます。 TIP120などの従来のバイポーラトランジスタを使用することもできます。 ただし、MOSFETと比較すると、電圧損失が大きいため、前者を使用することをお勧めします。
次の図は、NチャネルMOSFETを使用する場合のRGBLEDストリップの接続を示しています。 MOSFETのゲートはコントローラーのピン1に接続され、ドレインはピン2に接続され、ソースはピン3に接続されます。
以下に、従来のバイポーラトランジスタ(TIP120など)を使用した場合の接続図を示します。 トランジスタのベースはコントローラのピン1に接続され、コレクタはピン2に接続され、エミッタはピン3に接続されます。 コントローラのベースと出力の間に、100〜220オームの抵抗を持つ抵抗を配置する必要があります。
9〜12ボルトの電源をArduinoコントローラーに接続し、LEDストリップからの+ 12VをコントローラーのVin端子に接続する必要があります。 2つの別々の電源を使用できますが、電源とコントローラーの「アース」を接続することを忘れないでください。
プログラム例
テープを制御するには、コントローラーのPWM出力を使用します。これには、ピン3、5、6、9、10、または11にanalogWrite()関数を使用できます。analogWrite(ピン、0)を使用すると、LEDは使用されません。ライト、analogWrite(ピン、127)を使用すると、LEDはフルパワーで燃焼し、analogWrite(ピン、255)を使用すると、LEDは最大輝度で燃焼します。 以下はArduinoのスケッチ例です。
#define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 //数値が大きいほど、フェードが遅くなりますvoid setup()(pinMode(REDPIN、OUTPUT); pinMode(GREENPIN、OUTPUT); pinMode( BLUEPIN、OUTPUT);)void loop()(int r、g、b; //青から紫にフェードするfor(r = 0; r 0; b-)(analogWrite(BLUEPIN、b); delay(FADESPEED) ;)//(g = 0; g 0; r-)(analogWrite(REDPIN、r); delay(FADESPEED);)//緑から緑がかった青にフェード(b = 0; b 0; g-)(analogWrite(GREENPIN、g); delay(FADESPEED);))
このシンプルなArduinoプロジェクトは、PWM(パルス幅変調)制御用に設計されています。 PWMデューティサイクルを変更することにより、各色のレベルを個別に変更できます。 このように、さまざまな色をパーセンテージで混合することにより、任意の色を作成できます。 ボード上のエンコーダーを回すと、ユーザーは目的のチャンネルを選択してその明るさを変更できます。 スイッチング抵抗が低いトランジスタは、LEDの数が多い場合でも熱放散が非常に低くなります。 たとえば、IRF540トランジスタのRDSパススルー抵抗は非常に低く、約70mΩです。
テープコントローラーの概略図
RGB LEDは、赤、緑、青のLEDチップを1つのパッケージに収めた非常に一般的なタイプのLEDストリップです。 それらは同じハウジング内にありますが、各水晶は独立して制御できます。 この機能のおかげで、RGB LEDを使用して膨大な数の異なる色を取得できます。もちろん、結果の色はスライダーを使用して動的に変更できます。
メインコントローラーはArduinoUnoを使用して作られています。 エンコーダから入力データを読み取り、この情報に従ってトランジスタが切り替えられます。 トランジスタは、内部PWM機能を備えたピン9、10、および11によって駆動されます。 エンコーダ信号AとBの方向は、モジュールに接続されている要素2と3を使用して読み取られます。 エンコーダボタンはチャンネルを選択するために使用され、入力として設定されているピン1に接続されています。
Arduino-シンプルな自動化システム、マイクロプロセッサとRAMが統合された小さなボードを構築するために使用されるコンピュータプラットフォーム。 Arduinoを介してLEDストリップを制御することはそれを使用する1つの方法です。
ATmegaプロセッサはスケッチプログラムを制御し、多数のディスクリート出力、アナログおよびデジタル入力/出力、PWMコントローラを制御します。
Arduinoのしくみ
Arduinoボードの「心臓部」は、センサーと制御要素が接続されているマイクロコントローラーです。 特定のプログラム(「スケッチ」と呼ばれる)を使用すると、SPIプロトコルを介して別のArduinoボードを制御するために使用される場合でも、電気モーター、ストリップ内のLED、およびその他の照明器具を制御できます。 制御は、リモコン、Bluetoothモジュール、またはWi-Fiネットワークを使用して実行されます。
プログラミングには、PC上のオープンソースコードが使用されます。 USBコネクタを使用して制御プログラムをダウンロードできます。
Arduinoによる負荷制御の原理
Arduinoボードには、デジタルとアナログの2種類のポートがあります。 最初の状態には、「0」と「1」(論理0と1)の2つの状態があります。 ある状態でLEDをボードに接続すると、LEDは点灯しますが、他の状態では点灯しません。
アナログ入力は、実際には、約500Hzの周波数の信号を登録するPWMコントローラーです。 このような信号は、設定可能なデューティサイクルでコントローラに供給されます。 アナログ入力により、制御要素をオンまたはオフにするだけでなく、電流(電圧)値を変更することもできます。
ポートを介して直接接続する場合は、終端抵抗を追加して弱いLEDを使用してください。 より強力な負荷はそれを無効にします。 LEDストリップやその他の照明器具の制御を整理するには、電子キー(トランジスタ)を使用します。
Arduinoに接続する
LEDストリップをArduinoに直接接続するのは、弱いLEDダイオードを使用する場合にのみ適切です。 LEDストリップの場合、追加の電気素子をLEDストリップとボードの間に取り付ける必要があります。
リレー経由
デジタル出力を介してリレーをArduinoボードに接続します。 制御された帯域は、オンまたはオフの2つの状態のいずれかになります。 RGBテープを制御する必要がある場合は、3つのリレーが必要になります。
このデバイスによって制御される電流値は、コイルの電力によって制限されます。 電力が低すぎると、エレメントは大きな接点を閉じることができなくなります。 最高の電力を得るには、リレーアセンブリを使用してください。
バイポーラトランジスタ付き
出力の電流または電圧を上げる必要がある場合は、バイポーラトランジスタを接続してください。 それを選択するときは、負荷電流によって導かれます。 制御電流は20mAを超えないため、1〜10kΩの抵抗を追加して、抵抗を流れる電流を制限します。
ノート! 理想的には、エミッタ接地をベースにしたn-p-n型トランジスタを使用する必要があります。 高増幅が必要な場合は、トランジスタアセンブリを使用してください。
電界効果トランジスタ付き
LEDストリップを制御するためのバイポーラトランジスタの代わりに、フィールドを取ります(MOSと略されます)。 それらの違いは、制御原理に関連しています。バイポーラのものは電流を変更し、フィールドのものはゲート電圧を変更します。 このため、小さなゲート電流が大きな負荷(数十アンペア)を駆動します。
必ず回路に電流制限抵抗を追加してください。 干渉に対する感度が高いため、10kΩの抵抗質量がコントローラー出力に接続されます。
拡張ボード付き
リレーやトランジスタを使用したくない場合は、ブロック全体(拡張ボード)を購入できます。 これらには、さまざまな容量と電圧の負荷を制御するために必要なWi-Fi、Bluetooth、イコライザー、ドライバーなどが含まれます。 これらは、モノクロテープに適したシングルチャネル要素、またはマルチチャネル要素(カラーRGBテープを制御するため)のいずれかです。
各種プログラム
Arduinoボード用のプログラムを備えたライブラリは、公式Webサイトからダウンロードするか、インターネット上の他の情報リソースで見つけることができます。 スキルがあれば、自分でスケッチプログラム(ソースコード)を書くこともできます。 電気回路を組み立てるのに、特別な知識は必要ありません。
Arduinoによって制御されるシステムを使用するためのオプション:
- 点灯。 センサーの存在により、プログラムを設定できます。これにより、部屋のライトがすぐに表示されるか、日没と並行してスムーズにオンになります(明るさが増します)。 オンにするには、Wi-Fi、電話、スマートホームシステムへの統合を使用できます。
- 廊下と階段の照明。 Arduinoを使用すると、各パーツ(ステップなど)の照明を個別に整理できます。 ボードにモーションセンサーを追加して、物体の動きが検出された場所に応じてアドレスLEDが順番に点灯するようにします。 動きがない場合、ダイオードは消えます。
- 軽音楽。 フィルタを使用し、オーディオ信号をアナログ入力に適用して、出力でライトミュージック(イコライザー)を整理します。
- コンピューターのアップグレード。 一部のセンサーでは、LEDの色をプロセッサの温度、その負荷、およびRAMの負荷に依存させることができます。 DMX512プロトコルを使用します。
Arduinoチップは、モノクロおよびマルチチャネル(RGB)LEDストリップを使用する可能性を広げます。さまざまな色のマージ、数十万の色合いの形成に加えて、日没時のフェード、動きが検出されたときの定期的なオン/オフなど、独自の効果を作成できます。
こんにちはHabrコミュニティ。
このとき、グローカラーが変更可能なLEDストリップが利用可能になりました。 それらは見栄えが良く、高価ではなく、装飾的な室内照明、広告などにうまく適合させることができます。
このようなテープの場合は、電源、調光器、コントロールパネル付きの調光器を購入できます。 これにより、LEDストリップを照明に使用できるようになります。 ただし、色変更アルゴリズムを書き留めたり、コンピューターから制御したりする場合は、失望が始まります。 COMポートまたはイーサネットを介して制御できる調光器は販売されていません。
猫の下へようこそ。
理論的部分
3つのチャネルすべての輝きをスムーズに変化させるには、独自のダイマーを作成する必要があります。 作成は非常に簡単です。このため、電源キーを取得し、PWM信号を使用してそれらを制御する必要があります。 また、調光器はプログラム可能であるか、外部から制御されている必要があります。
Arduinoは完璧な頭脳です。 色を変更するための任意のアルゴリズムをプログラムに書き込むことができ、Arduinoモジュールを使用して、または適切なモジュールを使用してイーサネット、IR、Bluetoothを介してリモートで制御することもできます。
私の計画を実行するために、私はArduinoLeonardoを選びました。 これは最も安価なArduinoボードの1つであり、多くのPWMピンを備えています。
PWM:3、5、6、9、10、11、および13。analogWrite()関数で8ビットPWM出力を提供します。
したがって、PWMソースがあります。電源キーを考え出す必要があります。 インターネットショップを閲覧すると、RGBストリップを制御するArduinoモジュールがないことがわかります。 または、パワートランジスタを備えたユニバーサルモジュールだけです。 また、自分で電源キーを使ってボードを作るアマチュア無線のサイトもたくさんあります。
ただし、もっと簡単な方法があります。 モーターを制御するためのArduinoモジュールによって救助されます。 このモジュールには、必要なものがすべて揃っています。強力な12Vスイッチがインストールされています。
このようなモジュールの例は、「ArduinoスマートカーFZ0407用のL298NモジュールデュアルHブリッジステッピングモータードライバーボードモジュール」です。 このようなモジュールは、2つのブリッジで構成されるL298Nチップに基づいています。 ただし、ブリッジングはモーターには役立ち(これにより回転方向が変わる可能性があります)、RGBストリップの場合は役に立ちません。
図に示すようにテープを接続することにより、このマイクロサーキットのすべての機能を使用するのではなく、下の3つのキーのみを使用します。
実用部
実装には、Arduino Leonardo、L298Nモーター制御モジュール、12Vソース(テープに電力を供給するため)、RGBテープ自体、および接続ワイヤーが必要です。
接続を簡単にするために、Fundruino IO Expansionも使用しましたが、機能的な負荷はありません。
接続図を図に示します。
システムの電源についても詳しく説明したいと思います。 この回路では、モーター制御モジュールに電力が供給され、5Vの降圧電源があり、これらの5VをArduino電源のVin入力に印加します。 この接続を切断すると(もちろん、アースを接続したまま)、さまざまな電源からArduinoと電源キーに電力を供給することができます。 これは、多くのものがArduinoに接続されていて、モーター制御モジュールのソースが対応していない(過熱のためにオフになる)場合に役立ちます。
RGBテープは、PWM信号を形成するように出力を設定するanalogWriteコマンドを使用して制御されます。
arduinoのプログラムソースコード:
#define GRBLED_PIN_R 9 //チャネルRのピン#defineGRBLED_PIN_G 10 //チャネルGのピン#defineGRBLED_PIN_B 11 //チャネルBのピンintrgbled_r = 0、rgbled_g = 0、rgbled_b = 0; void setup()(//シリアルデータを有効にするda print Serial.begin(9600); Serial.println( "RBG LED v 0.1"); // RGBLED pinMode(GRBLED_PIN_R、OUTPUT); pinMode(GRBLED_PIN_G、OUTPUT); pinMode(GRBLED_PIN_B 、OUTPUT);)void loop()(//色を変更rgbled_r =(rgbled_r + 1)%1024; rgbled_g =(rgbled_g + 2)%1024; rgbled_b =(rgbled_b + 3)%1024; //出力Z1_output_rgbled() ; delay(1);)void Z1_output_rgbled()(analogWrite(GRBLED_PIN_R、rgbled_r); analogWrite(GRBLED_PIN_G、rgbled_g); analogWrite(GRBLED_PIN_B、rgbled_b);)
ビデオであなたはそれがどのように機能するかを見ることができます:
経済的な部分
L298NモジュールArduinoスマートカー用デュアルHブリッジステッピングモータードライバーボードモジュールFZ0407 | $ 5.31 | 1 |
ArduinoCompatiblae用のLeonardoR3開発ボード+ USBケーブルワイヤーFZ0437 | $ 10.00 | 1 |
5050LEDストリップRGBおよび単色5MDC12V / 24V 60leds / m防水フレキシブルカーオートストリップライトセービングライト | $ 12.38 | 1 |
小売AC85〜265VからDC 12V / 6A電源アダプタートランススイッチングLEDライト用 | $ 9.98 | 1 |
合計$ 37.65 = RUB 1,300