[ 16KHz動作って省エネ! ]以前128KHzで動作させたところ、省エネになりました。コンフィグの所には1/8のコマンドがあります、これって「もしかして16KHz動作もあるのかー」と思い試して見ました。
(この実験では[コンフィグ・リセッターが無いとリサイクル出来ないICになるかも!]で実験をされる方は要注意!)128KHzより1/8で16KHzです、これでLEDのチカチカぐらいは十分動きそうです。LEDがOFFの時はエネルギーが激減します。でどのぐらい電気を食うのか!気になってとりあえずプログラムを作って見ました。
普通は「コンパレーターの電源がON状態」です。これって100uAぐらい使っていた感じがしましたのでこれもついでに試して見ました。[ ACD_bit=1; // OFF]
[ 実験 ]電源 [0=ON] [1=OFF] 差 5V 504uA 361uA 143uA 4V 310uA 210uA 100uA 3.3V 225uA 104uA 121uA 2.4V 136uA 25uA 111uA 2.0V 112uA 13uA 99uA 1.8V 102uA 11uA 91uA*2.4Vば充電電池用の電圧です。
*1.8Vはメーカーのカタログ関連電圧です。
*Softは1秒のLED点滅様です。(電流ですが、スムースに変化してないのはプログラムが動いている、それをおよそで決めて測定している為です。)実験の結果
[ これによると ]
16KHzと電池電圧(2.4V)ぐらいだとすごく「省エネ」です。それどころかわざわざ1.8Vぐらいに落としても面白そうです(但し動けばの話ですが…)。
昔は5V以外は考えもしなかったなー!
これって結構面白いかも。 /* 16KHz LED ON-OFF BY M.K 2014/05/23 Used ROM 138 byte Config 1F 63 */ char TC_Cunt; sbit LED_LP at PORTB4_bit; // LED void Timer_Overflow() iv IVT_ADDR_TIM0_OVF { // 100mSec*10=1Sec TCNT0 = 231; // again TC_Cunt++; if (TC_Cunt==10) TC_Cunt=0; } void main() { DDRB =0b00010000; PORTB =0b00100111; // PULL UP // ACSR.ACD=1; // Analog Comparator Disable TCNT0 = 256-25; // 62.5*64*25 100mSec TOIE0_bit = 1; // Timer0 Overflow Interrupt Enable SREG_I_bit= 1; TCCR0B =3; // 1/64 Timer0 start // while (1) if (TC_Cunt==1) // 1 = LED ON LED_LP=1; else LED_LP=0; }
製作 2014/5/26
[MAIN MENU へ戻る]