風呂に入っている時に
ひょっとして dealy 関数に何か消費電流低減とかの技があったりするのか?
と思って風呂上がってさっそく実験してみました。
プログラムはこれ
loop(
while(true){
delay( 10000 );
}
}
ESP32
delay 無し 79.7mA
delay( 1 ); 49.7mA
delay( 10 ); 48.6mA
delay( 100 ); 48.6mA
delay( 1000 ); 48.5mA
delay( 10000 ); 48.5mA
うーーん、確かに効果はある。10以上にしても変わらないけどね。
delay関数の中でsleepとかしてるんだろうか?
ならば、UNOならどうなんだろう?
Arduino UNO
delay 無し 51.0mA
delay( 1 ); 61.0mA
delay( 10 ); 61.2mA
delay( 100 ); 61.2mA
delay( 1000 ); 61.2mA
delay( 10000 ); 61.2mA
あれれ?UNOだとdelayの方が消費電流多いね。
ここまでやって気が付いた。
無限ループで動作止めてる時の消費電流気にしてどうすんだ!
結論
ESP32のdelay関数は消費電流が小さくなる。
だけど無限ループに入れるdelayはやっぱり意味がない。
おまけ
デバッグで動作を止める時私は
while(1);
と1行で済ませてます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます