基礎 · 読了まで23分

基本的な電子部品:回路記号、単位、働き

基本的な電子部品とは?抵抗、コンデンサ、インダクタ、ダイオード、トランジスタ、MOSFET、リレー、レギュレーター、水晶振動子の回路記号、単位、用途を1つの表にまとめました。

基本的な電子部品は、あらゆる回路を形づくる部品です。電流を制限する、エネルギーをためる、電流を一方向にだけ流す、スイッチとして働く、信号を増幅する、回路を守るといった役割を担います。スマートフォンの充電器からArduinoのボードまで、ほとんどの電子機器の中には、抵抗、コンデンサ、インダクタ、ダイオード、LED、トランジスタ、MOSFET、集積回路、リレー、電圧レギュレーター、ヒューズ、押しボタン、ポテンショメーター、水晶振動子という14種類の部品のいくつかが入っています。それぞれに固有の回路記号、部品記号の文字(R、C、L、D、Qなど)、値を表す単位があります。これらを見分けられることが、回路図を読み、自分のプロジェクトをミスなく組み立てるための第一歩です。

このガイドでは、まず14種類の部品すべてを、部品記号の文字、単位、回路記号、外見、主な役割とともに1つのまとめ表に集めます。続いて、受動部品と能動部品の違い、各部品のしくみ、よく出会う値、よくある失敗を解説し、各章の最後にはその部品を詳しく扱った記事へのリンクを載せています。最後の章では、ポテンショメーター、抵抗、LED、ボタン、トランジスタ、ダイオード、コンデンサ、リレーを組み合わせた回路をArduino、ESP32、Raspberry Pi Picoで作り、Arduinoとテスターで部品を調べる方法も紹介します。

R · Ω
R · Ω
C · µF
C · µF
D · 1N4007
D · 1N4007
LED · 5 mm
LED · 5 mm
Q · S8050
Q · S8050
K · SRD-05VDC
K · SRD-05VDC
RV · Ω
RV · Ω
SW · 6×6 mm
SW · 6×6 mm
U · 7805
U · 7805

基本的な電子部品とは?まとめ表

下の表は、この記事で扱う14種類の部品をひと目で比べられるようにしたものです。部品記号の文字は、回路図で部品のラベルの先頭に書かれる略号で、R1、C3、Q2のような番号で同じ種類の部品を区別します。単位の列は、部品の値をどの量で表すかを示しています。抵抗はオーム(Ω)、コンデンサはファラド(F)、インダクタはヘンリー(H)、水晶振動子はヘルツ(Hz)で表します。ダイオード、トランジスタ、リレーには決まった1つの単位がなく、耐えられる電圧(V)と電流(A)で選びます。回路記号の列は、ヨーロッパをはじめ世界の多くの地域で使われているIECの描き方に従っています。アメリカ(ANSI)の回路図では、一部の記号の形が異なります。日本のJIS(JIS C 0617)もIECに準拠していますが、古い資料ではギザギザの抵抗記号もよく見かけます。

部品部品記号の文字単位/主な値回路記号外見主な役割
抵抗Rオーム(Ω)長方形(米国の回路図ではギザギザの線)カラー帯のある小さな円筒形。SMDでは番号入りの小さな直方体電流の制限、分圧
コンデンサCファラド(F):pF、nF、µF平行な2本の線。極性があるものは+記号か曲がった極板円板形のセラミック、または帯の入った円筒形の電解コンデンサエネルギーの蓄積、フィルター、パスコン、タイミング
インダクタ(コイル)Lヘンリー(H):µH、mH半円の並びボビンに巻いた線、またはフェライトコアの円筒電流の変化を緩やかにする、DC-DCコンバーター、フィルター
ダイオードD逆方向電圧(V)、順方向電流(A)先端に棒がある三角形黒い本体で、カソード側に灰色か白の帯一方向の電流、整流、保護
LEDLEDまたはD順方向電圧(V)、電流(mA)外向きの矢印が2本付いたダイオードの記号色付きの透明なドーム。長い足がアノード発光、インジケーター
トランジスタ(BJT)Q(資料によってはT)電流増幅率hFE、最大IC(A)円の中にベースの線、エミッタに矢印3本足の半円柱(TO-92)、または金属タブ付きのTO-220スイッチング、信号の増幅
MOSFETQRDS(on)(Ω)、しきい値電圧VGS(th)(V)チャネルから離れたゲート(G)の線、DとSの端子主にTO-220かSMDのパッケージ大電流を低損失でスイッチング、PWM
集積回路(IC)UまたはIC型番(例:NE555)番号付きのピンがある四角形切り欠きのある黒い多ピンの本体(DIP-8、DIP-16)タイミング、論理回路、増幅器、マイコン
リレーK(資料によってはRL)コイル電圧(V)、接点電流(A)コイルの四角形とスイッチを破線で結んだ形5ピンの青か黒の立方体小さな信号で商用電源や大電流をスイッチング
電圧レギュレーターUまたはVR出力電圧(V)、最大電流(A)IN、GND、OUTの端子がある四角形TO-220(7805)またはSOT-223(AMS1117)安定した5 Vや3.3 Vを作る
ヒューズF定格電流(A)、電圧(V)中央に線が通った長方形ガラス管(5×20 mm)、ブレード型、またはPTC過電流で回路を切る
ボタン/スイッチSまたはSW接点電流(A)、電圧(V)開いた斜めの線。ボタンは上に押し棒が付く6×6 mmの4本足ボタン、スライドスイッチやトグルスイッチ手で回路を開閉する、入力を与える
ポテンショメーターRVまたはVRオーム(Ω)、例:10 kΩ中央を矢印が指す抵抗の記号軸の付いた3本足の本体。トリマーはねじ頭調整できる分圧回路、音量や速度の調整
水晶振動子YまたはXヘルツ(Hz):kHz、MHz2枚の板にはさまれた細い長方形楕円形の金属ケース(HC-49)または小さな円筒マイコンに安定したクロック信号を与える

受動部品と能動部品

