🚨

LEDが暗く感じるときの調べ方

2022/12/31に公開

なんか暗い

いつもこんなんだっけ? ちょっと暗いような気もする。

コードを確認する

void setup() {
}

void loop() {
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
}

ピンには INPUT と OUTPUT のモードがあり、どちらかが初期値になっている。digitalWrite でピンを HIGH にしたことで LED が点灯したので、モード初期値は OUTPUT だったとわかる。

とくに問題はなさそうなので、回路の方を測定してみる。

測定方法

テスターの棒を両端に当てればいいと考えていたのは完全に誤りだった。正しくは対象によって当て方も電源の必要性も異なる。

対象 棒の当て方 電源
電圧 並列 必要
抵抗 両端 切る 電源入りだと短絡して LED が死ぬ
電流 直列 必要 つまり回路の一部とする

測定結果

対象 想定 実際
電流 13.64mA 0.098mA
LED にかかる電圧 ? 1.69V
抵抗にかかる電圧 ? 0.02V
全体の電圧 ? 1.71V
抵抗値 220Ω 217Ω
  • 電流の想定値 = (電源5V - LED 2V) / 220Ω = 13.64mA
  • 本当に全体の電圧は各要素の和になってた 1.69 + 0.02 = 1.71
  • 抵抗は間違えてなかった
  • 抵抗値はわりと誤差がある

LED に来ている電流が少ないのが気になる。これは LED の足が逆なのか?

LED の足を逆にした結果

光らなくなっただけだった。

結局直感で直す

上の手順も踏まえると直感というよりは消去法でもあるのだけどこれで直った。

void setup() {
  pinMode(2, OUTPUT);  // ← 追加
  pinMode(3, OUTPUT);  // ← 追加
}

void loop() {
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
}


本来の明るさ

試しに使うピンを明示的に OUTPUT に設定してみると眩しいほどの通常の明るさになった。どうやら初期値は INPUT だったようだ。

でも LED が点灯していたのはなぜか? これは INPUT だと LED は点灯しないという勝手な思い込みだった。INPUT でも少量の電流は流れている。LED は少量の電流でも結構光るのである。

モード別の計測値を知っておきたい

対象 想定 INPUT OUTPUT
電流 13.64mA 0.098mA 12.4mA
LED にかかる電圧 ? 1.69V 1.9V
抵抗にかかる電圧 ? 0.02V 2.7V
全体の電圧 ? 1.71V 4.6V
  • OUTPUT 時の電流は想定値に近い
  • 全体の電圧は OUTPUT でもやっぱり各要素の和になっている

Discussion