YouTube
1:37 今回作るもの
1:43 使う材料の準備
1:53 回路図
2:18 回路を組む
2:48 プログラムの作成
4:23 ボードに書き込む
4:34 まとめ
使用したコード
動画内で使用したコードです。ご自由にご使用ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //ピン番号の定義 const int RED = 9; const int GREEN = 10; const int BLUE = 11; //PWM Duty比の設定 int redValue = 255; int greenValue = 0; int blueValue = 255; void setup() { // put your setup code here, to run once: pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT); } void loop() { // put your main code here, to run repeatedly: analogWrite(RED, redValue); analogWrite(GREEN, greenValue); analogWrite(BLUE, blueValue); } |
5.フルカラーLED
- analogWrite関数の使い方とPWMについて
- 変数・定数の使い方
このコースは、これから電子工作を始める方向けに、代表的なマイコンボードであるArduinoを使って、電子回路の組み方やプログラミングの仕方などをハンズオン形式で学べるコースになっています。
- Arduino Uno ¥3,150:https://amzn.to/39dcJgb
- ELEGOO Uno ¥2,399:https://amzn.to/3EGw84F
- KKHMF Uno ¥1,099:https://amzn.to/3L50Gzs(別途ドライバのインストール...
5.フルカラーLED
フルカラーLEDとアナログ出力について
レッスン3と4では、デジタル出力とデジタル入力という、HIGH/LOWの2つのレベルで入出力する方法を学んできました。
ここから2つのレッスンでは、もっと細かいレベルで入出力が行える、アナログ出力とアナログ入力について説明します。
まずはフルカラーLEDを使って、アナログ出力から習得していきましょう。
理科で習ったように、赤、緑、青は光の三原色と言って、これらを配合する割合を変えることであらゆる色を作ることができます。
フルカラーLEDの内部にもこの三原色に相当する3つのLEDが内蔵されており、Arduinoのアナログ出力によってそれぞれの光量を調整することで色んな色を表現できます。
アナログ出力では各色256段階で調整することができるので、原理的には256の3乗、つまり1677万色の色を作ることが可能です。
アナログ出力は、PWMと呼ばれる、ある一定のON期間とOFF期間を持った490Hzまたは980Hzのパルス信号が出力されます。
このパルス信号によって実際にはLEDを高速で点滅させているのですが、30Hzだと人の目では点滅が認識できず、Duty比に応じて光の強さが違って見えることになります。
この性質を利用して光量調整を実現しています。
以下の図は今回作成した回路で、このように色を自由に変更することができています。
今回作るもの
それではこの回路を作っていきましょう。
今回使う材料は、Arduino Uno・ブレッドボード・オスオスのジャンパーワイヤ4本・フルカラーLED・330Ωの抵抗3つです。
回路図
以下の画像は、今回作成する回路図になります。
フルカラーLEDは、先ほど説明した通り内部に3つのLEDを内蔵しています。
今回使用したタイプはカソード側が共通となっており、アノード側にそれぞれ330Ωの抵抗を接続します。
Arduinoにはいくつか波マークがついたピンがあり、これらのピンでデジタル出力とアナログ出力機能を兼用しています。
回路を組む
次に、回路図にならってブレッドボード図を作成したのがこちらです。
フルカラー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の値を変えるたびにLEDの光り方が変わることが確認できたら、完了です。
まとめ
ということで今回は、このような内容を学んできました。
- analogWrite関数の使い方とPWMについて
- 変数・定数の使い方
当サイトでは、最低限身につけるべき知識やツールの解説など、電子工作を 0 から体系的に学べる動画や記事を投稿しています。