第1回 LED

1.やってみよう

(1) 図1に示す実験回路を作りなさい。



図1.実験回路

(2) Arduinoのプログラミング環境に、つぎのプログラムを入力しなさい。
void setup()
{
  pinMode(13, OUTPUT);
}
 
void loop()
{
  digitalWrite(13, 1);
  delay(1000);
  digitalWrite(13, 0);
  delay(1000);
}
(3) 書き込みボタンを押してプログラムを実行し、LEDが1秒ごとに繰り返し点滅することを確認しなさい。

2.解説

 図2(a)に示すように、D13端子に1を出力し、D13端子の電位を5Vにすると、アノードからカソードに向かって電流が流れることになり、LEDは発光することになる。一方、図2(b)に示すように、D13端子に0を出力し、D13端子の電位を0Vにすると、アノードとカソードの電位は等しくなり、電流が流れなくなるため、LEDは発光しない。



図2.ディジタル出力:(a) 1が出力される場合, (b) 0が出力される場合

 このプログラムは、digitalWrite関数を使ってD13端子に0または1のディジタル信号を出力した後、delay関数を使って1000ms、すなわち1秒間の時間待ちを行うことで、一定の時間間隔でLEDを点滅させるものになっている。
 LEDの明るさはLEDに流れる電流の大きさに比例する。そのため、電流を大きくするとLEDはそれだけ明るく発光することになるが、電流を大きくしすぎるとLEDは壊れてしまうことに注意しなければならない。
 明るさや色など、LEDにはさまざまな種類があり、それぞれ違いはあるが、LEDに流すことができる電流の上限は、一般に10mA程度になっている。こうした条件を考慮し、LEDを保護するため、LEDに流れる電流を制限するのが、マイコンボードに抵抗を接続する理由になっている。
 LEDを発光させるのに必要な電圧は、一般に2V程度になっている。そのため、図3に示すように、LEDに直列に抵抗を接続すると、電源の電圧が5Vのとき、抵抗には3V程度の電圧がかかることになる。このとき、抵抗の値を2kΩとすると、LEDに流れる電流は「オームの法則」から1.5mAと計算することができる。



図3.LEDに直列に抵抗を接続したときの電圧と電流の関係

3.課題

(1) 3個のLEDを組み合わせてさまざまなパターンで発光させるプログラムを作りなさい。

(2) フルカラーLEDを使って、1秒ごとに、消灯、ブルー、レッド、マゼンタ、グリーン、シアン、イエロー、ホワイトの順番で色を変化させるプログラムを作りなさい。

4.ヒント

 UNOの場合、ディジタル出力に対応しているのは、基本的にD0端子からD13端子まで、14個のディジタル端子になっている。3個のLEDを発光させるには、D13端子のほかに、D12端子やD11端子など、ほかのディジタル端子にもLEDを接続する必要がある。
 フルカラーLEDは、ひとつのパッケージのなかに、R(レッド)、G(グリーン)、B(ブルー)のLEDをまとめたものになっている。図4に示すように、こうした光の三原色を混ぜ合わせると、さまざまな中間色を発光させることができる。



図4.フルカラーLEDによる中間色の発光


Last Modified: May 10 12:00 JST 2016 by Naofumi Aoki
E-mail: aoki@ime.ist.hokudai.ac.jp