注釈
こんにちは!SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community(Facebook)へようこそ! ここでは、Raspberry Pi、Arduino、ESP32について、他の愛好家と一緒に深く学ぶことができます。
参加するメリット
専門的なサポート:購入後の問題や技術的な課題を、コミュニティやチームの助けを借りて解決できます。
学び&共有:ヒントやチュートリアルを交換し、スキルを向上させましょう。
最新情報の先行公開:新製品の発表やプレビューをいち早くチェックできます。
特別割引:最新製品を特別価格で購入できます。
季節限定のプロモーション&プレゼント企画:キャンペーンやプレゼント企画に参加できます。
👉 一緒に探求し、創造しませんか?今すぐ [こちら] をクリックして参加しましょう!
2.4 カラフルなライト
このレッスンでは、RGB LEDとRaspberry Pi Pico 2を使用してさまざまな色を作成する方法を学びます。 赤・緑・青の光の強さを調整することで、幅広い色を表現できます。この仕組みは 加法混色 の原理に基づいています。
加法混色とは?
加法混色とは、異なる色の光を組み合わせて新しい色を作る方法です。赤・緑・青の光を異なる割合で混ぜることで、可視光のあらゆる色を再現できます。例えば:
赤 + 緑 = 黄
赤 + 青 = マゼンタ
緑 + 青 = シアン
赤 + 緑 + 青 = 白
必要なもの
このプロジェクトでは、以下のコンポーネントが必要です。 すべてが揃ったキットを購入すると便利です。リンクはこちら:
名称 |
このキットに含まれるアイテム |
リンク |
|---|---|---|
Newton Lab Kit |
450点以上 |
また、以下のリンクから個別に購入することも可能です。
No. |
コンポーネント |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USB ケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
3(1-330Ω, 2-220Ω) |
||
6 |
1 |
回路図

PWMピン(GP13、GP14、GP15)が、それぞれRGB LEDの赤・緑・青のピンを制御し、共通カソードピンをGNDに接続します。 各ピンのPWM値を変化させることで、異なる色を表示できます。
配線図
RGB LEDには4本のピンがあります。最も長いピンは共通カソードピン(通常GNDに接続)で、その左隣が赤、その右に緑と青のピンがあります。
赤色LEDは、同じ電流でも他の色より明るく発光するため、より高い抵抗を使用します。

コードを書いてみよう
ペイントなどの描画ソフトで好きな色を選び、RGB LEDで再現できます。
注釈
2.4_colorful_light.inoをnewton-lab-kit/arduino/2.4_colorful_lightから開くことができます。または以下のコードを Arduino IDE にコピーしてください。
Raspberry Pi Pico 2 ボードを選択し、適切なポートを設定して「Upload」をクリックしてください。
// RGB LED に接続する GPIO ピンを定義
const int redPin = 13; // 赤ピン
const int greenPin = 14; // 緑ピン
const int bluePin = 15; // 青ピン
void setup() {
// RGB LED の各ピンを出力として設定
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
// 色を設定する関数
void setColor(unsigned char red, unsigned char green, unsigned char blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void loop() {
// 赤色
setColor(255, 0, 0);
delay(1000);
// 緑色
setColor(0, 255, 0);
delay(1000);
// 青色
setColor(0, 0, 255);
delay(1000);
// 黄色(赤 + 緑)
setColor(255, 255, 0);
delay(1000);
// シアン(緑 + 青)
setColor(0, 255, 255);
delay(1000);
// マゼンタ(赤 + 青)
setColor(255, 0, 255);
delay(1000);
// 白色(赤 + 緑 + 青)
setColor(255, 255, 255);
delay(1000);
// 消灯
setColor(0, 0, 0);
delay(1000);
}
コードをアップロードすると、RGB LEDは赤、緑、青、黄、シアン、マゼンタ、白の順に点灯し、最後に消灯します。各色は1秒間表示されます。
コードの理解
ピンの定義
RGB LEDに接続されるGPIOピンを定義します。
const int redPin = 13; const int greenPin = 14; const int bluePin = 15;
ピンの初期化
RGB LEDのピンを出力として設定します。
void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); }
色の設定
setColor関数を使用し、PWM(パルス幅変調)を利用して色の明るさを調整します。void setColor(unsigned char red, unsigned char green, unsigned char blue) { analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); }
色のループ表示
loop()関数内でsetColor()を呼び出し、異なる色を順番に表示し、それぞれ1秒間の遅延を加えます。void loop() { // 赤色 setColor(255, 0, 0); delay(1000); ... // 消灯 setColor(0, 0, 0); delay(1000); }
色の実験
setColor() のパラメータを変更することで、自由に色を作成できます。各値は0(オフ)から255(最大輝度)の範囲で調整できます。
オレンジ: setColor(255, 165, 0);
紫: setColor(128, 0, 128);
特定の色のRGB値を知りたい場合は、カラーピッカーや Paint などのツールを使用してください。
まとめ
このレッスンでは、Raspberry Pi Picoを使用してRGB LEDを制御し、赤・緑・青の光を組み合わせてさまざまな色を作成する方法を学びました。 この知識は、LEDディスプレイ、ムードライト、色制御が必要なプロジェクトに応用できます。

