今回の講義の目標は、LEDを光らせることです。電子回路がどういうものかを体感してみましょう。
授業開始時に抵抗やLEDを配ります。
目次
- 3.1 電子回路
- 3.2 デバイス
- 3.3 LED
- 3.4 GPIO
- 3.5 LEDを光らせる
- 3.6 実習
3.1 電子回路
この講義では、マイコンボードを中心にした電子回路(electronic circuit)を作っていきます。電子回路とは何か、ということはあまり難しく考えないことにしましょう。ここでは、様々な電子部品を電線で結んだものとしておきます。当然、電気を流します。
もう少し正確に言うと、電子部品に電圧をかけて電流を流すということになります。電子部品は、電流が流れて初めて仕事をしてくれます。小学校の時に、豆電球を光らせる実験をしたことと思います。あれです。電流はプラス極からマイナス極に流れます。電線をうまくつなぐことで、電子回路を作ります。
電圧と電流
電圧の強さは、ボルト(V)という単位で表します。電流の量は、アンペア(A)という単位で表します。一般的に、電圧を強くすればするほど、電流は多く流れます。1.5Vの電池1つで豆電球を光らせるより、2つの電池を直列につないで3Vにした方が、豆電球は明るく光るのでしたよね。
しかし、電流を阻害するものがあります。それが抵抗です。プラスとマイナスの間に繋がれた抵抗が大きくなればなるほど、流れる電流は少なくなります。抵抗の大きさは、オーム(Ω)という単位で表します。
電圧と電流と抵抗の間には、有名なオームの法則という関係が成り立っています。電圧を E 、電流を I 、抵抗を R で表した時、以下の関係が成り立っています。
E = R × I
これは式の変形を行うと、以下のようにも表せます。
I = E / R
多くの場合、電圧は決まっていて抵抗を使って電流を制御することになるので、 I = E / R の方が直感的に理解しやすいですね。つまり、抵抗 R (分母)を大きくすればするほど、電流 I は小さくなります。
では、逆に R をどんどん小さくしていくと、どんなことが起こるのでしょうか。 R が0に近づくと、 I は無限大に近づいていきます。電池のプラス極とマイナス極を電線で直接結ぶと、ちょうどこのような状況になります。電線自体にもわずかながら抵抗はあるのですが、とても小さいです。このような時、回路は短絡している、あるいはショートしているといいます。ショートすると大量の電流が電子回路に流れ、電子部品は破壊され、電池は熱を発して最悪の場合発火したり爆発したりします。特にリチウムイオン充電池を使っている場合には非常に危険です。
回路は絶対にショートさせてはいけません!
ショートさせないためには、適切な場所に適切な大きさの抵抗を入れる必要があります。
直列回路と並列回路
回路には、直列回路(serial circuit)と並列回路(parallel circuit)があります。豆電球の例で考えましょう。豆電球を直列につなぐとは、以下のようにすることです。

豆電球は、光を発する抵抗だと考えましょう。よって、回路はショートしていません。
並列につなぐとは、以下のようにすることです。

豆電球を直列でつなぐのと、並列でつなぐのとでは、どのような違いがあったか思い出しましょう。
- 直列につなぐと、豆電球を1つだけつないだ時よりも暗く光ります。
- 並列の場合のそれぞれの豆電球の明るさは、1つだけの時と明るさが変わりません。
- 電池の持ちは、直列の場合には豆電球を1つだけつないだ時と同じですが、並列の場合には早く無くなってしまいます。
2つの抵抗を直列につないだ場合、全体の抵抗値は2つの抵抗値の合計になります。豆電球の場合も同じで、1つつなぐよりも2つつないだ方が、より抵抗が大きくなります。抵抗が大きいのですから、オームの法則から計算できるように、回路全体を流れる電流は小さくなります。よって、豆電球は弱く光ります。同じ豆電球を2つ直列につないだ場合、それぞれの豆電球にかかる電圧は、電池の電圧の1/2となります。
2つの抵抗を並列につないだ場合は、少し複雑です。まず、電圧から考えます。並列回路の場合には、2つの豆電球それぞれにかかる電圧は等しくなります。この場合では、電源の電圧と、2つの豆電球それぞれにかかる電圧は同じです。つまり、局所的に見ると、豆電球1つを1つの電池につないだ時と同じ電圧・電流が、それぞれの豆電球に与えらえることとなります。よって、明るさは1つの時と2つの時で変わりません。
今度は、回路全体の抵抗を考えます。2つの豆電球の抵抗値を、それぞれ R1 、 R2 と呼ぶことにしましょう。並列に繋いだ部分全体の抵抗値を R とします。

