電子工作始めますか? まずはLチカ その先へ【Raspberry Pi GPIO】

タイトル
Raspberry PiのGPIOを動かしてみます。まずはLチカです。
Lチカってソフトの使い方がわかるだけでハードの事は何もわからないですよね。でも最初の一歩なので避けずにやっておきます。

ロボットを動かしたい。ドローンを作りたい。
ハードウエア 電子工作を始めたいと思った方も多いでしょう。そしてLチカをやってみるわけですが、これってソフトウエアの使い方がわかるだけでハードウエアについてはまったくわからないまま。それからどうしたらよいかわからないでしょう。
ラズパイならGPIO端子に挿す拡張基板 HAT (Hardware Attached on Top)がたくさんあります。それで遊んでも良いのですが、結局ハードのことは良くわからないまま。
電子回路の設計方法について順番に解説していく予定です。

まずはLチカ。Lチカをしないと話が進まない。
LEDをGPIO端子に付けて点滅させます。ソフトは他のサイト様におまかせで。

回路はこれ
回路1
PINはGPIO端子を表します。3.3Vから抵抗とLEDを通ってGPIO18へつなぎます。

この回路のポイントはLEDに流れる電流を決めること。大切なのはLEDのVF 順方向電圧です。LEDは電流が流れるとその両端の端子の電圧は一定の電圧になります。それがVF。LEDのデータシートや通販の説明欄に書いてあります。
電源電圧は3.3Vです。これをVddとします。LEDに流したい電流をIdとします。
抵抗値Rを調整してIdを所望の電流値にします。
LEDは通常数十mAの電流で光ります。正確にはデータシートを見ます。
GPIOピンは16mAまでしか流せません。それ以上電流を流すと焼けて壊れます。
数ミリアンペアでも光るので実験なら十分です。
私の手元にあったLEDのVFは2.7Vでした。VFはLEDによって異なります。

オームの法則から
Id = (Vdd - VF ) / Id = ( 3.3V - 2.7V  ) / R
という関係になります。

抵抗には細かい抵抗値の指定ができません。飛び飛びの値しか売っていません。
手に入る抵抗値で Id を求めます。
今回私の手元にあった抵抗は200Ωです。すると
Id = ( 3.3V - 2.7V  ) / R = 0.6V / 200Ω = 3mA
となります。
これならGPIO端子は壊れません。
もしも330Ωなら
Id = 0.6V / 330Ω = 1.8mA
になります。

この記事で3mAって書いてあるから絶対に3mAになる抵抗を選ぶんだ! なんて必要はありません。
LEDが光ってGPIOポートを焼ききらない電流ならば抵抗値は何でも良いのです。抵抗値を一つに決める理由はありません。
もしもLEDをこの明るさで絶対に光らせたいから電流は5mAだ!という目的があるなら5mAになるよう抵抗値を調整します。

こんな感じで電子工作の設計の数値はかなりガバガバです。目的を達成できて手に入る部品あるいはより安い部品で作る というのがポイントです。
逆に設計で数値が一意に決まることはなく設計者の目的・思想がまぎれているのでわかりずらかったりします。

ご自分でLチカを試すときも、手元の部品のVFとRから電流を計算して実際の回路の電流と合っている確かめる事をおすすめします。
そうそう、抵抗値とかは平気で表示より1割位ずれています。ガバガバです。一桁ずれなければOKといういい加減な面もあるんです。このマージンの大きさがどこにでもたくさん安く使えるというメリットを生んでいます。
ですからLチカならGPIOのリミット16mAギリギリの電流値を狙う設計はしません。だいたい半分の8mAをリミットに計算します。
抵抗とLEDしかない回路ですが、抵抗値を決めるには電子回路特有の考え方を知らないと設計ができません。

GPIOは複数のポートがあります。使うポートすべての合計で50mAが上限です。電流が流れると必ず熱が生じます。ラズパイのICが熱で壊れないための上限です。
また、ラズパイのGPIOの電流駆動能力はソフトウエアで変えられます。最大16mAで2mA + 4mA + 8mA + 2mAを組み合わせできます。予期せず大きな電流を流さないようソフト面でも気を使い設計をします。

ビデオ




コメント

最近のコメント

Threaded Recent Comments will be here.