電子部品は、ふつう大きく2つのグループに分けられます。受動部品は回路にエネルギーを加えず、信号を増幅することもできません。エネルギーを消費する(抵抗)、ためる(コンデンサ、インダクタ)、フィルターをかけるだけです。能動部品は電源からのエネルギーを使って別の電流を制御したり、信号を増幅したりします。トランジスタ、MOSFET、集積回路がこのグループです。ダイオードとLEDはその境目にあります。増幅作用がないので厳密な定義では受動部品ですが、トランジスタと同じ半導体材料でできているため、多くの教科書では能動部品に分類されています。試験で問われたら、使っている教科書の定義に従ってください。リレー、ボタン、ヒューズなどの部品は、電気機械部品や保護部品として別に分類されることがよくあります。

グループ部品共通点
受動抵抗、コンデンサ、インダクタ、ポテンショメーター、水晶振動子エネルギーを生み出したり増幅したりせず、消費・蓄積・フィルターを行う
半導体(能動)ダイオード、LED、トランジスタ、MOSFET、IC、レギュレーターシリコンなどの半導体でできており、電流の向きを決める・スイッチする・増幅する
電気機械リレー、ボタン、スイッチ動く金属接点で回路を物理的に開閉する
保護ヒューズ、PTCヒューズ故障時に回路を切り、配線と電源を守る

抵抗:電流を制限する部品

抵抗は最も基本的な部品で、流れる電流をさまたげ、エネルギーの一部を熱に変えます。単位はオーム(Ω)で、電圧・電流・抵抗の関係はオームの法則V = I × Rで表されます。Arduinoで抵抗を使う場面は主に2つあります。LEDなどの部品の電流を制限することと、分圧回路を作ることです。たとえば5 Vのピンから赤色LEDを15 mAで点灯させるには(5 − 2) / 0.015 = 200 Ωが必要で、その1つ上の標準値である220 Ωを選びます。リード線付き抵抗の値は本体のカラー帯で読み取ります。赤・赤・茶・金なら220 Ω、許容差±5%です。抵抗はE12系列と呼ばれる標準値(10、12、15、18、22、27、33、39、47、56、68、82とその10倍の値)で作られています。値と同じくらい大切なのが定格電力です。ホビー用の回路の抵抗はふつう1/4 Wで、P = I² × Rで計算した電力がそれを超えると、抵抗は過熱して焼けてしまいます。カラー帯は抵抗カラーコードツールで読み解けます。詳しくは抵抗とは?とオームの法則を参照してください。

コンデンサ:小さくて速いエネルギーのたくわえ

コンデンサは、絶縁層をはさんだ2枚の導体の板に電荷をため、その電荷をとても素早く放出できる部品です。単位はファラド(F)ですが、1ファラドは非常に大きいため、実際にはピコファラド(pF)、ナノファラド(nF)、マイクロファラド(µF)を使います。1 µF = 1,000 nF = 1,000,000 pFです。充電が終わると直流を通さなくなりますが、急に変化する信号やノイズは通します。そのため、すべてのICの電源ピンのそばには100 nFのセラミックのパスコン(デカップリングコンデンサ)が置かれ、モーターやサーボの電源には100〜1000 µFの電解コンデンサが入れられます。セラミックコンデンサには極性がなく、値はコードで印刷されています。104は10のあとに0が4つ、つまり100,000 pF = 100 nFという意味です。電解コンデンサには極性があり、本体の明るい色の帯がマイナスの足を示します。逆向きにつなぐと膨らんだり破裂したりすることがあります。抵抗と組み合わせると、時定数τ = R × Cでコンデンサの充電の速さが決まります。10 kΩと100 µFならτ = 1秒です。表記はコンデンサの表記ツールで読み解けます。種類と計算についてはコンデンサとは?を参照してください。

インダクタ(コイル):電流の急な変化に逆らう部品

インダクタは、導線をふつうは鉄粉やフェライトのコアに巻いて作られ、磁界の中にエネルギーをためます。単位はヘンリー(H)で、電子工作ではマイクロヘンリー(µH)やミリヘンリー(mH)を主に見かけます。コンデンサとは逆に、インダクタは電流の急な変化に逆らいます。両端の電圧はV = L × di/dtで表されます。そのため直流はほとんど抵抗なく通しますが、高い周波数には逆らいます。この逆らう度合いはXL = 2π × f × Lで計算します。最もよく目にするのは、LM2596などのスイッチング降圧コンバーターに載っている大きな黒いインダクタ(一般に33〜47 µH)で、スイッチングのたびにエネルギーをため、負荷へ送り出します。リレー、モーター、ブザー、スピーカーにもコイルが入っており、電流を切った瞬間に逆向きの高い電圧スパイクを発生させます。これを抑えるため、誘導性の負荷にはダイオードを逆向きに並列につなぎます。小型のリード線付きインダクタの値は抵抗と同じようにカラー帯でµH単位で示されており、インダクタの表記ツールで読み取れます。詳しくはインダクタとは?を参照してください。

ダイオードとLED:電流の一方通行

ダイオードは、電流をアノードからカソードへの一方向にだけ流す半導体で、逆方向にはほとんど電流が流れません。電流が流れている間は順方向電圧が生じます。シリコンダイオードでは約0.6〜1 V、ショットキーダイオードでは0.15〜0.6 Vです。本体の灰色か白の帯がカソードを示し、回路記号の棒に対応しています。最もよく使われるのは、1 A・1000 Vの整流用1N4007、高速の小信号用1N4148、電圧降下の小さいショットキーの1N5819です。ダイオードの基本的な役割は4つあります。交流を直流に変える(整流)、電池を逆につないだときに回路を守る、リレーやモーターなどの誘導性負荷から出る逆電圧のスパイクを抑える(フライバック)、そしてツェナーダイオードとして電圧を一定の値に保つことです。詳しい比較と調べ方はダイオードとは?にまとめています。

