LEDをデジタルピンからフェードさせるハードウェアベースのソリューションを見つけたいのですが。つまり、オン/オフを切り替える代わりに、完全な明るさにゆっくりとフェードイン(500ms)します。小さなコンデンサが放電するのに0.5秒かかるとは想像できません...理想的には、すてきなDIP16パッケージに入れて、フェージングLEDの配列を取得できます。私の夢のコンポーネントは存在しますか?
LEDをデジタルピンからフェードさせるハードウェアベースのソリューションを見つけたいのですが。つまり、オン/オフを切り替える代わりに、完全な明るさにゆっくりとフェードイン(500ms)します。小さなコンデンサが放電するのに0.5秒かかるとは想像できません...理想的には、すてきなDIP16パッケージに入れて、フェージングLEDの配列を取得できます。私の夢のコンポーネントは存在しますか?
回答:
これを行う通常の方法は、PWM(パルス幅変調)を使用することです
ほぼすべての最近のマイクロコントローラーには、この目的のために設定できるPWM周辺機器があります。マイクロコントローラを使いたくない場合は、専用のPWM ICまたはユビキタス555のようなタイマーICを使用できます。
プロセスはシンプルで、パルス周波数は十分に速く設定されているため、人間の目はちらつきを検出できません(通常、25Hz以上- 持続性のビジョンを参照)。オンとオフの時間は、100%オン(最大輝度)から50%オンまで変化50%オフ(半輝度)から0%オン(オフ)
これはアレイに簡単に使用できることに注意してください。すべてのLEDドライバートランジスタにPWMを供給するだけです(ベース電流がバイポーラに適切であることを確認するか、MOSFETを使用します) 。デザインの選択は、駆動しているLEDのタイプ、高電流/低電流によって異なります)
ネットで「555 LEDフェード」を確認すると、十分な結果が得られるはずです。ここからランダムに選んだものです(私はチェックしていないので、正しく動作することを確認できません):
または、タイミングの絶対精度がそれほど重要でない場合は、RCフィルターとトランジスタスイッチを使用するという簡単なオプションがあります。このように、キャップはLED電流を供給する必要がなく、ベース電流のみを供給します。このようなもの:
シミュレーション:
汎用のNPNで実行する必要があり、RとCの値を調整して調整できます。
このオプションは、オペアンプを追加することで、現在のミラーアレイに簡単に拡張できます。この回路は、トランジスタがすべて同じタイプである限り使用できます(使用する電源は+ 5Vです)。
シミュレーション:
十分に高い供給電圧がある場合、LEDは次のように直列になります(ここで使用される供給は+ 10Vです)。
シミュレーション:
あるいは、電源電圧が低くてもLEDを直列に駆動したい場合は、CAT4238などの安価なブーストICがたくさんあります。この部品は、PWMまたは可変DC電圧を使用してLEDを調光できます(詳細はデータシートにあります)
デジタルピンによって、あるタイプのプロセッサからの出力を使用している場合、ファームウェアの明るさを変更することが可能です。ピンのデューティサイクルを変更すると、目はフィルタのように機能し、オン時間が短くなると明るさが薄暗くなります。
1-デジタルGPIOピンの代わりにPWMピン出力を使用します。いくつかのレジスタを変更することにより、LEDのオン時間を変更し、明るさを変更できます。
2-タイマー(ポーリングまたは割り込み)を使用して、ピンの状態を変更します。
3-外部シフトレジスタICを使用して、n個のLEDのオン/オフ時間をラッチします。これにはより多くのプログラミング作業が必要ですが、拡張可能であり、(1)および(2)よりも少ないGPIOピンを使用します。