この時、 R と R1 、 R2 の間には以下のような関係が成り立ちます。
1 / R = 1 / R1 + 1 / R2
今、 R1 と R2 がそれぞれ200Ωだったとしましょう。すると 1 / R = 2 / 200 となり、 R は100Ωだということが分かります。 1つの豆電球を繋いだ時の抵抗値が200Ωに対して、2つの豆電球を並列に繋いだ時の抵抗値が100Ωになるということです。何だか不思議ですね。その結果、回路全体に流れる電流は、豆電球1つの場合よりも2つの場合の方が多くなります。結果、電池の減りが早くなります。
まとめると、以下のようになります。
- 直列回路
- 全体の抵抗値は、それぞれの抵抗値の和
- それぞれの抵抗に対してかかる電圧の和が、電源の電圧と等しい
- 回路を流れる電流は、どの場所でも等しい
- 並列回路
- 全体の抵抗値は、ちょっと面倒くさい計算が必要
- それぞれの抵抗に対してかかる電圧は、電源の電圧と等しい
- それぞれの抵抗に流れる電流の和が、回路全体を流れる電流と等しい
3.2 デバイス
これから使う電子部品に、どんなものがあるのか紹介します。この講義では、主に1つの部品が数円から200円程度のものを使います。まるで駄菓子のような値段です。「駄菓子コンピューティング」と呼ぶことにしましょう。
電源
電源(power source)とは、電気を供給してくれるものです。
- 電池: 日常的に良く使うのは、単3や単4等の乾電池ですね。これらは1.5Vです。ただし、充電式のもの(エネループなど)は1.2Vなので注意しましょう。その他、四角い形をした9Vの乾電池や、コインのような形をしたボタン電池があります。ボタン電池は3Vのものが多いです。

- USB: USBからは5Vが取れます。
- 充電池: リチウムイオンやリチウムポリマー、ニッケル水素など、色々なタイプがあります。しかし、この講義では、エネループとモバイルバッテリー以外の充電池を使ってはいけません。使い方を間違えると大きな事故になってしまうからです。

抵抗器
電子回路上で抵抗として働く部品が抵抗器(resistor)です。抵抗器は、通常、単に抵抗と呼ばれます。100Ωとか470Ωとか1KΩなど、様々な大きさの抵抗があります。抵抗を使う際には、どちらをプラスにつないで、どちらをマイナスにつなぐ、といった決まりはありません。これを極性がないといいます。また、多少乱暴に扱っても壊れません。100本で100円くらいと、非常に安価です。

抵抗には180Ωや330Ωなどの抵抗値の大きさがあります。抵抗の大きさは、抵抗の表面に3本または4本の色のついた線でプリントされています。この色のついた線を抵抗器のカラーコードといいます。
このカラーコードの読み方は、以下のWikipediaのページを読んでください。
https://ja.wikipedia.org/wiki/抵抗器
LED
LEDは、光る部品です。日本語では発光ダイオード、英語ではLight Emitting Diodeといいます。ダイオードという電子部品の一種です。線が2本伸びていますが、どちらをプラスにして、どちらをマイナスにするか決まっています。これを、極性があるといいます。足の長い方の線をアノードと呼び、足の短い方の線をカソードと呼びます。アノードがプラスで、カソードがマイナスです。これは、絶対に間違えてはいけません。

赤色LED、緑色LED、青色LEDがあります。ちなみに青色LEDは、3つのうちで一番最後に発明されました。発明者は日本人で、赤崎 勇・天野 浩・中村 修二の各氏です。この発明の対価をめぐって訴訟に発展したことは、皆さんも聞いたことがあるかもしれません。
LEDについては、この資料の後半で詳しく説明します。
スイッチ
スイッチやボタンは、電線を切ったり接続したりする部品です。押している時だけ接続するもの(タクトスイッチ)や、切断と接続の2状態を作り出せるもの(トグルスイッチ)などがあります。大きさや形もまちまちです。