LED(発光ダイオード)は、電流が流れると光を出すダイオードで、ほかのダイオードと同じく一方向にしか働きません。長い足がアノード(+)、短い足がカソード(−)で、ドームのカソード側には平らな面もあります。LEDの鉄則は必ず直列に抵抗を入れることです。LEDは自分で電流を制限しないので、電圧が順方向電圧を少し超えただけで電流が急増し、LEDやArduinoのピンが傷んでしまいます。抵抗の値はR = (Vsupply − VLED) / Iで計算します。一般的な5 mmのLEDは10〜20 mAで無理なく光ります。赤と黄色のLEDの順方向電圧は約2 V、青、白、明るい緑のLEDは約3 Vです。計算はLED抵抗計算ツールで、色ごとの順方向電圧はLEDの電圧ツールで確認できます。詳しくはLEDとは?を読んでください。

LEDの色標準的な順方向電圧5 V用の抵抗(約15 mA)3.3 V用の抵抗(約10 mA)
赤1.8〜2.2 V220 Ω150 Ω
黄、オレンジ、従来の緑2.0〜2.4 V220 Ω120 Ω
青、白、明るい緑2.8〜3.4 V150 Ω47 Ω(暗めになることがある)

トランジスタとMOSFET:電子のスイッチ

トランジスタ(BJT)は、小さなベース電流でずっと大きなコレクタ電流を制御する3本足の半導体です。足はベース(B)、コレクタ(C)、エミッタ(E)で、電流増幅率はIC = hFE × IBで表されます。NPNとPNPの2種類があり、ArduinoのプロジェクトではエミッタをGNDにつなぐNPN型がずっと多く使われます。Arduinoのピンが安全に流せる電流は約20 mAが限度なので、リレー、モーター、ブザー、LEDテープなどの負荷はトランジスタを通して駆動します。ピンとベースの間には必ず抵抗を入れてください。2N2222Aで5 Vのリレー(約71 mA)を駆動するなら、Arduino Unoでは680 Ω、3.3 VのESP32とPicoでは470 Ωが適しています。小さな負荷にはBC547(100 mA)、中くらいの負荷には2N2222A(600 mA)、数アンペアまでならダーリントンのTIP120(5 A)が使われます。ピン配置は型番ごとに異なるので、トランジスタのピン配置ツールで確認してください。動作領域と計算はトランジスタとは?で解説しています。

MOSFETもトランジスタの一種ですが、電流ではなく電圧で制御します。端子はゲート(G)、ドレイン(D)、ソース(S)です。ゲートは薄い酸化膜でチャネルから絶縁されているので、定常状態ではほとんど電流が流れません。ゲート・ソース間の電圧がしきい値(VGS(th))を十分に上回ると、ドレイン・ソース間の抵抗(RDS(on))は数ミリオームまで下がります。そのため大電流では、MOSFETはBJTよりずっと発熱が少なくて済みます。Arduinoで使うときに最も大切なのは、ロジックレベルの品種を選ぶことです。IRLZ44Nはゲートに5 Vをかければ完全にオンになりますが、よく使われるIRF540Nは完全に導通させるのに10 Vが必要で、5 Vでは発熱します。ESP32やPicoの3.3 Vのピンには、IRLB8721やAO3400のようなしきい値の低い品種を選びます。ゲートには100〜220 Ωの抵抗を直列に入れ、ゲートとGNDの間には10 kΩのプルダウン抵抗を入れてください。配線図はArduinoでMOSFETを使う方法にあります。

項目BJT(例:2N2222A、TIP120)MOSFET(例:IRLZ44N)
制御するものベース電流(mA)ゲート電圧(V)。定常状態では電流が流れない
端子ベース、コレクタ、エミッタゲート、ドレイン、ソース
オン時の電圧降下VCE(sat) 0.1〜0.3 V(ダーリントンは1〜2 V)I × RDS(on)。25 mΩ・2 Aで約0.05 V
適した負荷数mA〜1〜2 A数百mA〜数十A
Arduinoとの接続ピン → ベース抵抗 → ベースピン → 100〜220 Ω → ゲート。ゲートとGNDの間に10 kΩ

集積回路(IC):1つのチップに数千の部品

集積回路(IC、チップ)は、トランジスタ、抵抗、コンデンサなどの部品を数千個、ときには数十億個も1枚のシリコンにまとめた既製の回路です。回路図では番号付きのピンがある四角形で描かれることが多く、UまたはICのラベルが付きます。ブレッドボードで使いやすい品種はDIPパッケージ(DIP-8、DIP-14、DIP-16)で、完成品の基板にはずっと小さいSMDパッケージ(SOIC、TSSOP)が使われます。ピンを正しく配線するには、まず1番ピンを見つけます。本体の片端にある半円形の切り欠きか、角にある小さな点を探してください。切り欠きを左にして上から見たとき、左下のピンが1番で、番号は反時計回りに増えていきます。ホビーのプロジェクトでよく出会うICは、NE555タイマー、出力を増やす74HC595、LM358オペアンプ、論理ゲートのIC、そしてArduino Unoの頭脳である28ピンのATmega328Pです。すべてのICのVCCとGNDのピンの間には、できるだけ近くに100 nFのコンデンサを入れる習慣をつけましょう。

リレー:小さな信号で大きな負荷をスイッチする

リレーは電気機械式のスイッチで、コイルに電流が流れると、生じた磁界が金属の接点を引き寄せます。接点側はコイルと電気的に絶縁されているので、5 Vの信号で商用電源のランプや12 Vのポンプをスイッチできます。接点はCOM(共通)、NO(常時開)、NC(常時閉)と呼ばれます。コイルに電流が流れていないときはCOMがNCにつながり、コイルが吸着するとCOMはNO側に切り替わります。Arduinoのキットに入っているSRD-05VDC-SL-Cリレーのコイルは約70 Ωで、5 Vで約71 mAを消費します。これはピンが流せる電流をはるかに超えています。そのためリレーは必ずトランジスタを通して駆動し、コイルにはフライバックダイオードを逆向きに並列につなぎます。市販のリレーモジュールには、トランジスタ、ダイオード、状態表示LEDがすでに基板上に載っています。ガラス管の中の2枚の薄い接点が、磁石を近づけると閉じる小さなスイッチはリードスイッチと呼ばれ、ドアや窓のセンサーに使われています。

