こんにちは、タクト工房へようこそ!今回は、Raspberry Piを使ってスイッチでLEDを点滅させるプロジェクトに挑戦します。スイッチを押すとLEDが点灯し、スイッチを離すとLEDが消える仕組みを作ります。また、プルアップ抵抗とプルダウン抵抗の違いを理解し、実際の回路に組み込んでみます。
※この記事は、アフリエイト広告を利用しています
必要な材料と道具
- Raspberry Pi
- ブレッドボード
- LED
- 抵抗
- タクタイルスイッチ
- ジャンパーワイヤー



タクタイルスイッチとは
タクタイルスイッチは、ボタンを押している間だけ、ONになり、離すとOFFになるスイッチです。スイッチ端子の1番と2番は内部で接続され、3番と4番も同様に接続されています。簡単に記号で表すと下の図のようになります。

プルアップ抵抗とプルダウン抵抗の概要と必要性
スイッチやセンサーなどからRaspberry Piなどのマイコンに外部入力を行う際に、プルアップ抵抗やプルダウン抵抗を使用します。使用しないと、GPIOピンが未接続(フロート状態)になります。GPIOピンが未接続の場合、電圧が不安定になり、予期しない動作を引き起こす可能性があります。そのため、プルアップ抵抗やプルダウン抵抗を使用して、ピンを確実にHIGHまたはLOWの状態に保つことが重要です。

プルアップ抵抗とは?
プルアップ抵抗は、入力ピンを高い電圧(通常は3.3Vや5V)に接続するための抵抗です。GPIOピンが未接続の場合、入力はHIGHになります。

プルダウン抵抗とは?
プルダウン抵抗は、入力ピンを低い電圧(GND)に接続するための抵抗です。これにより、GPIOピンが確実にLOW状態に保たれます。スイッチが押されると、ピンがVccに接続されてHIGH状態になります。

LEDの点灯、消灯
では、実際にスイッチを使ってLEDを点灯・消灯させましょう。今回はプルダウン抵抗を使って回路を設計します。また、前回のプロジェクトで使用した3つのLEDを使った回路を再利用します。まだ見ていない方は、下の記事を参考にしてください。
回路設計
配線は以下のように接続します。もし、RaspberryPiのピンの配置が分からない方は、下の記事を参考にしてください。


プルダウン抵抗の大きさを決めていきたいと思います。RaspberryPiのGPIO21に流れる電流は小さいほうが電源の負荷が低減されるので、今回は流れる電流を1mAとします。オームの法則により、
$$R=\frac{3.3V}{1.0×10^{-3}}=3.3kΩ$$
とします。
また、GPIOの内部抵抗を使う場合、今回でいう、GPIO21に接続されている抵抗を削除することができます。内部抵抗を有効にすると、GPIO21は上の図と同じように内部で抵抗と接続されます。これによって部品点数を減らすことができます。今回は内部抵抗を使わずやっていきます。
プログラム
次に、Raspberry Piに以下のC言語コードを入力します。
#include <wiringPi.h>
#include <stdio.h>
#define RED_PIN 17 // GPIO 17
#define GREEN_PIN 27 // GPIO 27
#define BLUE_PIN 22 // GPIO 22
#define BUTTON_PIN 21
int main(void) {
wiringPiSetupGpio();
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(BUTTON_PIN,INPUT);
//pullUpDnControl(BUTTON_PIN, PUD_DOWN); 内部抵抗を使う場合
while (1) {
if (digitalRead(BUTTON_PIN) == HIGH) { // スイッチが押されたとき
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE, HIGH); // LEDを点灯
} else {
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW); // LEDを消灯
}
delay(100); // 100ミリ秒待機
}
return 0;
}
コンパイルと実行
入力が完了したら、メニューの「ビルド>Build」をクリックします。コンパイルが完了したら「ビルド>Execute」をクリックし、プログラムを実行します。実行し、ボタンを押すとLEDが点灯し、離すと消灯します。

これで、タクタイルスイッチを使ってLEDを点灯・消灯させるプロジェクトが完成です。プルアップ抵抗とプルダウン抵抗の違いを理解し、適切に使い分けることで、より安定した電子回路を設計できます。ぜひ、自分で試してみてください!
コメント