Arduino 入門
Lesson 36
【RGB フルカラー LED SMD】
こにんちは、管理人のomoroyaです。
センサーや電子部品の使い方を学習する入門編。
世の中には、まだまだ色々なセンサーがあります。
これからも、色々なセンサーで遊んでいきます。
本記事はLesson 36 【RGB フルカラー LED SMD】です。
本Lessonで使用する電子部品はセンサではありません。
Lesson 04 【RGBダイオード制御編】の別バージョンのLEDと思ってもらえれば良いです。
普通のLEDと違い発光部分が平面になっているため綺麗に見える。
LEDには大きく3種類あります。
入門編のArduinoでよく使っている通常のLEDは「砲弾型」。
他に、「COB(チップオンボード)」、「SMD(表面実装)」とあります。
本Lessonで使用するのは、SMDと呼ばれるLED。
SMDの特長は以下。
- メリット:コンパクトなため同面積当たりの数を多くできる
- デメリット:1個当たりの輝度がそれほど高くない
LEDは砲弾型だけではないので、遊んでみましょう。
本Lessonで使用する「RGB フルカラー LED SMD」は以下と同じものになります。
在庫がAmazonにあって、すぐに入手できそうなものを掲載。
型番:「KY-009」
在庫が少ないですが・・・。
実装されているのは、型番「5050 RGB」
こんなものもあります。
複数個になると制御が少し面倒ですが、遊んでみても面白い。
Arduino入門編の解説にて使用しているArduinoは互換品です。
互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
はじめに
本Lessonで使用する「RGB フルカラー LED SMD」の原理は下記サイトがとても分かりやすいです。
メリット、デメリット。
「砲弾型」「COB」「SMD」の違いまでわかります。
興味のあるかたは、参考に。
Lesson 36 目標
本Lessonの目標は以下です。
2.「RGB フルカラー LED SMD」の色を変えるスケッチを描く
3.「RGB フルカラー LED SMD」で遊ぶ
いつものように、遊ぶことが重要です。
「RGB フルカラー LED SMD」は色々な商品があります。
使い方がわかれば、色んなことに遊びで使えます。
基本は、Lesson 04 【RGBダイオード制御編】と同じです。
本Lessonを進める前に、下記を読んでいただくとより理解が深まります。
準備
ではLessonの準備に取り掛かりましょう。
部品は「RGB フルカラー LED SMD」のみ。
実装されているSMD型番は「5050 RGB」。
必要なもの
- USB接続用のPC(IDE統合環境がインストールされたPC)
→管理人が勝手に比較したBTOメーカーを紹介しています。 - UNO R3(以下UNO)、おすすめUNO互換品(ELEGOO)
- PCとUNOを接続するUSBケーブル
- ブレッドボード安価(大)、ブレッドボード安価(中)
※おすすめブレッドボード(大)、おすすめブレッドボード(中) - RGB フルカラー LED SMD
- 330Ω 1本、200Ω 2本
※RED用:330Ω、GREEN、BLUE用:200Ω(もしくは220Ω) - M-M Jumper wire(UNOと部品をつなぐための配線)
- M-F Jumper wire(UNOと部品をつなぐための配線)
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。
Jumper wire、抵抗は今後も頻繁に利用します。
Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。
短めが使いやすい場合も。
抵抗も単品で揃えるよりはセットをおすすめします。
抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!
という方は、「電子工作基本部品セット」が使い勝手が良い。
使用部品説明
RGB フルカラー LED SMDについて説明していきます。
実装されているSMD型番は「5050 RGB」。
RGB フルカラー LED SMD 実物写真
下の写真が「RGB フルカラー LED SMD」の実物写真です。
ピン配置は、右から「GND」「RED」「GREEN」「BLUE」。
搭載されているSMDは「5050 RGB」。
本Lessonで使用するものは、基板実装されたものです。
実装されているものはSMDのみのため電流制限用の抵抗が3本必要です。
RED、GREEN、BLUE用の3本です。
SMDを基板に実装したなら、抵抗も実装しておいてよと思う管理人・・・。
RGB フルカラー LED SMD 5050 仕様
5050 RGBの仕様を記載します。
RED、GREEN、BLUEで材料が違うため実は順電圧(VF)が異なります。
- RED :AlGaInP
- GREEN :InGaN
- BLUE :InGaN
そのため順電流をあわせるためには電流制限用の抵抗値を変える必要があります。
まあ、気にしない人は同じでも良いです。
主要な項目のみ記載(下記は目安、使用するSMDのデータシートを確認ください)
項目 | 仕様 |
---|---|
順電圧(RED) | 1.8~2.4[V] |
順電圧(GREEN) | 2.8~3.6[V] |
順電圧(BLUE) | 2.8~3.6[V] |
順電流 | 20[mA] |
動作温度 | -25℃~85℃ |
ここで必要な抵抗を計算。
本Lessonでは各LEDの順電流を10[mA]程度に抑えた状態で使用したいと考えます。
データシートから各色の電圧と電流の関係は以下。
RED | 10[mA] @1.8[V] |
GREEN | 10[mA] @3.0[V] |
BLUE | 10[mA] @3.0[V] |
RED
(5.0 – 1.8) / 0.01 = 320Ω
GREEN、BLUE
(5.0 – 3.0) / 0.01 = 200Ω
320Ωの抵抗なんてないので、上記に近い抵抗でかまいません。
330Ω、220Ω、200Ωなどは手元にあるのでは。
実践 回路作成とコード作成
最初に回路図を確認してください。
次に、回路図に合わせて部品を接続します。
最後にコードを書いて、RGB フルカラー LED SMDを動かしていきましょう。
Arduinoのピン配置を確認したい方は番外編02を参照してください。
回路図
RGB フルカラー LED SMDが実装されたモジュール端子を接続していきます。
ArduinoはPWM制御可能なピンである3,5,6を使用。
あとは、GNDのみ。
回路図がこちら。
こちらがブレッドボード図。
回路図は「fritzing」を利用しています。
「fritzing」の使い方は下記を参照してください。
接続
下図に示すように、用意した部品を使用して接続しましょう。
部品は「RGB フルカラー LED SMD」と抵抗のみとなります。
※5050 RGBが実装されたモジュール
部品は4個、接続は簡単です。
RGB フルカラー LED SMDと接続するジャンパーワイヤーはF-Mを使用してます。
使用するポートはPWM制御可能なピンである3,5,6、GND。
穴に挿入しづらいときは、ラジオペンチなどを使用してください。
コードの書き込み
接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。
コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。
コマンド説明
本Lessonでは、特に新しいコマンドはありません。
サンプルコード
本LessonのスケッチではPWM制御可能なピンである「3,5,6」を使用しています。
PWL制御については、下記を参考にしてください。
//Lesson 36 RGB フルカラー LED SMD //フルカラーの表示 //https://omoroya.com/ const int RED = 3; //RED変数に3を設定 const int GREEN = 5; //GREEN変数にを5設定 const int BLUE = 6; //BLUE変数に6を設定 int delayTime = 10; //変数に10を設定 int redValue; //整数型で定義 int greenValue; //整数型で定義 int blueValue; //整数型で定義 void setup() { pinMode(RED, OUTPUT); //RED(3番ピン)をOUTPUT定義 pinMode(GREEN, OUTPUT); //GREEN(5番ピン)をOUTPUT定義 pinMode(BLUE, OUTPUT); //BLUE(6番ピン)をOUTPUT定義 digitalWrite(RED, HIGH); //REDをON digitalWrite(GREEN, LOW); //GREENをOFF digitalWrite(BLUE, LOW); //BLUEをOFF } void loop() { redValue = 255; //REDのPWL初期値設定 greenValue = 0; //GREENのPWL初期値設定 blueValue = 0; //BLUEのPWL初期値設定 for (int i = 0; i < 255; i += 1) //0~255にインクリメント { redValue -= 1; //変数を-1 greenValue += 1; //変数を+1 analogWrite(RED, redValue); //REDの輝度変更 analogWrite(GREEN, greenValue); //GREENの輝度変更 delay(delayTime); //設定した時間だけ待つ } //以下基本は同じ。輝度を変えるLEDが異なるだけ。 redValue = 0; //REDのPWL初期値設定 greenValue = 255; //GREENのPWL初期値設定 blueValue = 0; //BLUEのPWL初期値設定 for (int i = 0; i < 255; i += 1) { greenValue -= 1; //変数を-1 blueValue += 1; //変数を+1 analogWrite(GREEN, greenValue); //GREENの輝度変更 analogWrite(BLUE, blueValue); //BLUEの輝度変更 delay(delayTime); //設定した時間だけ待つ } //以下基本は同じ。輝度を変えるLEDが異なるだけ。 redValue = 0; //REDのPWL初期値設定 greenValue = 0; //GREENのPWL初期値設定 blueValue = 255; //BLUEのPWL初期値設定 for (int i = 0; i < 255; i += 1) { blueValue -= 1; //変数を-1 redValue += 1; //変数を+1 analogWrite(BLUE, blueValue); //BLUEの輝度変更 analogWrite(RED, redValue); //REDの輝度変更 delay(delayTime); //設定した時間だけ待つ } }
動作確認 SMD フルカラー
では、さっそく動作を確認していきます。
わかりやすいようにgifにしてみました。
※軽くするために画像は粗目
RGB フルカラー LED SMDが色が変化しているのがわかります。
赤、緑、青の組み合わせで色が表現されています。
よくよく見ると、3つのLEDの輝度が変わることで色が変わっていることがわかります。
まとめ
本Lessonは、以下を目標としました。
2.「RGB フルカラー LED SMD」の色を変えるスケッチを描く
3.「RGB フルカラー LED SMD」で遊ぶ
SMD単体だと制御が簡単です。
まずは、単体で動作を確認して次は複数個に挑戦しましょう。
下記2タイプがあります。
- 単純にLEDのRGB個別電源ラインに対して電源供給の制御を行うタイプ
- コントロール用の専用LSI(シリアルLED IC)が搭載され、SPI通信などて制御を行うタイプ
1番は制御が単純ですが、電圧、電流の供給を考える必要があります。
2番は制御が多少面倒です。
SPI通信に興味があるかたは下記を参照ください。
Lesson 36【RGB フルカラー LED SMD】 はここまで。
まず一つのSMDで制御方法を理解。
次は複数個に挑戦。
ぜひ、遊んでみてください。
これなんか制御して遊んだら面白そうですよね。
疑問点、質問などありましたら気軽にコメントください。
次回、Lesson 37は【磁気 リードスイッチ】。
このセンサ。
使用用途の広い便利なセンサです。
最後に
疑問点、質問などありましたら気軽にコメントください。
この電子部品の解説をしてほしい!などなどなんでもOKです。
リンク切れ、間違いなどあればコメントいただけると助かります。
Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。
Arduino入門編、Arduino入門編2で使用しているUNOはAmazonにて購入可能です。
Arduino入門編では互換品を使用。
Arduinoはオープンソース。
複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
学習用、遊び用、お試し用には安価な互換品がおすすめです。
ELEGOO UNO キット レベルアップ チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用
上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
Amazonでお得に買う方法
Amazonでお得に購入するならAmazon Mastercard、Amazonギフト券がおすすめです。
時期により異なりますが、様々なキャンペーンを実施しています。
\Amazonギフト券/
Amazonギフトカード キャンペーン
\Amazon Mastercard お申込み/
Amazon Mastercard 申し込み
いずれの場合もプライム会員である方がお得!!
\Amazon Prime 30日間の無料会員を試す/
無料会員登録
コメント
Arduino UNO R3でD4はPWM制御ではないと思いますが、サンプルスケッチで動作しますか??
私はD4をD3に書き換えて動作確認しましたが、D4(非PWM制御)でのテストはしてません。
AmazonのArduino Mega2560 R3だとD4もPWM制御ですが、このページの回路図はArduino UNO R3互換機になっているので、D4は非PWMのはずです。
それは、間違いないですか??
コメントありがとうございます。
記述ミスです。D3がただしいです!(PWM制御できるPINが正しい)
記載ミスなどコメントいただけると、とても助かります。
記事内の回路図、スケッチを修正しました。
ありがとうございます。
はじめまして。
電子工作初心者で、各種センサや電子部品の原理を勉強したくてこのサイトを利用させていただいてます。
『ELEGOO Arduino用UNO R3スターターキット レベルアップ チュートリアル付 mega2560 r3 nanoと互換 [並行輸入品] 』を購入して、今までにLesson30までは進めることが出来たのですが、Lesson31以降はパーツが無いため進められていません。
Lesson31以降も進めるためにおすすめのパーツセットとかご存じではないでしょうか。単品で購入するのは予算的にも厳しいので。
Amazonで『HiLetgo 37センサーアソートキット センサモジュール スターター キット Arduinoに対応 開発キット37共通のセンサー 電子スイート [並行輸入品] 』や『OSOYOO(オソヨー) DIY センサーモジュール キット 常用20個 for Arduino/raspberry ボード 学生実験に最適』というパーツセットを見つけたので購入を検討しているのですが、どうでしょうか。
センサモジュールのキットは、色々なメーカーからでているので好みかと思います。
梱包されているセンサーはそれぞれ違うため、自分がほしいセンサが入っているものが良いと思います。
言われている下記も悪くないと思います。あとは遊びたいセンサがあるかどうかですね。
・HiLetgo 37センサーアソートキット センサモジュール スターター キット
他には下記も悪くないと思います。(発送はAmazonのため、すぐに手に入ります)
・KEYESTUDIO 37個 モジュール センサー スターターキット
また「45 In 1センサーモジュールスターターキット」で検索すれば安い値段で
色々でてきますが、こちらは、ほぼ中国からの発送になります。
今だと入手にも時間がかかり、なおかつ当たりはずれがあります。
安いですが・・・。
ELEGOOでもセンサーモジュールキットあるんですが、Amazonだと割高です。
安さにこだわるなら、海外のサイトから購入(輸入)という手もあります。
例えば「AliExpress」ですね。
中国製の商品が主に出品されているため、あたりはずれもあります。
そのかわり、安いし、面白い商品もたくさんあるので見るだけでも楽しいかも。
ただし、トラブルを気にする人は日本の通販サイトをおすすめします。
自分の欲しいセンサがあるか、ないかで判断するのが良いと思います。
管理人は当たりはずれも含めて色々冒険して購入しますが
品質を気にする場合は、最低限Amazon発送の商品を選んでください。
返品対応が容易になります。