1電気の基本:電圧・電流・抵抗
この章のゴール:オームの法則で、回路のどこに何V・何mAがかかるかを計算できる。
3つの量
電圧(V、ボルト)は「押す力」です。いつも2点の差として測ります。「このピンは3.3V」と言うときは、GNDを0Vとしたときの差のことです。電流(A、アンペア)は実際に流れる量、抵抗(Ω、オーム)は流れにくさです。
3つは V = I × R でつながっています。2つわかれば残り1つが出せます。
単位の接頭辞がいちばんの落とし穴
| 記号 | 意味 | 例 |
|---|---|---|
| k | × 1,000 | 10kΩ = 10,000Ω |
| m | ÷ 1,000 | 0.33mA = 0.00033A |
| µ | ÷ 1,000,000 | 0.1µF = 0.0000001F |
計算する前に、全部をV・A・Ωに直す。これだけで桁ずれはほぼ防げます。
mA × kΩ = V。mの「÷1000」とkの「×1000」が打ち消し合うので、数字だけ掛ければ電圧が出ます。0.1mA × 10kΩ = 1V。逆に V ÷ kΩ = mA も使えます。5Vを1kΩの抵抗にかけると、何mA流れますか?
4.7kΩの抵抗に2mA流れています。抵抗の両端の電圧は何Vですか?
0.33mAをA(アンペア)で表すと?
2デジタル入力:ボタンとプルアップ
この章のゴール:ボタンをマイコンに正しくつなぐ回路を描ける。
入力ピンは電圧を見ている
XIAOの入力ピンは、電圧が3.3Vに近ければH(1)、0Vに近ければL(0)と読みます。電流ではなく電圧を見ている、というのが大事な点です。
フローティング
ボタンの片側をピン、もう片側をGNDにつなぐだけだと、離したときピンがどこにもつながっていない状態になります。電圧が決まらず、ノイズや指の接近でHとLがランダムに変わります。これをフローティングと呼びます。
プルアップ抵抗
ピンと3.3Vの間に10kΩを入れると、離しているときは抵抗を通して3.3Vに引き上げられ、Hに決まります。押すとGNDに直結されてLになります。押すとLになる形が、一番よく使われます。
回路図ピース:ボタン
ボタンは2個使うので、このピースを D8 と D9 に1つずつ描きます。
上の回路で、ボタンを離しているとき D8 は何と読まれますか?
ボタンを押しているとき、R1に流れる電流は何mAですか?
R1をなくして3.3Vを直接ボタンにつなぐと、押した瞬間どうなりますか?
3アナログ入力:フォトトランジスタで明るさを測る
この章のゴール:光の強さを電圧に変えてADCで読む回路を描き、抵抗値を選べる。
電流を電圧に変える
フォトトランジスタは、光が当たるほど電流をたくさん流す部品です。光で開き具合が変わる蛇口だと考えてください。マイコンが読めるのは電圧なので、下に抵抗を置いて、流れた電流を V = I × R で電圧に変えます。抵抗の下端はGNDなので、その電圧がそのままADCピンの電圧になります。
回路図ピース:明るさセンサー
明るい部屋でQ1に0.1mA流れています。R2は10kΩです。A0の電圧は何Vですか?
直射日光でQ1が1mA流そうとしました。計算上は1mA × 10kΩ = 10V。実際のA0はどうなりますか?
抵抗値の選び方
抵抗が大きいほど、少しの光でも電圧が大きく変わる(感度が高い)代わりに、明るい所ですぐ頭打ちになります。小さいとその逆です。実際に置く場所で、一番明るいときの電流を測り、そのとき3V弱になる抵抗を選ぶのが基本です。仮の値として10kΩで描いておき、来週の製作時にテスターで測ってから決めても大丈夫です。
RP2040のADCは12ビットで、0〜3.3Vを0〜4095の数値にします。A0が1Vのとき、読める値はおよそいくつですか?(整数で)
4出力:状態表示LED
この章のゴール:LEDの電流制限抵抗を計算して選べる。来週のテストで「動いている」ことを目で確かめる用のLEDです。
LEDは抵抗なしでつないではいけない
LEDは、一定の電圧(順方向電圧 Vf、赤で約2V。必ずデータシートで確認)を超えると急に電流を流し始めます。抵抗なしだと電流が制限されず、LEDかマイコンのピンを傷めます。直列に抵抗を入れて電流を決めます。
回路図ピース:状態LED
三角の向きが電流の向きです。三角の底(アノード)が+側、横棒(カソード)がGND側。基板では向きを間違えやすいので、シルクにも印を入れます。
Vf = 2.0V、R3 = 1kΩのとき、LEDに流れる電流は何mAですか?
棚にある100Ωを使うと、何mAになりますか?
状態表示LEDの抵抗として一番いいのはどれですか?
5XIAO RP2040 のまわり:電源・GND・パスコン
この章のゴール:マイコンを動かすための電源まわりの約束を守って描ける。
XIAOの電源ピン
XIAOには 5V、3V3、GND のピンがあります。5Vを入れると、XIAO内部のレギュレータが3.3Vを作って 3V3 ピンに出します。2章・3章のプルアップ抵抗やフォトトランジスタは、この 3V3 から取ります。
GNDは全部つなぐ
電圧は2点の差でした。XIAO、Pi、74AHCT245、マトリクスがそれぞれ違うGNDを基準にしていたら、「3.3V」の意味がそろいません。基板上のGNDはすべて一つにつなぎます。
パスコン(バイパスコンデンサ)
ICは動作の瞬間に電流を急に欲しがります。電源から遠いと配線を通って届くまでに電圧が一瞬下がり、誤動作の原因になります。各ICの電源ピンのすぐ横に0.1µFを置いて、小さな貯金箱の役目をさせます。XIAOはモジュール内にパスコンが載っているので、自分で足すのは74AHCT245の2個ぶんです。
XIAOの5Vにダイオードを入れる
XIAOの5VピンはUSBの5Vとつながっています。プログラムを書き込むためにUSBを挿したまま基板にも5Vが来ていると、パソコンのUSBから基板側(Piを含む)へ電流が流れ込むおそれがあります。基板の5VからXIAOの5Vへ向けてショットキーダイオードを1個入れると、逆向きの流れを止められます。XIAOの5Vピンの扱いは、SeeedのXIAO RP2040の資料でも確認してください。
XIAOとPiのGNDをつながないと、何が困りますか?
74AHCT245のパスコン0.1µFは、どこに置きますか?
Piの3.3V(Piのピン1・17)と、XIAOの3V3ピンはつなぎますか?
6電源入力と逆接保護
この章のゴール:どこに大きな電流が流れるかを決め、逆接保護回路を描ける。
4Aを基板に通さない
64x64のマトリクスは明るい画像で数Aを使います。この大電流は、電源から付属の電源ケーブルでマトリクスへ直接送ります。基板に来る5Vは、Pi・XIAO・74AHCT245のぶんだけです。基板の配線を太くする心配や、保護部品の電流上限の心配がぐっと減ります。
逆接保護:PチャネルMOSFET
電源の+と−を逆に挿すと、ICは一瞬で壊れます。一番簡単な対策はダイオードを直列に入れることですが、ダイオードは常に0.3〜0.4Vほど電圧を食います。5Vが4.6Vになると、Piが不安定になることがあります。
そこでPチャネルMOSFETをスイッチとして使います。ゲートをGNDにつないでおくと、正しく挿したときはゲートがソースより約5V低くなり、MOSFETがオンになって電流が通ります。逆に挿すとゲートの方が高くなり、オフのまま電流を止めます。オンのときの抵抗 Rds(on) はとても小さいので、電圧のロスもわずかです。
回路図ピース:電源入力
CBAの棚のPチャネルMOSFETのデータシートで、ゲート電圧4.5V前後でのRds(on)、ドレイン電流の上限、ピン配置(G・D・S)を必ず確認してください。部品によってピンの並びが違います。
Rds(on) = 0.05Ωのとき、1A流れるとQ2での電圧ロスは何mVですか?
代わりに電圧降下0.4Vのダイオードを使うと、基板の5Vは何Vになりますか?
マトリクスが使う数Aの電流は、どこを通しますか?
7ロジックレベル:3.3Vの信号を5Vにする
この章のゴール:なぜレベルシフタが要るか説明でき、74AHCT245の固定ピンを正しく描ける。
Hと読まれる電圧には下限がある
入力がHと読まれるには、電圧が VIH(High入力の最低電圧)以上である必要があります。Piの出力は3.3V。マトリクスの中のICは5Vで動いていて、3.3Vが確実にHと読まれる保証がありません。そこで間に74AHCT245を入れ、3.3Vの信号を5Vで出し直します。
| IC(5Vで動作) | VIH の目安 | 3.3V入力 |
|---|---|---|
| 74HC245 | 約3.5V | Hと保証されない |
| 74HCT245 / 74AHCT245 | 2.0V | 確実にH |
名前の「T」は、入力の閾値が低い(TTL互換)という意味です。部品を選ぶとき、ここが一文字違うだけで動かなくなります。正確な値はデータシートの VIH の行で確認します。
74AHCT245のピン
| ピン | 名前 | つなぎ方 |
|---|---|---|
| 1 | DIR | +5V。A側からB側への向きに固定 |
| 2〜9 | A1〜A8 | 入力。Piから来る3.3V信号 |
| 10 | GND | GND |
| 11〜18 | B8〜B1 | 出力。5V信号がHUB75へ(18番がB1、11番がB8と逆順) |
| 19 | OE# | GND。#は「Lで有効」の意味 |
| 20 | VCC | +5V と 0.1µF パスコン |
実際の部品のピン配置は、使うICのデータシートで必ず確認してください。
5Vで動く74HC245(Tなし)に、Piの3.3V信号を入れるとどうなりますか?
DIRとOE#はどうつなぎますか?
2個目の245で使わない入力(A7、A8)はどうしますか?
8HUB75:マトリクスの仕組みと配線表
この章のゴール:HUB75の各信号の役割がわかり、Pi → 245 → HUB75 の配線表を完成できる。
4096個を同時には光らせていない
64x64のマトリクスは、上半分と下半分から1行ずつ、合計2行だけを同時に光らせています。その2行を高速に切り替えて、目の残像で全体を見せています。
- R1 G1 B1:上半分の行の色データ。R2 G2 B2:下半分の行の色データ。
- CLK:1回パルスを送るごとに、色データが1ピクセル分シフトレジスタへ送り込まれます。
- LAT:1行ぶん送り終わったら、その内容を表示用に確定(ラッチ)させます。
- OE:表示のオンオフ。行を切り替える間だけ消して、残像のにじみを防ぎます。
- A B C D E:今どの行を光らせるかの番号(行アドレス)。
上下の半分から1行ずつ同時に光らせます。64行全部を表示するには、何回切り替えが必要ですか?
32通りの行を、H/Lの組み合わせで指定します。アドレス線は何本必要ですか?
色6本、アドレス5本、CLK・LAT・OE。HUB75の信号線は全部で何本ですか?
74AHCT245は1個で8本を変換できます。何個必要ですか?
配線表
Piのピンは、参考プロジェクトで使う adafruit-hat マッピング(hzeller/rpi-rgb-led-matrix のソースで確認済み)に合わせています。こうしておけば、ソフトを書き換えずにそのまま動きます。
| 信号 | Pi GPIO | Pi ピン | 245 | HUB75 ピン |
|---|---|---|---|---|
| R1 | GPIO5 | 29 | U1 A1→B1 | 1 |
| G1 | GPIO13 | 33 | U1 A2→B2 | 2 |
| B1 | GPIO6 | 31 | U1 A3→B3 | 3 |
| R2 | GPIO12 | 32 | U1 A4→B4 | 5 |
| G2 | GPIO16 | 36 | U1 A5→B5 | 6 |
| B2 | GPIO23 | 16 | U1 A6→B6 | 7 |
| A | GPIO22 | 15 | U1 A7→B7 | 9 |
| B | GPIO26 | 37 | U1 A8→B8 | 10 |
| C | GPIO27 | 13 | U2 A1→B1 | 11 |
| D | GPIO20 | 38 | U2 A2→B2 | 12 |
| E | GPIO24 | 18 | U2 A3→B3 | 8 |
| CLK | GPIO17 | 11 | U2 A4→B4 | 13 |
| LAT | GPIO21 | 40 | U2 A5→B5 | 14 |
| OE | GPIO4 | 7 | U2 A6→B6 | 15 |
| GND | — | 6, 9 ほか | — | 4, 16 |
9XIAO と Pi の通信:UART
この章のゴール:空いているピンを選び、UARTを正しく交差させて描ける。
空きピンを探す
8章の表で、Piの14本のGPIOがマトリクスに使われています。UART用の GPIO14(ピン8、TXD)と GPIO15(ピン10、RXD)は表に入っていないので、そのまま使えます。
TXとRXは交差させる
TXは送信、RXは受信です。片方の「送信」は、もう片方の「受信」につながないと届きません。そしてGNDを共通にします(5章)。XIAOもPiも3.3Vで動いているので、7章のようなレベル変換は要りません。
| XIAO | Pi | |
|---|---|---|
| D6(TX) | → | GPIO15 RXD(ピン10) |
| D7(RX) | ← | GPIO14 TXD(ピン8) |
| GND | — | GND(ピン6など) |
XIAOのピン割り当てまとめ
| XIAO ピン | つなぐもの | 章 |
|---|---|---|
| A0(D0) | フォトトランジスタと R2 | 3 |
| D8 | SW1(曲送り)と R1 プルアップ | 2 |
| D9 | SW2(一時停止)と R4 プルアップ | 2 |
| D10 | R3 と状態LED | 4 |
| D6 / D7 | UART TX / RX | 9 |
| 5V | D2 経由で +5V | 5・6 |
| 3V3 | R1・R4 プルアップ、Q1 コレクタ | 2・3 |
| GND | 共通 GND | 5 |
ピン名はSeeed公式のXIAO RP2040ピン配置図と照合してから回路図に描いてください。
XIAOのD6(TX)は、Piのどこにつなぎますか?
XIAOとPiのUARTに、レベルシフタは必要ですか?
10回路図に統合する(KiCad)
この章のゴール:ここまでのピースを1枚の回路図にまとめ、ERCとDRCを通す。
部品リスト
| 記号 | 部品 | 章 |
|---|---|---|
| J1 | 5V入力(DCジャックかネジ端子) | 6 |
| Q2 | PチャネルMOSFET(逆接保護) | 6 |
| C1 | 電解コンデンサ 47µF前後 | 6 |
| D2 | ショットキーダイオード(XIAO 5V用) | 5 |
| M1 | XIAO RP2040 | 5・9 |
| U1, U2 | 74AHCT245 | 7・8 |
| C2, C3 | 0.1µF(U1・U2のパスコン) | 5 |
| J2 | 2x20 ソケット(Pi) | 8 |
| J3 | 2x8 ヘッダ(HUB75) | 8 |
| SW1, SW2 / R1, R4 | ボタンと10kΩプルアップ | 2 |
| Q1 / R2 | フォトトランジスタと10kΩ | 3 |
| D1 / R3 | 赤LEDと1kΩ | 4 |
授業のKiCadライブラリ(Fab用の部品ライブラリ)に、XIAOやインベントリ部品のシンボルとフットプリントが入っているか、最初に確認してください。インベントリにない部品は、TAに代わりを聞いてから描きます。
KiCadで描くときのコツ
- 長い配線を引き回す代わりに、ネットラベル(例:
R1_PI、CLK_5V)を使うと読みやすくなります。Pi側は3.3V、245の後は5Vなので、名前で区別しておくと間違いにくいです。 - 電源は
+5V、GND、+3V3の電源シンボルで描きます。ERCで「電源が駆動されていない」と出たら、電源入力のネットに PWR_FLAG を付けます。 - 各ブロック(入力・XIAO・電源・245・コネクタ)を、紙面上でまとまった場所に置きます。この教材の基板マップと同じ配置にすると、自分でも追いやすくなります。
完成チェックリスト
回路図で確認できたものにチェックを入れてください。全部埋まったら、基板マップの最後のブロックに銅が入ります。