センサ
センサ(Sensor)とは、物理現象を捉えるための部品です。色々なものがあります。
- 光センサ
- 色センサ
- 音センサ
- 加速度センサ
- 距離センサ
- 曲げセンサ
- 温度センサ
- 湿度センサ
センサをうまく使うことが、フィジカルコンピューティングの1つのポイントです。
アクチュエータ
アクチュエータ(actuator)とは、電流を物理的な運動に変える部品です。この講義では、モーターのことだと思ってください。モーターには幾つか種類があります。
- DCモーター: 電圧の大きさに応じて回転速度が変わる、普通のモーターです。
- サーボモーター・ステッピングモーター: 回転角度が指定できるモーターです。サーボモーターとステッピングモーターは、制御の方式が違います。この講義では、サーボモーターしか使いません。
回路図
すでに回路図については第1回の講義資料で簡単に説明しました。以下の回路図は、LEDを点灯させる回路を示しています。

電源のプラスには、T字型の記号を使います。これをVccと呼びます。電源の表記はいろいろあって、横線の上に丸を描くやり方もあります。一番下にある記号は、グラウンド(あるいはグランド)です。グラウンドはGNDと略されます。Vccは図の上の方に描き,GNDは図の下の方に描くのが原則です。330というラベルがふってあるのが抵抗です。330Ωの抵抗であることを示してます。抵抗の下にあるのが、LEDになります。
3.3 LED
LEDは、ダイオードという電子部品の一種です。ダイオードには、電気を一方向にしか流さない性質があります。
LEDを使うときに、気をつけなければならないことは2つあります。1つは極性です。LEDのアノードはプラスに、カソードはマイナスにつなぎます。もう1つは、LEDに流す電流です。LEDは、製品によって流せる電流の上限値が決まっています。このような上限値のことを、絶対最大定格と言います。LEDに、絶対最大定格で決められている以上の電流を流すと、LEDは壊れます。
通常、どのような電子部品を使うときにも、データシートと呼ばれる説明書を参照します。このデータシートに絶対最大定格や、どのくらいの電流を流すとちょうど良いのかが記載されています。今回は、データシートを読むのはパスして、とりあえずやってみることにしましょう。
多くのLEDでは、20mAくらいの電流を流すと一番明るく光るようになっているようです。しかし、20mAを超えると急激に危険な領域に入ります。そこで、この講義では、5mAを流すことを標準とします。5mAでも十分に明るく光ります。
使用する抵抗の計算
3.3Vの電源を使ってLEDを光らせることを考えます。

それでは、抵抗を使う方法から説明しましょう。適切な抵抗を入れて、電流を制御するわけです。抵抗値を計算するにはオームの法則を使います。
E = R × I
これを変形させると、以下のような式を得ます。
R = E / I
今、電流 I は5mAと決めましたから、あとは電圧 E がわかればよいことになります。これは電源の電圧でよいのでしょうか?
それを知るには、LEDの性質を知らなければいけません。LEDは、ある一定以上の電圧がかかって初めて電流が流れ始めます。つまり、それまでは光らないということです。LEDが光っている時には、電圧の低下が起こります。これを順方向電圧降下と呼びます。どのくらい電圧が降下するかはLEDによって異なり、正確にはデータシートを見なければわかりません。データシートには、順電圧(Vf)という名前で記載されています。今回は、1.8Vであるとしておきましょう。
LEDを光らせる時の抵抗値を計算するには、以下のように行います。
抵抗値 = (電源電圧 – 順方向電圧降下) / LEDに流したい電流
実際に3.3Vの電源電圧で計算してみましょう。電流の単位はAですから、5mAは0.005Aとなります。
抵抗値 = (3.3V – 1.8V) / 0.005A = 300Ω
回路に300Ωの抵抗を入れれば、5mA流れてくれるわけです。しかし、授業中に配布した部品の中には300Ωの抵抗は入っておらず、代わりに330Ωの抵抗が入っています。これでは、ダメなのでしょうか。330Ωでどのくらいの電流が流れるかを計算してみましょう。
電流 = (3.3V – 1.8V) / 330Ω = 約4.5mA
これでも全く問題ありません。330Ωの抵抗を使ったとしても4.5mA流れますので、まだ光ります。多くの場合、抵抗の値は近ければなんとかなります。それでは、10KΩにしたらどうでしょうか。
電流 = (3.3V – 1.8V) / 10000Ω = 0.15mA
0.15mAだと光らないか、もしくは光ったとしても本当にわずかです。
実は、ここで行った計算は、かなりインチキです。というのも、抵抗を変えればLEDに流れる電流は変わり、それに伴って順方向電圧の降下も変わってしまうからです。抵抗を使ってLEDに狙った電流を流すのは、実は結構難しいです。LEDを光らせるときには、5mA前後であれば、ある程度適当で良いです。
3.4 GPIO
Raspberry Pi Zeroの表面を見ると、剣山のような細い針金が40本あります。これはGPIOと呼ばれるインターフェイスです。GPIOはGeneral Perpose Input Outputの略です。このGPIOにセンサなどをつなげることができます。

