注釈

こんにちは!SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community(Facebook)へようこそ!Raspberry Pi、Arduino、ESP32に情熱を持つ皆さんと共に、さらに深く探求しましょう。

なぜ参加するのか?

  • 専門的なサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:技術的なヒントやチュートリアルを交換し、スキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行公開に早期アクセスができます。

  • 特別割引:最新製品を独占的な割引価格で楽しむことができます。

  • 祭りのプロモーションとギブアウェイ:ギブアウェイやホリデープロモーションに参加しましょう。

👉 私たちと探索し、創造してみませんか?[こちら]をクリックして今日から参加しましょう!

2.15 トランジスタの2タイプ:NPNとPNP

このレッスンでは、トランジスタの2つのタイプ、 S8050(NPN)S8550(PNP) について学びます。トランジスタは一般的に電子スイッチとして使用され、この両タイプを使用してボタンでLEDを制御する方法を見ていきます。

img_NPN&PNP

  • NPN (S8050): このタイプのトランジスタは、 ベース に高い信号が適用されると コレクター から エミッター へ電流が流れることを可能にします。

  • PNP (S8550): PNPトランジスタの場合、 ベース に低い信号が適用されると エミッター から コレクター へ電流が流れます。

両方のトランジスタは似た目的で使われますが、信号制御においては逆の動作をします。これらのトランジスタを使用して、ボタンの入力に基づいてLEDを制御しましょう。

必要なもの

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

全てのキットを購入するのが便利です。リンクはこちらです:

名称

このキットに含まれるアイテム

リンク

Newton Lab Kit

450+

Newton Lab Kit

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

SN

コンポーネント

数量

リンク

1

Raspberry Pi Pico 2

1

購入

2

Micro USB ケーブル

1

3

ブレッドボード

1

購入

4

ジャンパーワイヤー

数本

購入

5

抵抗器

3(220Ω, 1KΩ, 10KΩ)

購入

6

LED

1

購入

7

ボタン

1

購入

8

トランジスタ

1(S8050/S8550)

購入

NPN (S8050) トランジスタの配線

sch_s8050

この回路では、ボタンを押すと GP14 ピンに 高い信号 が送信されます。GP15が高い信号を出力すると、NPNトランジスタが導通し、LEDを通って電流が流れ、LEDが点灯します。

wiring_s8050

PNP (S8550) トランジスタの配線

sch_s8550

PNPトランジスタ回路では、ボタンはGP14に低い信号を出力し、押されると高くなります。GP15が 低い信号 を出力すると、PNPトランジスタが導通し、電流が流れてLEDが点灯します。

wiring_s8550

コードの書き方

注釈

  • 2.15_transistor.ino ファイルを newton-lab-kit/arduino/2.15_transistor から開くことができます。

  • または、このコードを Arduino IDE にコピーしてください。

  • Raspberry Pi Pico 2 ボードを選択し、適切なポートを設定した後、「Upload」をクリックしてください。

// ピンの定義
const int buttonPin = 14;  // ボタンはGP14に接続されています
const int transistorPin = 15;  // トランジスタのベースはGP15に接続されています

int buttonState = 0;  // ボタンの状態を保持する変数

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(transistorPin, OUTPUT);
}

void loop() {
  // ボタンの状態を読み取る
  buttonState = digitalRead(buttonPin);

  // トランジスタを制御
  digitalWrite(transistorPin, buttonState);

  delay(10);  // デバウンシングのための小さな遅延
}

結果

  • NPNトランジスタ (S8050) の場合:

    ボタンを押すと、LEDが点灯します。 ボタンを離すと、LEDが消灯します。

  • PNPトランジスタ (S8550) の場合:

    ボタンを押すと、LEDが消灯します。 ボタンを離すと、LEDが点灯します。

コードの理解

  1. ボタンの状態の読み取り:

    ボタンの現在の状態を読み取ります。

    buttonState = digitalRead(buttonPin);
    
  2. トランジスタの制御:

    • NPNトランジスタの場合:ボタンが押されている( buttonState がHIGH)とき、トランジスタがオンになり、電流が流れてLEDが点灯します。

    • PNPトランジスタの場合:ボタンが押されている( buttonState がHIGH)とき、トランジスタがオフになり(LOW)、ボタンが押されていないときにトランジスタがオンになります。

    digitalWrite(transistorPin, buttonState);
    

さらなる探求

  • 大きな負荷の制御:

    Picoが直接提供できるよりも多くの電流を必要とするデバイス(モーターやリレーなど)を制御するためにトランジスタを使用します。

  • トランジスタをアンプとして使用:

    トランジスタを使用して信号を増幅する方法を探求します。

  • ダーリントンペアの実験:

    2つのトランジスタを使用してダーリントンペアを作成し、より高い電流ゲインを得ます。

まとめ

このレッスンでは、Raspberry Pi Picoとボタンを使用してLEDを制御するために、NPNおよびPNPトランジスタの使用方法を学びました。NPNとPNPトランジスタの違いを理解することは、スイッチングや増幅が必要な回路を設計する際に重要です。