nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

f分の1揺らぎLED点灯試作(取り組み考え)

ろうそくなどの明かりの雰囲気を出すLED照明を

試作します。LEDはフルカラーLEDを使用しカラー
スペクトラムをろうそくに近い色相の発色を目指
します。また、PICを使用しf分の1ゆらぎによ
る明暗周期制御を試してみます。

マイコンはPIC12F1822を用います。

PIC121822は8ピンでIOは6本ですが、出力は5本
しか取れません。またデバッグ支援、初期値など
の実験設定用にi2cで液晶付きキーボードをつけ
ようと思っています。そのためにPCL/PDAに2本を
使い、PICお約束でMSSP信号を割り付けます。し
たがって残る3本をフルカラーLED駆動に割り付け
ることにします。

RA0:赤
RA1:SCL (PICお約束のMSSP端子)
RA2:SDA (PICお約束のMSSP端子)
RA3:青
RA4:緑

f分の1ゆらぎは間欠カオス関数計算を利用します。

float x=0.4,y; // xは初期値0.4として開始
unsigned int a; // 

if(x<0.5) y=x+2*x*x; // 0.5以上の時
else y=x-2*(1-x)*(1-x); // 0.5以上では
a=80+300*y; // 80をオフセットにする
x=y;

PICのシステムサイクルをベースにしたパルス値制御
でLEDの明暗を制御します。

CPUクロックは16MHzとするとシステムクロックは4MHz
になり、TMR0で割り込み、80クロック20μSを点灯基
本サイクル割り込みで動作します。50kHzとなります。

輝度を点灯パルス数で実現するため256段階点灯としま
す。すなわち、256パルス(約5mS)0:消灯から256:全
点灯までを制御する。

すなわち5mSをベースにした関数を輝度パルス数で呼び、
周期のカオス制御をかけます。オフセットが80で最大値
380までが半周期で輝度数値をUP/DOWN変化させます。輝
度は設定初期最小値からスタートで保持し、1加算ある
いは1減算します。従って最低周期が160×5mS=0.8秒と
なります。このあたりは実験で詰めることにします。

輝度値変化ですが、最低輝度を初期値で持ちます。最
低と最大輝度(全点灯)の間を三角波(本当は正弦波に
したかったが)でカオス計算周期に従い行き来します。

そしてカオス計算初期値と最低輝度をi2cキー付きLCD
設定しようと言うもくろみです。i2cキーLCDは以前に作
成したPIC16F1827制御CSMキーです。


以上のような計画でまずは先輩ブログ、HPなどを参考に
情報を探し実装してみます。

こちらさんなども参考になりそうです。
http://www.asahi-net.or.jp/~SE1M-NITU/html/LED_lantern.htm



過去書き込みWEB