リレーに印刷されている10 A 250 VACは接点だけの上限で、ブレッドボードやジャンパーワイヤーの上限ではありません。商用電源の電圧(230 Vまたは120 V。日本は100 V)は命にかかわります。商用電源につなぐ回路は必ず電源を切った状態で組み、むき出しのねじ端子には絶対に触れず、自信がなければ専門家に助けを求めてください。リレーのコイルをArduinoのピンに直接つないではいけません。

電圧レギュレーター:安定した安全な電源

電圧レギュレーターは、入力電圧が変動しても出力の電圧を一定に保つ部品です。最もよく知られている例が7805で、7〜35 Vの入力から5 Vを作り、放熱器を付ければ最大1.5 Aまで供給できます。印刷面を手前に向けると、ピンは左から順に入力(IN)、GND、出力(OUT)です。7805はリニアレギュレーターで、電圧の差を熱に変えます。失われる電力はP = (Vin − Vout) × Iで、12 Vから5 Vで0.5 Aを取り出すと3.5 Wの熱が出ます。これはTO-220パッケージでは放熱器なしでは耐えられません。3.3 Vの出力には、多くのESP32ボードにも載っているAMS1117-3.3が使われます。これは低ドロップアウト(LDO)レギュレーターなので、入力は出力より約1.1〜1.3 V高ければ十分です。大電流と高い効率が必要なら、LM2596などのスイッチング降圧コンバーターで、約80〜90%の効率で最大3 Aを供給できます。レギュレーターの入力と出力にはコンデンサを忘れずに入れてください。詳しくは7805電圧レギュレーターとArduinoの電源の取り方を参照してください。

ヒューズ:回路のシートベルト

ヒューズは、流れる電流が決められた値を超えると、溶けるか抵抗が急に大きくなることで回路を切る保護部品です。本来の役目は電子部品を守ることではなく、ショートによる熱や火災から配線、電池、電源を守ることです。表示されているのは定格電流(例:1 A)と、耐えられる最大電圧(例:250 V)です。頭に付く文字も重要です。F(速断型)のヒューズは急な過電流ですぐに切れ、T(タイムラグ型、遅断型)のヒューズは、電源投入時にモーターや大容量コンデンサに流れる短い突入電流には耐えます。通常の動作電流の約1.25〜1.5倍の定格のヒューズを選び、電源のプラス側の線の、できるだけ電源に近い位置に入れてください。ガラス管(5×20 mm)や自動車用のブレード型ヒューズは、切れたら交換が必要です。PTC(復帰型)ヒューズは、熱くなると電流を遮断し、冷えると元に戻ります。Arduino UnoのUSB入力にもこのPTCヒューズがあり、500 mAを超える電流からパソコンのUSBポートを守っています。ボードが本当に壊れているかどうかを確かめるには、Arduinoが壊れたかも?を参照してください。

ボタンとスイッチ:手で回路を開閉する

押しボタンは、押している間だけ接点がつながり、手を離すと開くモーメンタリ型のスイッチです。スイッチ(スライド、トグル、ロッカー)は、切り替えた位置のまま保持されます。接点の構成は略号で表します。SPSTは単純なオン・オフのスイッチ、SPDTは共通端子を2つの出力のどちらかにつなぐ切り替えスイッチ、DPDTは2つの別々の回路を同時に切り替えるスイッチです。ブレッドボード用キットに入っている6×6 mmのボタンには足が4本ありますが、独立した接点は2つだけです。足は2本ずつ内部でつながっているので、対角の足を使って配線するのがいちばん確実です。Arduinoにつなぐときは、ピンが浮いた状態にならないようプルアップ抵抗かプルダウン抵抗が必要です。いちばん簡単なのは、コードでINPUT_PULLUPを指定してATmega328Pの20〜50 kΩの内部プルアップを有効にする方法です。この場合、ボタンを押している間ピンはLOWを読みます。機械式の接点は押した瞬間に数ミリ秒振動します(チャタリング)。これはソフトウェアで20〜50 ms待って取り除きます。詳しくはArduinoに押しボタンをつなぐ方法を参照してください。

ポテンショメーター:調整できる抵抗

ポテンショメーターは抵抗値を調整できる3本足の部品で、軸を回すと中央の端子(ワイパー)が抵抗体の上を移動します。両端の足の間の抵抗は一定(例:10 kΩ)で、中央の足とどちらかの端の足の間の抵抗は0〜10 kΩの範囲で変わります。両端の足を5VとGNDに、中央の足をアナログ入力につなぐと、ポテンショメーターは調整できる分圧回路になり、Arduino UnoのanalogRead()関数で0〜1023の値を読み取れます。本体の文字は抵抗の変化カーブを示しています。多くの部品ではBが直線(Bカーブ)、Aが対数(音量用、Aカーブ)で、B10Kは10 kΩのBカーブのポテンショメーターです。基板にはんだ付けしてドライバーで一度だけ調整する小型のものは半固定抵抗(トリマー)と呼ばれ、LCDのコントラストやセンサーのしきい値の調整に使われます。詳しい解説とプロジェクト例はポテンショメーターとは?にあります。

水晶振動子:回路の心臓の鼓動

水晶振動子(クォーツ)は、電圧をかけると非常に安定した周波数で振動する水晶の薄片です。この現象を圧電効果と呼びます。単位はヘルツ(Hz)で、値はMHzかkHzで本体に印刷されています(例:16.000 = 16 MHz)。マイコンはこの振動が刻むクロック信号に合わせて命令を実行し、delay()やmillis()などのタイミング関数の正確さもこれで決まります。ATmega328Pを使ったArduinoボードは16 MHzで動きます(純正のUno R3はこのために水晶ではなく安価なセラミック発振子を使っていますが、多くの互換品は金属ケースの水晶を載せています)。水晶の足とGNDの間には、ふつう22 pFの小さなコンデンサを2個入れます。ESP32モジュールの金属シールドの下には40 MHzの水晶があり、Raspberry Pi Picoには12 MHzの水晶が載っています。時計用のモジュールは32.768 kHzの水晶を使います。この値は2の15乗なので、2で15回割るとちょうど1 Hz、つまり1秒に1パルスになるからです。RTC時計モジュールが、Arduinoの電源が切れている間も正確な時刻を保てるのはこのためです。

