PICのPWMでDimmerはどうなの!?
2015-11-15
昨日は、以前から頼まれていた用事を済ませに長男宅に行きました。孫娘は随分大きくなったものの未だ流暢な宇宙人語を操るため、言葉によるコミュニケーションはできなかったんですが、我が血族ながら可愛らしい笑顔(注:完全なる爺馬鹿)に浮き世の疲れが吹っ飛びました
ところが、帰りの電車が信号機故障で全く動かず、結局遠回りをして遅くに帰宅・・・土曜はこれでお終いとなりました。
今朝はちょっと寝坊をしましたが、先週に引き続いて「PICのソフト味見シリーズ」を敢行。タイトルの通りPICのPWMを使って、LEDの調光の様子を見てみました。
PICのPWM機能には、ON-OFFの単純な繰り返しを行うものの他に様々なモードがありますが、LEDの調光には前者の機能で十分。ただ、調光しようとするLEDに大きな消費電流のものを使う場合を想定して2ポートを同時にON-OFFすべく、PWM拡張モードの中の「Singleモード」を使い、出力設定で2ポート同時にON-OFFする動作についても確認しました。設定を1ポートにすれば、消費電流の小さなものは賄えるでしょう・・・という魂胆です。
PIC16F1823用のプログラムとしてXC8を使う限りは、これで周期約100Hz、Duty比約50%のパルスが、RC5,4のポートに現れるはずです。最終行の命令でパルス出力が始まります。
PICのポートには、LCDのバックライト用LEDを直結してみました。プログラム同様、実験風景もかなりシンプルです。

かなり明るい感じでしょ
Duty比約50%のパルスでここまで明るくなります。出力ポートも1つしか使用していません。

抵抗を入れていませんので、バックライト用LEDのVf付近まで電圧降下していますが、9.5mA程度の電流が流れていました。2ポートでは16mA程・・・かなり明るくなりましたが、このバックライトにはちょっとここまでは必要ないかなぁといった塩梅。逆に1ポートでDuty比を25%程にしてみる(CCPR1L = xxx の数値を半分にする)と、4.7mAくらいの消費電力で明るさもほどほどに・・・。
こんな感じで、必要な明るさに調光できることが解りました。「Duty比」を弄るだけでいとも簡単に調光できますから、QRPリグの各種表示の明暗について、必要に応じた調整ができそうです。当たり前の実験ですが、実用に即した「お試し」が完了・・・この日曜日も有意義に過ごすことができたようです

ところが、帰りの電車が信号機故障で全く動かず、結局遠回りをして遅くに帰宅・・・土曜はこれでお終いとなりました。
今朝はちょっと寝坊をしましたが、先週に引き続いて「PICのソフト味見シリーズ」を敢行。タイトルの通りPICのPWMを使って、LEDの調光の様子を見てみました。
PICのPWM機能には、ON-OFFの単純な繰り返しを行うものの他に様々なモードがありますが、LEDの調光には前者の機能で十分。ただ、調光しようとするLEDに大きな消費電流のものを使う場合を想定して2ポートを同時にON-OFFすべく、PWM拡張モードの中の「Singleモード」を使い、出力設定で2ポート同時にON-OFFする動作についても確認しました。設定を1ポートにすれば、消費電流の小さなものは賄えるでしょう・・・という魂胆です。
void init_pwm(void) { TRISC |= 0b00110000; // Buffer OFF // Fosc = 4MHz PR2 = 155; T2CONbits.T2CKPS = 0b11; // Prescale x64 CCP1CON = 0b00001100; // Single, Lower=00 // Mode=1100 CCPR1L = 0x4e; // Duty 9c(156):100% PSTR1CON = 0b00000011; // Set PWM Out bit TMR2IF = OFF; T2CONbits.TMR2ON = ON; while (TMR2IF == OFF); TRISC &= ~0b00110000; // Buffer ON } |
PIC16F1823用のプログラムとしてXC8を使う限りは、これで周期約100Hz、Duty比約50%のパルスが、RC5,4のポートに現れるはずです。最終行の命令でパルス出力が始まります。
PICのポートには、LCDのバックライト用LEDを直結してみました。プログラム同様、実験風景もかなりシンプルです。

かなり明るい感じでしょ


抵抗を入れていませんので、バックライト用LEDのVf付近まで電圧降下していますが、9.5mA程度の電流が流れていました。2ポートでは16mA程・・・かなり明るくなりましたが、このバックライトにはちょっとここまでは必要ないかなぁといった塩梅。逆に1ポートでDuty比を25%程にしてみる(CCPR1L = xxx の数値を半分にする)と、4.7mAくらいの消費電力で明るさもほどほどに・・・。
こんな感じで、必要な明るさに調光できることが解りました。「Duty比」を弄るだけでいとも簡単に調光できますから、QRPリグの各種表示の明暗について、必要に応じた調整ができそうです。当たり前の実験ですが、実用に即した「お試し」が完了・・・この日曜日も有意義に過ごすことができたようです

- 関連記事
-
- 古いプリスケーラの覚書
- 汎用ロジックのシュミットトリガの閾値
- PICのPWMでDimmerはどうなの!?
- インダクタのお勉強
- DDSに後置するバッファ考