ブレッドボードのLEDを点滅させる(Arduino)

まずは、LEDが正常に点滅するかテストします。

回路図のように配線します。
(図では、赤線が+側、緑線が-側です。)
   この回路図の作図には fritzing を利用させて頂いております。
   https://fritzing.org/home/

テスト用回路図
テスト用回路図

この接続は、
Arduinoの常時5V(+:赤線)ピン出力と、
GND(グランド)ピン(-:緑線)を接続して、
LED等の部品の確認のためLEDを点灯させてみるものです。

私のLEDには極性がありますので、
アノード側(足の長い方)が+になるように配置します。
抵抗は、極性はありませんから向きは問題ありません。
※配線を変更する場合は、
 必ず、Arduinoの電源はOFFして下さい。(USBケーブルを抜く)
 また、ブレッドボードへ外部電源等で電源供給を行っている場合も、
 その電源を必ずOFFします。
※抵抗を2本並列に入れれば165Ωになりますが、
 少し暗いですが点灯しないわけではないので、
 330Ωの抵抗1本を使用することにします。

電源を入れる前に、
・ピンの接続状態(ボードにしっかりと差し込まれているか)
・LED発光ダイオードの向き(アノード側が+側になっているか)
・抵抗の抵抗値は適正か(指定範囲の値のものか)
・ブレッドボード上の配線に間違いはないか
・Arduino上のピンの差し込み位置に間違いはないか
などを確認して下さい。
また、電源投入後に点灯しない場合は再確認して下さい。

Arduinoの電源を入れます。(USBケーブルを接続する)
これでLEDが点灯すれば、LEDや回路は正常です。
また、抵抗値を計算せずに抵抗を入れている場合は、
明るさに注意して下さい。
高輝度LEDでもないのにあまりにも明るい場合は、
抵抗値を変更した方が良いかもしれません。
一般的なLEDなら、
150Ω~510Ω程度の抵抗で大丈夫だと思います。

続いて、
Arduinoで制御してLEDを点滅させてみます。

配線の違いによる、点灯・消灯のタイミングの違いを
確認するため、2通りの配線をやってみます。

まず1つめです。

ArduinoとPCとのUSBケーブルを外します。
Arduinoとの配線を回路図のように変更します。
(回では、赤線が+側、緑線が-側です。)

回路図1
回路図1

この時、私のLEDには極性がありますので、
アノード側(足の長い方)が+になるように配置します。
抵抗は、極性はありませんから向きは問題ありません。

デジタル13番ピン(+:赤線)と
GND(グランド)ピン(-:緑線)を接続します。
※GNDピン(-)は、5Vピンの隣に2カ所と
 デジタル13番ピンの隣に1カ所ありますので、
 どのGNDピン(-)に接続しても構いません。

では、ArduinoとPCのUSBケーブルを接続します。
ArduinoIDEで、メユー「ツール」から、
・ボード
・シリアルポート
の設定を行います。

ArduinoIDEでスケッチ(プログラム)します。
デジタル13番ピンを使って、2秒点滅、2秒消灯を
繰り返すプログラムを記述します。

void setup() {
   // put your setup code here, to run once:
   pinMode(13, OUTPUT);  // 13番ピンを出力に割り当て
}
void loop() {
   // put your main code here, to run repeatedly:
   digitalWrite(13, HIGH);   // 点灯
   delay(2000);              // 2秒停止 
   digitalWrite(13, LOW);    // 消灯
   delay(2000);              // 2秒停止
}

ArduinoIDEで記述したプログラムをArduinoへ書き込みます。

この時、Arduino上の13番LEDとブレットボード上のLED点滅が
同じタイミングで点灯・消灯を繰り返していると思います。

digitalWrite(13,HIGH);
の時、Arduino上の13番LED:点灯、ブレットボード上のLED:点灯
digitalWrite(13,LOW);
の時、Arduino上の13番LED:消灯、ブレットボード上のLED:消灯

この回路の接続は、
一方をGND(グランド)ピンに接続しているため、
デジタル13番ピンが、digitalWrite(13,LOW)であるときは、
GND(グランド)ピンと同じ電位(電圧)となり、電位差が生じないので、
電流は流れずLEDは点灯しません。
デジタル13番ピンが、digitalWrite(13,HIGH)であるときは、
GND(グランド)ピンより、デジタル13番ピンの電位(電圧)が高くなり
電位差が生じ、GND(グランド)ピン方向へ電流が流れLEDが点灯します。

回路図1 解説図
回路図1 解説図

2つめです。

ArduinoとPCのUSBケーブルを外します。

Arduinoとの配線を回路図のように変更します。
(図では、赤線が+側、緑線が-側です。)
Arduinoの常時5Vピン(+:赤線)と
デジタル13番ピン(-:緑線)を接続します。