回路図で部品と値を読む

回路図では、どの部品にも2つの情報が書かれています。部品記号の文字と番号からなるラベル(R1、C2、Q1、U3)と、値(220、100n、BC547)です。同じラベルは基板にも印刷されているので、回路図のR7が基板のどこにあるかを簡単に見つけられます。値では小数点の代わりに単位の文字を使うことがよくあります。こうすると、小さな印刷で小数点が消えて値を10倍読み間違えることを防げます。回路図の読み方は回路図の読み方で順を追って解説しています。よく見かける表記は次のとおりです。

  • 4k7、1M、2R2、0R:それぞれ4.7 kΩ、1 MΩ、2.2 Ωです。オームの値では、Rの文字が小数点の代わりになります。0Rは0オームのジャンパー抵抗です。
  • 100n、104、0.1u:3つとも同じ100 nFです。キーボードにはµがないので、代わりにuと書きます。
  • 10u/16V:耐圧16 Vの10 µFの電解コンデンサです。耐圧は回路の最高電圧の1.5倍以上にしてください。
  • L1 4u7:4.7 µHのインダクタです。ラベルがLで始まっているので、単位はヘンリーです。
  • D1 1N4007、Q1 BC547、U1 NE555:半導体では値の代わりに型番が書かれます。仕様はその部品のデータシートで確認できます。
  • 472や01C:SMD抵抗に印刷されているコードです。472は47のあとに0が2つ、つまり4.7 kΩを意味します。文字を使ったコードについてはSMD抵抗のコードとSMDコード解読ツールを参照してください。

実践:8種類の部品を1つの回路で動かす

理論を身につけるいちばんの方法は、部品を実際に組み合わせて動かすことです。これから作る回路では、ポテンショメーターでLEDの明るさを調整し、220 Ωの抵抗でLEDの電流を制限し、ボタンを押すたびにリレーのオン・オフを切り替えます。リレーは、ベース抵抗を通して駆動する2N2222Aトランジスタで吸着させます。リレーのコイルに逆向きに並列につないだ1N4007ダイオードがトランジスタを守り、ポテンショメーターのワイパーとGNDの間の100 nFのコンデンサがアナログの読み取り値のノイズを減らします。今のところリレーの接点には何もつながなくて大丈夫です。切り替わるときにカチッという音が聞こえます。ブレッドボードを使うのが初めてなら、先にブレッドボードとは?を読んでください。

接続Arduino UnoESP32Raspberry Pi Pico
ポテンショメーターの両端の足5VとGND3V3とGND3V3(OUT)とGND
ポテンショメーターの中央の足(GNDとの間に100 nF)A0GPIO 34GP26 (ADC0)
LEDのアノード(220 Ω経由)、カソードはGNDへD9GPIO 18GP15
ボタン(もう一方の足はGNDへ)D2GPIO 4GP14
2N2222Aのベース抵抗D7、680 ΩGPIO 23、470 ΩGP16、470 Ω
トランジスタのエミッタGNDGNDGND
リレーのコイル:+側/−側5V/コレクタ5V (VIN)/コレクタVBUS/コレクタ
1N4007ダイオード(コイルと並列)カソードを5Vへ、アノードをコレクタへカソードを5Vへ、アノードをコレクタへカソードをVBUSへ、アノードをコレクタへ
この回路でいちばん多い失敗は3つです。ダイオードを逆向きに付けること(カソードの帯は電源のプラス側に向けます。逆だとトランジスタがオンになった瞬間に電源がショートします)、LEDを抵抗なしでつなぐこと、トランジスタのピンを取り違えることです。2N2222Aの平らな面を手前に向けると、ピンは左からエミッタ、ベース、コレクタの順です。BC547では順番が逆で、コレクタ、ベース、エミッタです。リレー単体ではなく市販のリレーモジュールを使う場合は、トランジスタもダイオードも要りません。モジュールのINピンを制御ピンに直接つなぎます。モジュールによってはLOWの信号でオンになるものがあることを覚えておいてください。
C++ (Arduino IDE)
1// Elektronik devre elemanları deneyi / Electronic components experiment
2// Pot -> LED parlaklığı, buton -> transistör + röle / pot -> LED brightness, button -> transistor + relay
3#if defined(ESP32)
4const int POT_PIN = 34;       // ADC1, yalnızca giriş / ADC1, input only
5const int LED_PIN = 18;       // 220 Ω üzerinden LED / LED via 220 Ω
6const int BUTTON_PIN = 4;     // diğer bacak GND'ye / other leg to GND
7const int RELAY_PIN = 23;     // 470 Ω ile 2N2222A beyzine / to the 2N2222A base via 470 Ω
8const int ADC_MAX = 4095;     // 12 bit ADC
9const float VREF = 3.3;
10#else
11const int POT_PIN = A0;
12const int LED_PIN = 9;        // PWM pini (~) / PWM pin (~)
13const int BUTTON_PIN = 2;     // diğer bacak GND'ye / other leg to GND
14const int RELAY_PIN = 7;      // 680 Ω ile 2N2222A beyzine / to the 2N2222A base via 680 Ω
15const int ADC_MAX = 1023;     // 10 bit ADC
16const float VREF = 5.0;
17#endif
18
19bool relayOn = false;
20int lastReading = HIGH;             // son ham okuma / last raw reading
21int stableState = HIGH;             // zıplamadan arınmış durum / debounced state
22unsigned long lastChange = 0;       // son değişim anı / time of last change
23unsigned long lastPrint = 0;
24
25void setup() {
26  pinMode(LED_PIN, OUTPUT);
27  pinMode(RELAY_PIN, OUTPUT);
28  digitalWrite(RELAY_PIN, LOW);           // açılışta röle kapalı / relay off at startup
29  pinMode(BUTTON_PIN, INPUT_PULLUP);      // dahili pull-up direnci / internal pull-up resistor
30  Serial.begin(115200);
31}
32
33void loop() {
34  // 1) Potansiyometre -> LED parlaklığı (PWM) / potentiometer -> LED brightness (PWM)
35  int pot = analogRead(POT_PIN);
36  analogWrite(LED_PIN, map(pot, 0, ADC_MAX, 0, 255));
37
38  // 2) Buton -> röle, 30 ms zıplama filtresi / button -> relay, 30 ms debounce
39  int reading = digitalRead(BUTTON_PIN);
40  if (reading != lastReading) {
41    lastChange = millis();
42    lastReading = reading;
43  }
44  if (millis() - lastChange > 30 && reading != stableState) {
45    stableState = reading;
46    if (stableState == LOW) {             // basıldı / pressed
47      relayOn = !relayOn;
48      digitalWrite(RELAY_PIN, relayOn ? HIGH : LOW);
49    }
50  }
51
52  // 3) Yarım saniyede bir rapor / report every half second
53  if (millis() - lastPrint >= 500) {
54    lastPrint = millis();
55    Serial.print("Pot: ");
56    Serial.print(pot * VREF / ADC_MAX, 2);
57    Serial.print(" V | Röle / relay: ");
58    Serial.println(relayOn ? "AÇIK / ON" : "KAPALI / OFF");
59  }
60}

