見出し画像

Raspberry PiでのLチカ!LEDを点滅させてみよう(C言語)

 こんにちは、タクト工房へようこそ!今日は、Raspberry Piを使ってLEDを点滅させるプロジェクト、通称「Lチカ」に挑戦してみましょう。WiringPiをインストールがまだでしたら、下の記事を参考にインストールを行ってください。



必要な材料と道具

  • Raspberry Pi

  • ブレッドボード

  • LED

  • 抵抗

  • ジャンパーワイヤー

LEDとは

 LED(発光ダイオード)は、電気エネルギーを光に変換する電子部品です。LEDは非常に効率的で、低消費電力、高輝度、長寿命などの特徴があり、信号機、照明、イルミネーション、ディスプレイなど様々な製品に使用されています。

LEDの構造

 以下の写真のように、LEDにはアノード(正極)とカソード(負極)があります。通常、長い足がアノード、短い足がカソードです。また、LEDは負の電荷を持った「自由電子」がたくさんあるN型半導体と、自由電子が不足し、あたかも正の電荷を帯びた、「正孔(ホール)」と呼ばれるものが多くあるP型半導体を接合させたPN接合した構造を持っています。


発光のメカニズム

 LEDの発光は、P型半導体とN型半導体の接合部で発生します。LEDのアノードを電源のプラス側に、カソードを電源のマイナス側に接続して電圧を加えるとき、その電圧の向きを「順方向」といいます。

1.順方向電圧の回路:
 順方向電圧をかけた場合、P型半導体の正孔とN型半導体の自由電子が接合部で再結合します。この再結合によりエネルギーが放出され、光として観測されます。以下の図は、順方向電圧をかけたときの回路を示しています。

順方向電圧

2.逆方向電圧の回路:
 逆方向電圧をかけた場合、P型半導体の正孔とN型半導体の自由電子は接合部から離れる方向に引っ張られ、電流は流れません。逆方向電圧をかけ続けると、LEDが破損することがあります。以下の図は、逆方向電圧をかけたときの回路を示しています。

逆方向電圧

回路設計(抵抗の求め方)

 LED回路の設計を行います。LEDの回路は以下の図のような回路を作ります。

LED回路

 LEDに電流が流れすぎると壊れる恐れがあるため、抵抗を使って、流れる電流を抑制します。抵抗の求め方は以下の式から求めることができます。

$$
R=\frac{V-V_F}{I_F}
$$

 ここで、Rは抵抗、Vは電源の電圧、$${V_F}$$は順方向電圧、$${I_F}$$は順方向電流を表しています。RaspberryPiの電源電圧は3.3Vになっています。また、順方向電圧、順方向電流はデータシートから得られることができます。今回記事で使用するLEDはそこら辺にあったものを使用するため、一般的な赤色のLEDの順方向電圧は2V、順方向電流は20mAのため、この値を使用します。式に代入すると、次のように抵抗が求まります。

$$
R=\frac{3.3-2}{0.02}=65
$$

計算の結果、65Ωとなったため、この値より大きな抵抗を使用します。抵抗の大きさによって、明るさが変わるので、いろいろ試してみてください。

LED点滅

 いよいよLチカを行います。以下の手順で進めます。

ステップ1:配線のセットアップ

 まず、ブレッドボードにLEDと抵抗をセットします。以下の図のように配線を行ってください。Raspberry PiのGPIOの配置が分からなければ、以下の記事を参考にしてください。

 写真と全く同じ配線をする必要はありませんが、LEDのカソード側をGNDに接続し、反対側の抵抗を経由してRaspberry Piの出力ピンに接続してください。今回はGPIO 4に接続します。

ステップ2:プログラムを書く

 次に、Raspberry Piに以下のC言語コードを入力します。このコードは、WiringPiを使ってLEDを1秒間隔で点滅させるプログラムです。

#include<wiringPi.h>
#include<stdio.h>

#define LED_PIN 4

int main(void){
	wiringPiSetupGpio();
	pinMode(LED_PIN,OUTPUT);
	while(1){
		digitalWrite(LED_PIN,HIGH);
		delay(1000);
		digitalWrite(LED_PIN,LOW);
		delay(1000);
	}
	return 0;
}

プログラムの説明

  • wiringPiSetupGpio(); WiringPiライブラリを使用する際に、Raspberry Piのピン番号をBCM(Broadcom)番号で設定するための関数です。BCM番号は、Raspberry Piのチップ上のGPIO番号に直接対応しています。

  • pinMode(LED_PIN, OUTPUT): GPIOピンを出力モードに設定します。

  • digitalWrite(LED_PIN, HIGH): GPIOピンをHIGH(3.3V)に設定し、LEDを点灯させます。

  • delay(1000): 1秒間(1000ミリ秒)待機します。

  • digitalWrite(LED_PIN, LOW): GPIOピンをLOW(0V)に設定し、LEDを消灯させます。

  • delay(1000): 再び1秒間待機します。このループは無限に繰り返され、LEDが1秒間隔で点滅します。

ステップ3:コンパイルと実行

 入力が完了したら、メニューの「ビルド>Build」をクリックします。コンパイルが完了したら「ビルド>Execute」をクリックし、プログラムを実行します。実行するとLEDが点滅します。もし、点滅しない場合、ピンの接続位置が合っているか確認してください。


以上でLチカプロジェクトの説明は終わりです。ぜひ、自分でいろいろ試してみて楽しんでください!

この記事が気に入ったらサポートをしてみませんか?