RGBランプ

画像



3月8日の少女への贈り物を振り返って、私は実装が決定されたLED RGBランプのプロジェクトを思い出しました。 さらに、これに必要なものはすべて手元にありました。 しかし、現在をより面白くするために、光学IRセンサーを使用して制御を追加しました。これにより、ランプの取り扱いがオリジナルになり、ボタンでデザインが損なわれることもありませんでした。











RGB LEDは、基本的に1つのハウジング内の異なる色の3つのLEDです。 私の場合、ダイオードの指定は反対ですが、共通アノードと3つのカソード(各ダイオードに1つ)を持つLEDです。



LEDのグローの色を変えるには、PWM(パルス幅変調)を使用して各ダイオードをオンにする必要があります。そうしないと、LEDが最大まで点灯し、最終的に白色になります。



PWMは、固定周波数と可変デューティサイクルのパルス信号です。 デューティサイクルを使用して、PWM出力の平均電圧を変更できます。その結果、特定のLEDの輝度が変化します。 この場合、PWM周波数は1 kHzです。 可変デューティサイクルのPWM信号を生成するには、マイクロコントローラーが必要です。



画像



光学センサー-IR LEDとIRレシーバーで構成されています。 LEDとレシーバーは上に向けられます。センサーの上に手をかざすと、光が手で反射され、レシーバーで受信されます。 RGB LEDには強力なスプリアスIR放射があるため、センサーを誤ったアラームから保護する必要があります。 この問題を解決するには、TSOP1738レシーバーを使用します。 38 kHzの搬送周波数で変調された信号でのみトリガーを提供しますが、変調パルスが1秒以上連続して継続すると、受信機はそれらを干渉として認識し、それらに応答しません。 受信機が信号をカットしないようにするために、20msの間100msごとに受信機を中断しなければならないことが実験的に発見されました。



このような信号はLEDに送られます。

画像



マイクロコントローラ(mk)は、電子デバイスを制御するために設計されたマイクロチップです。 コントロールを実装するには、プログラムを作成し、プログラマーを使用してミクロン単位でフラッシュする必要があります。 デバイスの最終バージョンではATMEGA8を使用し、最初の実験ではATMEGA32を使用しました。これには、すべてをすばやく組み立てることができるデバッグボードがあったからです。



画像



ATMEGA8では、3つのタイマー/カウンターが提供されます。その本質は、選択した周波数でクロックをカウントできることです。これは、クロック周波数mkに依存します。 特定の値に達すると、割り込みが発生し、そのコードで割り込みコードが実行されます。



タイマー/カウンター0

この8ビットタイマーは、最大255クロックサイクルを読み取ることができ、その後リセットされることを意味します。 このタイマーにはハードウェアPWMジェネレーターがありません。その助けにより、IR LEDの変調はプログラムで編成されます。



タイマー/カウンター1

タイマー/カウンター1-16ビット、最大65 535クロックサイクルをカウントします。 彼には2つのハードウェアPWMジェネレーターがあり、3つのダイオードのうち2つを制御するために使用されます。



タイマー/カウンター2

また、8ビットであり、3番目のダイオードmを制御するPWMジェネレーターを1つ備えています。



プログラマーとしてUSBAsp USBプログラマーを使用しました

それを組み立てるには、1ミクロンをフラッシュする必要があるため、 LPTまたはCOMポートを実際に必要とするよりシンプルなオプションがあります。





CodeVisionAVRとImageCraft7を使用して、プログラムをCで作成しました。 まず、タイマー1と2を1 kHzの周波数でPWMモードに設定する必要があります。 次に、割り込みコードを処理するのに十分な周波数で、タイマー0によって割り込みを設定します。私の場合、割り込み呼び出しの周波数は148 kHzでした。 また、外部ソースからの割り込みを確立する必要があり、受信機の信号に応答する必要があります。



受信機からの中断時に、LEDは動作を示すために100ミリ秒間白く点滅し、モード変数に1を追加します。メインサイクルでは、変数に応じて特定のモードがオンになります。 モードの変更は、各反復で遅延を伴うデューティサイクルを変更することにより、サイクルで実装されます。



組立



まず、コンセプト。

画像



電源は電源から供給され、出力電圧は5ボルト、電流1Aです。



Sprint Layout 5でボードを作成しました

画像



ボードはメインボードと光学センサーボードに分かれています。 これは、センサーを便利に配置できるようにするためです。メインボードの青い線はジャンパー、他の青と黒の線はワイヤーです。



レーザー鉄製

いくつかの紙のおかげで、ボードから離れやすくなっているので、蒸気発生器にアイロンを使用する方が良いことに注意してください。



エンドデバイスのセンターボードは使用されませんでした。

画像



事前組み立て。

画像



ランプ

画像



アッシー





ガラス自体は内側がほぼ鏡面になっているため、レシーバーとIR LEDをサンドペーパーとホイルで隔離する必要がありましたが、とにかくそれを隔離する必要があり、そうでなければ照明があります。 ラジエーターはインストールする必要があり、ダイオードは非常に熱く、ラジエーターなしでは過熱します。さらに、私のファームウェアでは、ダイオードは最大電力の70%で動作します。 白色光モードでは、温度は1時間で53度まで上昇し、それ以上は上昇しませんでした。



最終結果





計画を実施するには、次のものが必要でした。



  • RGB LED、私は3ワットの電力を取りました。
  • マイクロコントローラーATMEGA 8-他のユーザーは、ファームウェアを変更する必要があります。
  • ATMEGA 8用ソケット
  • IRレシーバー-例:TSOP1736
  • IR LED、例:FYL 3014ir
  • 3つのトランジスタBC337
  • 0.1 uFコンデンサ
  • 抵抗器:
  • 10オーム-2個
  • 3オーム-1個
  • 1コム-1ピース
  • 10Kom-1個
  • 330オーム-1個
  • 4.7Kom-3個
  • AVRプログラマー
  • スイッチング電源-出力電圧5ボルト、電流1A。
  • 実際にはランプ自体
  • ワイヤー、テキソライト、ラジエーター、サーマルグリースなど




いくつかの定義はウィキペディアから取られました。



ソース、ファームウェア、および配線ファイル。



Upd :このポスト用にランプを組み立てる場合は、ソースを見ることを忘れないでください。ヒューズfuは8 MHzで縫い付けられています。 μは内部共振器からクロックされ、その誤差は非常に高く、10%になる可能性があるため、TCNT0 = 0xCAの行でIR LEDの変調を調整する必要があります。 その周波数が受信機の周波数と一致するように。 Sprint Layout 5.0の配線ファイルをアーカイブします。



All Articles