このコードは、同じloop()の中で3つの独立した処理を、どれも待たせることなく行います。analogRead()がポテンショメーターのワイパーの電圧を読み、map()がそれを0〜255の範囲に変換します。PWMのおかげで、LEDの明るさはこの値に合わせて変わります。ボタンはdelay()ではなくmillis()で読み取ります。読み取り値が30 msの間変わらなければ本当に押されたとみなし、リレーの状態を切り替えます。ピンがHIGHになると2N2222Aが飽和してリレーのコイルに電流が流れ、接点がカチッとNO側に切り替わります。ピンがLOWになると、コイルにたまったエネルギーは1N4007を通って安全に消えていきます。#if defined(ESP32)の行があるので、同じコードがESP32でも専用のピンと12ビットのADC分解能でコンパイルされます。シリアルモニタを115200ボーで開くと、ポテンショメーターの電圧とリレーの状態をリアルタイムで確認できます。

Raspberry Pi PicoとMicroPythonで同じ回路を作る

同じ回路をRaspberry Pi PicoとMicroPythonで動かすには、表のPicoの列に従って配線し、リレーのコイルにはUSBの5 Vが出ているVBUSピンから給電します。Picoのread_u16()関数は0〜65535の範囲で値を返すので、余分な変換をせずにそのままPWMのduty_u16()関数に渡せます。Thonnyでコードをmain.pyとしてPicoに保存すると、ボードの電源が入るたびに自動で実行されます。MicroPythonが初めての場合は、Raspberry Pi Picoとは?から始めてください。

MicroPython
1# Pico: pot -> LED parlaklığı, buton -> transistör + röle / pot -> LED brightness, button -> transistor + relay
2from machine import Pin, ADC, PWM
3import time
4
5pot = ADC(26)                            # GP26 = ADC0, pot orta ucu / pot wiper
6led = PWM(Pin(15))                       # GP15, 220 Ω üzerinden LED / LED via 220 Ω
7led.freq(1000)                           # 1 kHz PWM
8button = Pin(14, Pin.IN, Pin.PULL_UP)    # diğer bacak GND'ye / other leg to GND
9relay = Pin(16, Pin.OUT, value=0)        # 470 Ω ile 2N2222A beyzine / to the 2N2222A base via 470 Ω
10
11relay_on = False
12last = 1
13last_print = time.ticks_ms()
14
15while True:
16    raw = pot.read_u16()                 # 0-65535
17    led.duty_u16(raw)                    # parlaklık / brightness
18
19    now = button.value()
20    if now == 0 and last == 1:           # basıldı / pressed
21        time.sleep_ms(30)                # zıplamayı bekle / wait out the bounce
22        if button.value() == 0:
23            relay_on = not relay_on
24            relay.value(1 if relay_on else 0)
25    last = now
26
27    if time.ticks_diff(time.ticks_ms(), last_print) >= 500:
28        last_print = time.ticks_ms()
29        state = "AÇIK / ON" if relay_on else "KAPALI / OFF"
30        print("Pot: {:.2f} V | Röle / relay: {}".format(raw * 3.3 / 65535, state))
31    time.sleep_ms(5)

Arduinoで抵抗とLEDの順方向電圧を測る

Arduinoは、手元の部品を調べる簡単な測定器にもなります。値のわからない抵抗をA1とGNDの間に、値のわかっている10 kΩの抵抗を5VとA1の間に付けます。2本の抵抗が分圧回路になり、未知の抵抗はRx = 10 kΩ × 読み取り値 / (1023 − 読み取り値)で計算できます。未知の抵抗が基準の抵抗に近い(おおよそ1〜100 kΩ)ほど、測定は正確になります。2つ目の測定では、5Vを220 Ωの抵抗を通してLEDのアノードに、カソードをGNDにつなぎ、アノードをA2にもつなぎます。A2で読み取った電圧が、約8〜14 mAでのLEDの順方向電圧です。シリアルモニタを9600ボーで開き、色の違うLEDを1つずつ差し替えて、上の表と比べてみてください。

C++ (Arduino IDE)
1// Arduino ile direnç ve LED ileri gerilimi ölçme / Measuring a resistor and an LED's forward voltage with Arduino
2const float VCC = 5.0;          // Uno besleme gerilimi / Uno supply voltage
3const float R_REF = 10000.0;    // 5V ile A1 arası bilinen direnç / known resistor between 5V and A1
4
5void setup() {
6  Serial.begin(9600);
7}
8
9void loop() {
10  int raw = analogRead(A1);     // bilinmeyen direnç A1 ile GND arasında / unknown resistor between A1 and GND
11  if (raw >= 1023) {
12    Serial.println("Direnç takılı değil / no resistor connected");
13  } else {
14    float rx = R_REF * raw / (1023.0 - raw);   // gerilim bölücü formülü / voltage divider formula
15    Serial.print("R = ");
16    Serial.print(rx, 0);
17    Serial.println(" ohm");
18  }
19
20  float vf = analogRead(A2) * VCC / 1023.0;    // 5V - 220 Ω - A2 - LED - GND
21  Serial.print("LED Vf = ");
22  Serial.print(vf, 2);
23  Serial.println(" V");
24  Serial.println();
25  delay(1000);
26}

