【初めてのArduino】5.フルカラーLED|ハンズオンで学ぶ初心者向け入門コース

YouTube

目次
0:00 フルカラーLEDとアナログ出力について
1:37 今回作るもの
1:43 使う材料の準備
1:53 回路図
2:18 回路を組む
2:48 プログラムの作成
4:23 ボードに書き込む
4:34 まとめ

使用したコード

動画内で使用したコードです。ご自由にご使用ください。

5.フルカラーLED

デジタル出力とデジタル入力については前回のレッスンで理解ができたけど、アナログ出力とアナログ入力についてはよく分からないんだ

それじゃあ次は、このコースでフルカラーLEDを題材に、analogWrite関数、変数、定数について学んでいこう
今回のレッスンで学べる事
  • analogWrite関数の使い方とPWMについて
  • 変数・定数の使い方 

このコースは、これから電子工作を始める方向けに、代表的なマイコンボードであるArduinoを使って、電子回路の組み方やプログラミングの仕方などをハンズオン形式で学べるコースになっています。

以下3つのボードは、全く同じコードで動作することが確認できています!

5.フルカラーLED

フルカラーLEDとアナログ出力について

レッスン3と4では、デジタル出力とデジタル入力という、HIGH/LOWの2つのレベルで入出力する方法を学んできました。

ここから2つのレッスンでは、もっと細かいレベルで入出力が行える、アナログ出力とアナログ入力について説明します。

まずはフルカラーLEDを使って、アナログ出力から習得していきましょう。

理科で習ったように、赤、緑、青は光の三原色と言って、これらを配合する割合を変えることであらゆる色を作ることができます。

フルカラーLEDの内部にもこの三原色に相当する3つのLEDが内蔵されており、Arduinoのアナログ出力によってそれぞれの光量を調整することで色んな色を表現できます。

アナログ出力では各色256段階で調整することができるので、原理的には256の3乗、つまり1677万色の色を作ることが可能です。

アナログ出力は、PWMと呼ばれる、ある一定のON期間とOFF期間を持った490Hzまたは980Hzのパルス信号が出力されます。

このON期間と周期の比率はDuty比と呼ばれます。

このパルス信号によって実際にはLEDを高速で点滅させているのですが、30Hzだと人の目では点滅が認識できず、Duty比に応じて光の強さが違って見えることになります

この性質を利用して光量調整を実現しています

なお一般的に、アナログ出力というと電圧を自在に変更できる機能を指すのですが、Arduinoの場合はあくまでPWM信号のDuty比を変えられるだけという点は注意してください!

以下の図は今回作成した回路で、このように色を自由に変更することができています。

今回作るもの

それではこの回路を作っていきましょう。

今回使う材料は、Arduino Uno・ブレッドボード・オスオスのジャンパーワイヤ4本・フルカラーLED・330Ωの抵抗3つです。

回路図

以下の画像は、今回作成する回路図になります。

フルカラーLEDは、先ほど説明した通り内部に3つのLEDを内蔵しています。

今回使用したタイプはカソード側が共通となっており、アノード側にそれぞれ330Ωの抵抗を接続します。

Arduinoにはいくつか波マークがついたピンがあり、これらのピンでデジタル出力とアナログ出力機能を兼用しています。

ここでは、9,10,11ピンを使用しています。

回路を組む

次に、回路図にならってブレッドボード図を作成したのがこちらです。

フルカラーLEDは脚が4つ出ており、こちらのように一番長い脚がカソードになっています。

それでは向きに注意して、回路を組んでいきましょう!

回路を組み終わった形は、以下のようになります。

プログラムの作成

それではコーディングを行っていきます。

Arduino IDEを起動して、ファイル→新規ファイルをクリックし、この画面にあるプログラムを入力してください。

今回は、setup関数の前に6行のプログラムを書いています。

ここで赤く囲った部分は変数と呼ばれるもので、データに名前をつけて保存しておくことができる機能です。

その前についているintはintegerの略で、その変数が整数の値を持つという意味になります。

プログラムの世界では、どのような形のデータかを示すのをデータ型と言い、intの場合は整数なので整数型と呼びます。

データ型には他にもたくさんあるので、別のレッスンで紹介したいと思います!

変数の使用例
  • ある値を複数箇所で使用する場合
  • ある値に分かりやすい名前を付けたい場合

今回の例では、ピン番号を割り当てるところやPWMのDutyを設定するところで使用しています。

intの前にあるconstというのは修飾子と呼ばれるもので、これを頭につけるとその変数は定数という扱いになり、読み取り専用にすることができます。

これはあってもなくてもプログラム自体は問題なく動作するのですが、ピン番号というのは一回設定すると基本的にはその後変更する事はないので、誤って変えてしまう事のないようにconstを付けています。

setup関数の中は、RED, GREEN, BLUEピンをそれぞれ出力ピンに設定しています。

そしてloop関数で、analogWrite関数を使って各ピンのPWM Duty比を設定しています。

なお、Dutyは0〜255の範囲であり、0がDuty=0%、255がDuty=100%に相当します。

なので、例えばDuty比を50%としたい場合は128を設定します。

ボードに書き込む

最後にファイルを保存し、ツールバーの「マイコンボードに書き込む」のボタンを押して書き込みます。

以下のようにDutyの値を変えるたびにLEDの光り方が変わることが確認できたら、完了です。

まとめ

ということで今回は、このような内容を学んできました。

今回のレッスンで学んだこと
  • analogWrite関数の使い方とPWMについて
  • 変数・定数の使い方
やってみよう!
今回学んだことを活かして、自分でDuty比を変えてみて、色を自在に変更してみてください。

当サイトでは、最低限身につけるべき知識やツールの解説など、電子工作を 0 から体系的に学べる動画や記事を投稿しています。

さらに電子工作について学びたい方は、他の動画や記事もぜひ見てみてください。