すでにArduinoへ転送済みのスケッチに
変更はありませんから、
回路の変更が完了したら、
ArduinoとPCのUSBケーブルを接続します。

回路図2
回路図2

この時は、
Arduino上の13番LEDとブレットボード上のLED点滅が
反対のタイミングで点灯・消灯を繰り返しています。
・・・同時に点灯せず、交互に点灯・消灯する。

digitalWrite(13,HIGH);
の時、Arduino上の13番LED:点灯、ブレットボード上のLED:消灯
digitalWrite(13,LOW);
の時、Arduino上の13番LED:消灯、ブレットボード上のLED:点灯

この回路の接続は、
一方を常時5Vピンに接続しているため、
デジタル13番ピンは、digitalWrite(13,HIGH)であるときは、
常時5VピンとGND(グランド)ピンは同電位(電圧)となり、
電位差が生じないので電流は流れずLEDは点灯しません。
デジタル13番ピンが、digitalWrite(13,LOW)であるときは、
常時5Vピンより、デジタル13番ピンの電位(電圧)が低くなり、
電位差が生じ、デジタル13番ピン方向へ電流が流れLEDが点灯します。

回路図2 解説図
回路図2 解説図

この2つのどちらが正しいかなどと考えがちですが、
本来は、機器全体の消費電力や待機電力、
また、使用する電子部品の特性などにより決定されます。
何より、回路がシンプルであることと、
まずは、自分に分かりやすいことが第1です。

気がつかれたかと思いますが、
このデジタル13番ピンに接続されたブレットボードのLEDが
電源供給時に一瞬点灯したと思います。
このデジタル13番ピンは、
電源供給時(初期化時)に一瞬、OUTPUT扱いで、HIGHとなます。
そのため、この13番ピンを使用する場合は、
このことを踏まえた上での使用が必要です。

今度は、2つのLEDを1秒毎に交互に点滅させるようにします。
また、デジタルピンもたくさん(0~13)ありますから、
デジタル13番ピンの使用を避けて、別のピンを使用します。

ArduinoとPCのUSBケーブルを外し、
回路図のように配線します。
デジタルピンは、6番、11番を使用します。
回路は、デジタルピンから、GND方向へ電流が流れる
ものとしました。

回路図3
回路図3

スケッチしてみます。

void setup() {
   // put your setup code here, to run once:
   pinMode(6, OUTPUT);  // 6番ピンを出力に割り当て
   pinMode(11, OUTPUT);  // 11番ピンを出力に割り当て
}
void loop() {
   // put your main code here, to run repeatedly:
   digitalWrite(6, HIGH);    // 点灯
   digitalWrite(11,  LOW);   // 点灯
   delay(1000);              // 1秒停止 
   digitalWrite(11, HIGH);   // 点灯
   digitalWrite(6, LOW);     // 消灯
   delay(1000);              // 1秒停止
}

ArduinoとPCのUSBケーブルを接続し、
スケッチをArduinoへ転送(マイコンボードへ書き込み)します。

この時、ブレットボード上の2つのLEDが交互に点滅していると思います。

最後に、この回路図の電圧、電流を測定してみます。

回路図4
回路図4

・A間、B間、C間の各電圧は、
 マルチメーターのレンジを電圧、直流(DC)、
 10V以上のレンジに設定します。
 A、B、Cのところの、電子部品の足に、
 テスターピンをあてて測定します。
 ※+、-を間違えないように注意します。

A間電圧1
A間電圧1
A間電圧2
A間電圧2
B間電圧1
B間電圧1
B間電圧2
B間電圧2
C間電圧1
C間電圧1
C間電圧2
C間電圧2

・A間の電流測定は、
 マルチメーターのレンジを電流、直流(DC)、
 100mA以上のレンジに設定します。
 この図の、LEDのアノード側の足と、
 アノード側に刺さっている抵抗の足を
 ブレッドボードから抜きます。
 抜いたそのその部品の足に、
 抵抗側の足に+、LEDのアノード側の足に-の
 テスターピンをあてて測定します。
 ※このときLEDは点灯します。

A間電流1
A間電流1
A間電流2
A間電流2


・抵抗の値が分からない時は、
 抵抗をカラーコード(帯の色)で計算できますが、
 マルチメーターのレンジを抵抗(Ω)、
 レンジは、×1程度に合わせます。
 この抵抗には極性はありませんから、
 テスターピンをあてて測定します。
 ※アナログ式のものは0合わせが必要です。

抵抗値測定(デジタル)
抵抗値測定(アナログ)
抵抗値測定(Multi-function Tester)

※マルチメーターによっては、電圧、電流、抵抗などの設定だけで、
 交流、直流やレンジなどの設定が不要なものもあります。