ArduinoRGBカラーミキサー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
これは誰のためですか? :このRGB LEDカラーミキサープロジェクトは、インタラクティブなガジェットの作成に熱心な初心者のArduinoユーザーに最適です。これは、楽しく簡単に作成できるだけでなく、アーティスト、WebなどのRBGカラーを使用するすべてのユーザーに役立ちます。開発者とインタラクティブな照明コントローラー。
機能: この単純な回路は、3つのポテンショメータを組み合わせて、RGB LED内の赤、緑、青の各LEDの明るさを設定します。
押しボタンスイッチが追加され、回路のオンとオフを切り替える機能が追加されました。
どうすれば構築できますか? 回路図に示されているように図を配線します。 RGB LEDは、ArduinoのPMWピン9、10、および11に配線されています。押しボタンはピン7に接続され、3つのポテンショメータはA0、A1、およびA2に接続されています。押しボタンのアース接続に10Kオームのプルアップ抵抗を追加することを忘れないでください。これがどのように機能するかについての説明は、https://playground.arduino.cc/CommonTopics/PullUpDownResistor
をチェックしてください。また、LEDと出力ピンの間に3つの220オームの抵抗を接続してください。これにより、LEDが燃え尽きることがなくなります。
各ポテンショメータの値はシリアルモニターに出力されるため、LEDをいじって好きな色を見つけた場合は、後で使用するためにRGB値を記録できます。
回路を配線してスケッチをアップロードしたら、ポテンショメータのノブを回してみてください。ボタンを押すまで、最初は何も起こりません。もう一度ノブを回してみてください。 LEDが点灯するはずです。光で遊ぶ時間! RGBライトはペイントの混合とは異なります。すべてのポテンショメータがいっぱいになると、ライトは白になります。ポテンショメータの1つをオフにするか、非常に低くして、他の2つを変えてみてください。
このプロジェクトの拡張機能は、特定の色のRBG値をハードコーディングし、押すとRGBLEDをそれらの色に設定するプッシュボタンを追加することです。このような拡張機能を試す場合は、コードを自由に共有してください!
お楽しみください!
コード
- RGBカラーミキサー
RGBカラーミキサー C / C ++
int blue =9; // LEDの各色のデジタルピンを定義しますintgreen =10; int red =11; int redPot =A0; int greenPot =A1; // 3つのポテンショメータのアナログピンを定義しますintbluePot =A2; int greenVal =0; //各ポテンシオメーターの状態を格納する変数を作成しますintblueVal =0; int redVal =0; const int BUTTON =7; //ボタンを定義しますPinintstate =0; //ボタンがオンかオフかを格納する変数を作成しますval =0; // buttonintの瞬間的な状態を保存する変数を作成しますold_val =0; // buttonvoid setup()の以前の状態を格納する変数を作成します{//セットアップコードをここに配置して、1回実行します:pinMode(green、OUTPUT); // LEDを出力として設定し、ボタンを入力として設定しますpinMode(blue、OUTPUT); pinMode(red、OUTPUT); pinMode(BUTTON、INPUT); Serial.begin(9600);} void loop(){//メインコードをここに配置して、繰り返し実行します:Serial.begin(9600); //シリアルモニターを9600ボーで開きますval =digitalRead(BUTTON); //ボタンの状態を確認if((val ==HIGH)&&(old_val ==LOW)){//ボタンの状態が変更されたかどうかを確認state =1 --state; //ボタンをオン(1)またはオフ(0)のいずれかに設定しますdelay(10); } old_val =val; //前回のボタンの読み取り値を保存して、次回ループを介して比較しますgreenVal =analogRead(greenPot); //ポテンショメータの位置を読み取りますblueVal =analogRead(bluePot); redVal =analogRead(redPot); if(state ==1){//ボタンがオンの場合、位置analogWrite(green、greenVal / 4);に従って各LEDの状態を設定します。 //対応するポテンショメータの。アナログ入力の範囲は0〜1023、analogWrite(blue、blueVal / 4); //一方、PMWとしてのanolog出力は0〜255です。したがって、analogWrite(red、redVal / 4);を実行する必要があります。 //ポテンショメータの読み取り値を4で割って、状態を正しく設定しますSerial.print( "RGB("); Serial.print(redVal / 4); Serial.print( "、"); Serial.print(greenVal / 4); Serial.print( "、"); Serial.print(blueVal / 4); // RGBコードを印刷し、任意のRGBアプリケーションで再利用可能Serial.println( ")"); delay(50); } else {//ボタンがオフの場合、すべてのLEDをLOW /オフに設定しますanalogWrite(green、0); analogWrite(青、0); analogWrite(赤、0); delay(50); }}
回路図
製造プロセス