注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32について、仲間たちと一緒にさらに深く学びましょう。
なぜ参加するべきか?
専門的なサポート:コミュニティやチームの助けを借りて、購入後の問題や技術的な課題を解決します。
学び&共有:スキルを向上させるためのヒントやチュートリアルを交換しましょう。
限定プレビュー:新製品の発表や先行情報をいち早く入手できます。
特別割引:最新の製品に対する専用の割引を楽しめます。
季節限定プロモーションやプレゼント:プレゼント企画やホリデープロモーションに参加しましょう。
👉 一緒に探求し、創造してみませんか?[ここ]をクリックして、今すぐ参加しましょう!
2.15 トランジスタの2種類:NPNとPNP
このレッスンでは、 S8050(NPN) と S8550(PNP) という2種類のトランジスタを紹介します。トランジスタは、電子スイッチとしてよく使用され、これらのトランジスタを使って、ボタン入力に基づいてLEDを制御する方法を学びます。
NPN(S8050):このタイプのトランジスタは、 ベース に高い信号が入力されると、 コレクタ から エミッタ に電流が流れることを許可します。
PNP(S8550):PNPトランジスタでは、 ベース に低い信号が入力されると、 エミッタ から コレクタ に電流が流れます。
両方のトランジスタは似たような目的で使用されますが、信号制御の仕方が逆になります。これらのトランジスタを使って、ボタン入力に基づいてLEDを制御する方法を見ていきましょう。
必要なコンポーネント
このプロジェクトに必要なコンポーネントは以下の通りです。
セットで購入すると便利です。こちらのリンクから購入できます:
名前 |
このキットに含まれているアイテム |
購入リンク |
|---|---|---|
Pico 2 Wスターターキット |
450+ |
以下のリンクから個別に購入することもできます。
番号 |
コンポーネント紹介 |
数量 |
購入リンク |
|---|---|---|---|
1 |
1 |
||
2 |
マイクロUSBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
3(220Ω、1KΩ、10KΩ) |
||
6 |
1 |
||
7 |
1 |
||
8 |
1(S8050/S8550) |
NPN(S8050)トランジスタの接続方法

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

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

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

コードの記述
注釈
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が点灯します。
コードの理解
ボタンの状態を読み取る:
ボタンの現在の状態を読み取ります。
buttonState = digitalRead(buttonPin);
トランジスタを制御する:
NPNトランジスタの場合:ボタンが押されていると(
buttonStateがHIGH)、トランジスタがオンになり、電流が流れてLEDが点灯します。PNPトランジスタの場合:ボタンが押されていると(
buttonStateがHIGH)、トランジスタがオフになり、ボタンが押されていないときにトランジスタがオンになります。
digitalWrite(transistorPin, buttonState);
さらに探求してみよう
より大きな負荷を制御する:
トランジスタを使って、Picoが直接提供できる以上の電流を必要とするデバイス(モーターやリレーなど)を制御します。
トランジスタを増幅器として使用する:
トランジスタがどのように信号を増幅できるかを探ります。
ダーリントンペアを使って実験する:
2つのトランジスタを使用して、より高い電流利得を得るダーリントンペアを作ります。
結論
このレッスンでは、NPNおよびPNPトランジスタを使用して、Raspberry Pi Picoとボタンを使ってLEDを制御する方法を学びました。NPNとPNPトランジスタの違いを理解することは、スイッチングや増幅を必要とする回路設計において重要です。