Raspberry Piの公式ページにGPIOについての説明があります。
https://www.raspberrypi.org/documentation/usage/gpio/
GPIOの針金のようなものはピンと呼ばれています。このピンは、Raspberry Piに実装されているマイコンと繋がっています。ピンは1つ1つに役割が割り振られています。今日は、あまり意識しなくて良いですが、次回からはこの役割をきちんと調べた上で使うことになります。
ピンには1番から40番まで番号がふられています。マイクロSDカードスロットを上にしてRaspberry Piを上から見たとき、一番左上のピンが1番ピン、その右隣が2番ピン、1番ピンの下が2番ピン、その右隣が3番ピン、という具合になります。

3.5 LEDを光らせる
それでは、実際にLEDを光らせてみましょう。電源としてはRasperry PiのGPIOに出ている3.3Vを使います。
もう1度、「3.4 GPIO」を確認して、3.3VがGPIOの何番ピンなのかを確認しましょう。1番ピンと17番ピンですね。今回は1番ピンを使います。グラウンドは6番、9番、14番、20番、25番、30番、34番、39番です。今回は6番ピンを使います。
使う部品の確認
使う部品は以下の通りです。
- ブレッドボード
- LED
- 抵抗(330Ω)
- 普通のジャンパワイヤ(赤と黒)
- 固いジャンパワイヤ(適当な長さのもの)
ブレッドボードは、以下のような見た目をしています。

たくさんの穴が空いていますが、この穴は内部でつながっている所とつながっていない所があります。この穴にLEDや抵抗から伸びている線を差し込んで、回路を形成していきます。ブレッドボードの穴は、以下に示す図のように+と-が印字されている部分は横方向につながっていて、真ん中の部分は上下2つに分かれており、それぞれ縦方向につながっています。

抵抗はカラーコードを見ることによって抵抗値の大きさが分かります。330Ωの抵抗のカラーコードは、金色を右側にして、橙(オレンジ)、橙(オレンジ)、茶(ブラウン)、金(ゴールド)になっています。カラーコードの色味は、ものによってばらつきがあり見にくいかもしれません。以下の写真に写っている3本は、どれも330Ωの抵抗です。

普通のジャンパワイヤは以下のような見た目をしています。片側をRaspberry PiのGPIOに繋ぎ、もう片側をブレッドボードに挿します。

硬いジャンパワイヤは、ブレッドボード上で回路を組むときに部品と部品を連結するために使います。

ブレッドボードに部品を配置すると以下のようになります。LEDの足の長さに注意してください。下の写真では見えませんが、LEDの足の長い方は抵抗側(プラス側)につながっています。

赤いジャンパワイヤは、GPIOの1番ピンに、黒いジャンパワイヤは6番ピンに繋ぎます。この例のように、電源のプラスにつながっているワイヤには赤色を使い、グランド(電源のマイナス)につながっているワイヤには黒色(あるいは濃いグレーや濃紺)を使うという決まりがあります。電源からのワイヤはブレッドボードの+と-のラインに繋ぎます。
赤いワイヤから辿っていくと、330Ωの抵抗に繋がり、LEDに行き、硬いジャンパワイヤ(青)を伝って黒いワイヤにたどり着くのが分かります。これが回路通りであることを確認しましょう。
このように、正しい部品が正しい順番につながっていさえすれば、ブレッドボード上のどこを使っても構いません。ブレッドボードのどことどこがつながっているのかを、よく確認しましょう。
回路をRaspberry Piの電源に接続して、Raspberry PiとMacBookをつなぐとLEDが点灯するはずです。

3.6 実習
木曜日の応用演習で実験を行い、実験レポートを作成してGoogle Classroomに提出してください。
マルチメータの使い方
マルチメータ(multimeter)は、電子回路に関係した様々な計測器を1つの筐体にまとめたものです。一般的には、テスターという呼び名の方が通じやすいかもしれません。
製品によって、どのような計測が出来るかは、まちまちですが、普通は以下のようなことができます。
- 電圧測定: 交流電圧(ACやACVと表記)と直流電圧(DCやDCVと表記)のどちらも測れます。
- 抵抗測定: 抵抗器の大きさを測れます。
- 通電テスト: 2点間に電流が流れるかどうかのテストができます。
その他に、電流測定ができたり、コンデンサ容量測定ができるものなどがあります。この講義では、電圧測定、抵抗測定、通電テストしか使いません。
大学で用意しているマルチメータは以下のような外見をしています。

