注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32について、仲間たちと一緒にさらに深く学びましょう。

なぜ参加するべきか?

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

  • 学び&共有:スキルを向上させるためのヒントやチュートリアルを交換しましょう。

  • 限定プレビュー:新製品の発表や先行情報をいち早く入手できます。

  • 特別割引:最新の製品に対する専用の割引を楽しめます。

  • 季節限定プロモーションやプレゼント:プレゼント企画やホリデープロモーションに参加しましょう。

👉 一緒に探求し、創造してみませんか?[ここ]をクリックして、今すぐ参加しましょう!

2.15 トランジスタの2種類:NPNとPNP

このレッスンでは、 S8050(NPN)S8550(PNP) という2種類のトランジスタを紹介します。トランジスタは、電子スイッチとしてよく使用され、これらのトランジスタを使って、ボタン入力に基づいてLEDを制御する方法を学びます。

img_NPN&PNP

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

  • PNP(S8550):PNPトランジスタでは、 ベース に低い信号が入力されると、 エミッタ から コレクタ に電流が流れます。

両方のトランジスタは似たような目的で使用されますが、信号制御の仕方が逆になります。これらのトランジスタを使って、ボタン入力に基づいてLEDを制御する方法を見ていきましょう。

トランジスタ

必要なコンポーネント

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

セットで購入すると便利です。こちらのリンクから購入できます:

名前

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

購入リンク

Pico 2 Wスターターキット

450+

Pico 2 W Kit

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

番号

コンポーネント紹介

数量

購入リンク

1

Pico 2 Wの概要

1

2

マイクロ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 ファイルは pico-2w-kit-main/arduino/2.15_transistor パスにあります。

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

  • アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と適切なポートを選択することを忘れないでください。

// ピンの定義
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)、トランジスタがオフになり、ボタンが押されていないときにトランジスタがオンになります。

    digitalWrite(transistorPin, buttonState);
    

さらに探求してみよう

  • より大きな負荷を制御する:

    トランジスタを使って、Picoが直接提供できる以上の電流を必要とするデバイス(モーターやリレーなど)を制御します。

  • トランジスタを増幅器として使用する:

    トランジスタがどのように信号を増幅できるかを探ります。

  • ダーリントンペアを使って実験する:

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

結論

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