テスターで部品を調べる

回路が動かないとき、原因は値の違う部品や壊れた部品であることがよくあります。テスターを使えば、部品を1つ数秒で調べられます。測定は必ず電源を切った状態で行い、できれば部品を回路から外してください。回路の中のほかの部品が測定値に影響するからです。各レンジの使い方はテスターの使い方で詳しく解説しています。

部品テスターのレンジ正常な場合故障している場合
抵抗Ωカラーコードの値に近い(±5%)OL(断線)または大きく違う値
コンデンサ容量(F)またはΩ表示の値に近い。Ωレンジでは低い値から始まって上がっていく0 Ω(ショート)、または本体が膨らんでいる
インダクタΩまたは導通数オーム以下、ブザーが鳴るOL(断線)
ダイオードダイオードテスト一方向で0.5〜0.7 V、逆方向でOL両方向とも0 V、または両方向ともOL
LEDダイオードテスト赤なら1.6〜1.9 Vでかすかに光る、逆方向でOL両方向ともOL
トランジスタ(NPN)ダイオードテストベースからほかの2本の足へ0.5〜0.8 Vコレクタとエミッタの間が0 V(ショート)
リレーΩと導通コイルは約70 Ω、COMとNCの間でブザーが鳴るコイルがOL、または接点でブザーが一度も鳴らない
ヒューズ導通ブザーが鳴り、0 Ωに近い値OL(溶断)
ボタン/スイッチ導通押すと鳴り、離すと鳴らないまったく鳴らない、または鳴りっぱなし
ポテンショメーターΩ両端の足の間は一定。回すとワイパーの値がなめらかに変わる値が飛ぶ、またはOLになる

これらの部品で作れるプロジェクトのアイデア

  • 信号機:3個のLEDと3本の220 Ωの抵抗で作る、最初の順次出力のプロジェクトです。手順はArduinoで信号機にあります。
  • 自動常夜灯:LDRと10 kΩの抵抗で作った分圧回路が暗さを検知し、トランジスタで12 VのLEDテープを点灯させます。
  • Arduinoなしの点滅回路:NE555と2本の抵抗、1個のコンデンサで、1秒に1回点滅するLEDを作ります。RとCを変えれば周波数を調整できます。
  • ナイトライダー風LED:74HC595を使って、わずか3本のピンで8個のLEDを駆動します(Arduinoでナイトライダー風LED)。
  • デジタル電圧計:2本の抵抗による分圧回路で、Arduinoの上限の5 Vを超える電圧を測ります(Arduinoで電圧計を作る)。
  • スマートプラグ:リレーとESP32を使って、スマートフォンからランプを点灯させます。安全上のルールはリレーモジュールとは?にまとめています。

よくある失敗と対処法

症状考えられる原因対処
LEDが一瞬光って消える、またはまったく点かない抵抗なしでつないだ、または逆向きに付けた長い足(アノード)をピンへ、短い足をGNDへ。間に220 Ωを入れる
抵抗が熱くなる、または黒ずむ電力が1/4 Wを超えているP = I² × Rで計算し、1/2 Wか1 Wの抵抗を選ぶ
電解コンデンサが膨らんだ、または破裂した逆向きにつないだ、または耐圧を超えた帯のある足をGNDへ。耐圧が回路の電圧の1.5倍以上の部品を使う
リレーがオフになるとArduinoがリセットするフライバックダイオードがないコイルに1N4007を逆向きに並列につなぐ。カソードをプラス側へ
7805が触れないほど熱くなる入出力の電圧差と電流が大きすぎる放熱器を付ける、入力電圧を下げる、またはLM2596などのスイッチングレギュレーターを使う
1回押しただけで何回も検出される接点のチャタリング20〜50 msのソフトウェアによるチャタリング対策を入れる
何もつないでいないピンがランダムにHIGHとLOWを読むプルアップ抵抗もプルダウン抵抗もないINPUT_PULLUPを使うか、10 kΩの抵抗を入れる
MOSFETが熱くなり、負荷に十分な電力が届かないロジックレベルの品種ではなく、ゲート電圧が低すぎるIRLZ44Nなどのロジックレベルの品種を選ぶ
ICが動かない、または熱くなる逆向きに差している(1番ピンの位置が違う)切り欠きと点を確認し、データシートで電源ピンを確かめる
新しい部品を使う前に、型番でデータシートを開き、最大電圧、最大電流、ピン配置の3つの値を確認してください。この3つを押さえておけば、よくある失敗のほとんどを回路を組む前に防げます。簡単な計算はオームの法則計算ツールと直列・並列の抵抗計算ツールでできます。

基本的な電子部品を覚えることは、言語のアルファベットを覚えるようなものです。抵抗、コンデンサ、ダイオード、トランジスタなどが何をするのかがわかれば、新しい回路図やモジュールもずっと理解しやすくなります。次のステップとして、各部品の詳しい記事を順に読んだり、キルヒホッフの法則で回路の計算に進んだり、Arduinoスターターキットのガイドでどの部品を買うかを決めたりできます。BlueGraysアプリでは、LEDの点滅、ボタンでLEDを制御、LDRの常夜灯、ポテンショメーターで動かすサーボ、リレーで商用電源のランプをスイッチするなど、これらの部品を使ったプロジェクトを、回路図とコード付きでステップごとに見られます。

よくある質問

基本的な電子部品とは何ですか?