赤と黒の2本の線がありますが、この線はリードと呼ばれます。赤いリードはプラス側、黒いリードはマイナス(グランド)側につなぎます。マルチメータとリードをつなぐときには場所と色に注意してください。
電圧測定と抵抗測定の際には、真ん中のダイアルをそれぞれの場所にすれば良いだけですが、通電テストの時には少し手順が違います。通電テストを行う時には、ダイアルを通電テストの場所に合わせ、さらにファンクションキーを押して液晶ディスプレイに音のマークが表示されるようにします。

マルチメータは使い終わったら必ず電源をoffにしておきます。←重要!
実験1. マルチメータで抵抗値を図る
授業では180Ω、330Ω、10KΩの3種類の抵抗器を配りました。マルチメータを抵抗を測るモードにして、3種類の抵抗器の値を測りましょう。測った結果を実験レポートで報告してください。おそらく、180Ω、330Ω、10KΩとは少し違った値になると思います。近い値であればOKです。
実験2. 通電テスト
以下の図のように、硬くて短いワイヤの片側だけをブレッドボードに挿します。ワイヤの色は、何色でも構いません。

同じ色同士のワイヤが通電していることをマルチメータを使って確認してください。通電するとは、電線が繋がっていて電気が流れるということです。
レポートには、ブレッドボードの写真と、マルチメータをどう操作して、通電をどのように確認したのかを書いてください。
実験3. マルチメータで電圧を測る
マルチメータで電圧を測るときには、プラス極とマイナス極に気をつけなければなりません。マルチメータには、赤と黒のリードがありますが、赤いリードがプラス側、黒いリードがマイナス側です。
電子回路では、いろいろな場面で赤をプラス、黒(あるいは濃紺)をマイナスを示すものとして使います。この2つの色は特別な色と覚えてください。
マルチメータの使い方が分からない時には聞いてください。DCやVと書いてある部分が直流電圧の測定、ΩやOHMなどと書かれているのが抵抗値の測定、音が出ているようなアイコンが通電テストとなっていることが多いです。
以下の写真を参考にして、GPIOの3.3Vから赤いワイヤを使ってブレッドボードの+のラインに繋ぎ、GPIOのGROUNDから黒いワイヤを使ってブレッドボードの-のラインに繋ぎます。2つの硬いジャンパワイヤ間の電圧をマルチメータで測ってください。硬いジャンパワイヤは片側の線を真っ直ぐに伸ばしています。

予想される結果は、3.3Vです。近い値が出ていれば成功です。
実験4. 抵抗を使ってLEDを光らせる
講義中に説明した回路図を参考に、抵抗を使ってLEDを光らせます。まずは、330Ωの抵抗を使って、光る様子を観察します。その後、抵抗を10KΩに変えて実験します。330Ωの時と10KΩのときで、LEDの光り方にはどのような変化があるのかを報告してください。
実験5. 順方向電圧降下を測定する
LEDの順方向電圧降下がどのくらいなのかを、マルチメータを使って実際に測定してみましょう。予想される結果は、1.8Vから2.0Vくらいです。
実験4の330Ωを使った回路を使います。電圧を図る場所は、抵抗の両側です。抵抗には、LEDによって降下した残りの電圧がかかります。LEDの順方向電圧降下は電源電圧から、この抵抗にかかる電圧を引いたものとなります。
一方、LEDの両側の点で電圧を測ると、このLEDにかかる電圧が測定できます。両方とも測って報告してください。
実験6. LEDを5Vで光らせる
GPIOの2番から5Vがとれます。これを使ってLEDを光らせましょう。抵抗は180Ωと330Ωの2つを使います。この2つの抵抗を使って510Ωの抵抗を作ってください。
まず、回路図を書いてください。次に、5V電源と510Ωの抵抗を使ったときにLEDには何mAの電流が流れるのかを計算します。
実験結果には、回路図、電流の計算、光らせたときの写真を入れてください。
— by 石井 健太郎、沼 晃介、飯田 周作 専修大学ネットワーク情報学部