5.6 トランジスタの二種類

このキットには、二種類のトランジスタ、S8550とS8050が装備されており、前者がPNP型で、後者がNPN型です。外見はとても似ているため、ラベルを注意深く確認する必要があります。 Highレベルの信号がNPNトランジスタを通ると、エネルギーが供給されます。しかし、PNP型はLowレベルの信号で制御が必要です。これらのトランジスタは、この実験のように、非接触型スイッチで頻繁に使用されます。

トランジスタの使用方法を理解するために、LEDとボタンを使いましょう!

必要な部品

このプロジェクトには、以下のコンポーネントが必要です。

キット全体を購入すると確かに便利です。こちらがリンクです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

抵抗器

BUY

LED

BUY

ボタン

BUY

トランジスタ

BUY

利用可能なピン

  • 利用可能なピン

    こちらは、このプロジェクトのためのESP32ボード上の利用可能なピンのリストです。

    入力用

    IO14, IO25, I35, I34, I39, I36, IO18, IO19, IO21, IO22, IO23

    出力用

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

  • 条件付き使用ピン(入力)

    以下のピンは内蔵のプルアップまたはプルダウン抵抗があるため、 入力ピンとして使用する場合

    条件付き使用ピン

    説明

    IO13, IO15, IO2, IO4

    47Kの抵抗でプルアップし、デフォルト値を高にします。

    IO27, IO26, IO33

    4.7Kの抵抗でプルアップし、デフォルト値を高にします。

    IO32

    1Kの抵抗でプルダウンし、デフォルト値を低にします。

  • ストラッピングピン(入力用)

    ストラッピングピンは、デバイスの起動時(つまり、電源オンリセット時)に特定のブートモードを決定するために使用される特別なピンのセットです。

    ストラッピングピン

    IO5, IO0, IO2, IO12, IO15

    一般に、これらを入力ピンとして使用することは 推奨されません。これらのピンを使用したい場合は、ブートプロセスへの影響を考慮してください。詳細は ストラッピングピン セクションを参照してください。

NPN(S8050)トランジスタの接続方法

../../_images/circuit_5.6_S8050.png

この回路では、ボタンを押すとIO14が高くなります。

IO26をプログラムして high を出力することで、1kの電流制限抵抗(トランジスタを保護するため)を経て、S8050(NPNトランジスタ)が導通し、LEDが点灯します。

../../_images/5.6_s8050_bb.png

PNP(S8550)トランジスタの接続方法

../../_images/circuit_5.6_S8550.png

この回路では、IO14はデフォルトで低く、ボタンを押すと高くなります。

IO26をプログラムして low を出力することで、1kの電流制限抵抗(トランジスタを保護するため)を経て、S8550(PNPトランジスタ)が導通し、LEDが点灯します。

この回路と前の回路の唯一の違いは、前の回路ではLEDのカソードが S8050(NPNトランジスタ)コレクタ に接続されているのに対し、この回路では エミッタ に接続されていることです。

../../_images/5.6_s8550_bb.png

コード

注釈

  • esp32-starter-kit-main\micropython\codes パスにある 5.6_transistor.py ファイルを開くか、コードをThonnyにコピー&ペーストします。次に、「Run Current Script」をクリックするかF5キーを押して実行します。

  • 右下隅にある「MicroPython (ESP32).COMxx」インタプリタを選択してください。

import machine

button = machine.Pin(14, machine.Pin.IN)   # Button
led = machine.Pin(26, machine.Pin.OUT)  # LED

# Start an infinite loop
while True:
    # Read the current value of the 'button' object (0 or 1) and store it in the 'button_status' variable
    button_status = button.value()
    # If the button is pressed (value is 1)
    if button_status == 1:
        led.value(1) # Turn the LED on
    # If the button is not pressed (value is 0)
    else:
        led.value(0)            # turn the LED off

二種類のトランジスタは同じコードを使用して制御できます。 ボタンを押すと、ESP32はトランジスタに高レベルの信号を送ります。 それを放すと、低レベルの信号を送ります。

  • S8050(NPNトランジスタ)を使用した回路は、ボタンを押すと点灯し、高レベル導通状態であることを示します。

  • S8550(PNPトランジスタ)を使用した回路は、ボタンを放すと点灯し、低レベル導通状態であることを示します。