最も基本的な電子部品は、抵抗、コンデンサ、インダクタ、ダイオード、LED、トランジスタ、MOSFET、集積回路、リレー、電圧レギュレーター、ヒューズ、ボタンとスイッチ、ポテンショメーター、水晶振動子です。これに、センサー、ブザー、スピーカー、フォトカプラなどの特定用途の部品が加わります。それぞれに固有の回路記号と部品記号の文字があります。

能動部品と受動部品の違いは何ですか?

受動部品はエネルギーを生み出さず、信号を増幅することもできません。抵抗、コンデンサ、インダクタがこのグループです。能動部品は電源からのエネルギーを使って、別の電流を制御したり増幅したりします。トランジスタ、MOSFET、ICは能動部品です。ダイオードとLEDには増幅作用はありませんが、半導体であるため、多くの教科書では能動部品に数えられています。

抵抗とコンデンサの違いは何ですか?

抵抗は電流をさまたげ、エネルギーを熱に変えます。単位はオームです。コンデンサは電界にエネルギーをため、充電されると直流を通さなくなり、交流とノイズは通します。単位はファラドです。2つを組み合わせると、時定数τ = R × Cを使ったタイマー回路やフィルター回路になります。

回路図のR、C、L、D、Qは何を意味しますか?

部品記号の文字です。Rは抵抗、Cはコンデンサ、Lはインダクタ、Dはダイオード、Qはトランジスタを表します。ICはUまたはIC、リレーはK、ヒューズはF、スイッチはSまたはSW、水晶振動子はYまたはXで表します。文字のあとの番号で、同じ種類の部品を区別します(R1、R2、R3)。

インダクタは何をする部品ですか?

インダクタは電流の急な変化に逆らい、磁界の中にエネルギーをためます。スイッチング電源でのエネルギーの受け渡し、高周波ノイズの除去、そしてリレー、モーター、スピーカーなどの部品で磁界を作るのに使われます。単位はヘンリー(H)です。

Arduinoにはどんな電子部品が必要ですか?

始めるには、Arduino Uno、ブレッドボード、ジャンパーワイヤー、220 Ω・1 kΩ・10 kΩの抵抗、LED、ボタン、10 kΩのポテンショメーター、100 nFと100 µFのコンデンサ、1N4007ダイオード、BC547か2N2222Aのトランジスタ、リレーモジュールがあれば十分です。これらの部品で、LED、ボタン、アナログ入力、リレー制御のプロジェクトをすべて作れます。

全プロジェクトを見る
LEDの点滅
#1初級

LEDの点滅

電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

4.6(188)
1127
ボタンでLEDを点灯(押している間のみ)
#9初級

ボタンでLEDを点灯(押している間のみ)

呼び鈴のように、押している間は点灯し、離すと消灯します。Arduinoはボタンの状態を常に読み取り、押されている間はLEDを点灯させ、指を離した瞬間に消灯させます。このシンプルな回路で、ボードが外部からの操作を検知する仕組みを学べます。

4.8(113)
229
LDRで作る常夜灯
#12初級

LDRで作る常夜灯

暗くなると自動で点灯し、朝になると消灯する小さな常夜灯です。光センサーが部屋の明るさを測定し、Arduinoが十分に暗くなったらLEDを点灯させ、明るくなったら消灯させます。街灯が夕方になると自動で点灯する仕組みも理解できます。

4.8(102)
205
Raspberry Pi Picoで外付けLEDを点灯(ブレッドボード)
#148初級

Raspberry Pi Picoで外付けLEDを点灯(ブレッドボード)

Picoの内蔵LEDの次は、ブレッドボードに外付けLEDを接続し、GP14ピンで制御します。このプロジェクトでは、Picoの汎用GPIOピンを出力として使う方法、LEDの極性(長い足=アノード/+、短い足=カソード/−)、電流制限抵抗(220Ω)が必要な理由を学びます。抵抗を入れないと、LEDに過大な電流が流れて壊れることがあります。回路はとても簡単です。Pico GP14 → 220Ω抵抗 → LED(+)→ LED(−)→ Pico GND。Wokwiでシミュレーションできます。

4.5(2)
7
ESP32でLEDを点滅
#103初級

ESP32でLEDを点滅

ESP32のGPIO出力の基本を学びます。デジタルピンからLEDを点灯・消灯させて、点滅させます。Arduino UNOの定番のLED点滅プロジェクトのESP32版です。Arduino環境で使う基本的な点滅コマンドは同じですが、ESP32のピン配置と3.3 VのGPIO電圧レベルはArduino UNOとは異なります。

4.7(37)
99
ボタンを押している間だけ220V電球を点灯
#19上級
プレミアム

ボタンを押している間だけ220V電球を点灯

ボタンを押している間は実際の220ボルトの電球が点灯し、離すとすぐに消灯します。Arduinoの小さな信号では電球を直接点灯できないため、電気で動くスイッチであるリレーを間に入れ、電球の回路を開閉します。ボードで家庭の照明を操作するための第一歩です。家庭用電源を扱う際は十分に注意し、不安がある場合は詳しい人に手伝ってもらってください。

4.4(30)
38
ポテンショメーターでサーボモーターを操作
#36初級
プレミアム

ポテンショメーターでサーボモーターを操作

ポテンショメーターのつまみを回すと、サーボモーターのアームもそれに合わせて回ります。つまみの一方の端が0度、もう一方の端が半回転に対応します。Arduinoがつまみの位置を常に読み取り、サーボモーターが動きにすぐ反応します。ロボットアームや回転式カメラ台などのプロジェクトへの第一歩です。

4.6(37)
52
ESP32と可変抵抗でLEDの明るさを制御(アナログ→PWM)
#115中級
プレミアム

ESP32と可変抵抗でLEDの明るさを制御(アナログ→PWM)

可変抵抗を使ってLEDの明るさをアナログ操作で調整します。ESP32のADCピンで可変抵抗からの0-3.3Vの電圧を読み取り、PWM(パルス幅変調)信号に変換してLEDに出力します。可変抵抗を回すと、LEDが徐々に明るくなったり暗くなったりします。Arduino Core 3.0+ではanalogWrite()を直接使えます。ESP32-S2/S3ではADCの分解能を12ビットに固定します。

4.5(19)
32