Arduinoで2つのセンサーを使ったライトが作りたい
- 評価
- クリップ 0
- VIEW 1,520

退会済みユーザー
前提・実現したいこと
Arduinoと複数のセンサー(加速度センサー、温度センサー)を使って、色の変わるライトを作りたいです。
現在、ライブラリを使用し、サンプルコードを少し変え、ハード面で迷っています。
使用している主な道具は以下です。
・Arduino
・加速度センサー
・温度センサー
・センサーシールド
・放熱基板付1WハイパワーフルカラーRGBLED
作りたいものは、温度によって色が変わり、揺らした時はかかった力によって色が変わるライトです。
趣味として電子工学、Ardiunoを始め、まだ時間がたっていないので知識も十分ではない中の試行錯誤をしています。
これが可能なのか、それとも不可能なのか知りたいです。
不可能であれば、別の方法を教えていただきたいです。
コードも以下に公開します。
プログラミングもあまり詳しくないので、修正点などあればご指摘お願いします。
該当のソースコード
#include <Wire.h>
#include <KX224_I2C.h>//加速度センサー用
#include <BD1020.h>//温度センサー用
//加速度センサー用
KX224 kx224(KX224_DEVICE_ADDRESS_1E);
//温度センサー用
int tempout_pin = A2;
BD1020 bd1020;
void setup() {
//温度センサー用
Serial.begin(9600);
while (!Serial);
bd1020.init(tempout_pin);
Serial.println("BD1020HFV Sample");
//加速度センサー用
Wire.begin();
//加速度センサー用
byte rc;
rc = kx224.init();
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop() {
//温度センサーの値を取得
float temp;
float power = 0;
bd1020.get_val(&temp);
Serial.print("BD1020HFV Temp=");
Serial.print(temp);
Serial.print(" [degrees Celsius], ADC=");
Serial.println(bd1020.temp_adc);
delay(20);
power = 1 - (temp / 35);
//加速度センサーの値を取得
byte rc;
float acc[3];
int colR = 0;
int colG = 0;
int colB = 0;
rc = kx224.get_val(acc);
if (rc == 0) {
Serial.write("KX224 (X) = ");
Serial.print(acc[0]);
Serial.println(" [g]");
Serial.write("KX224 (Y) = ");
Serial.print(acc[1]);
Serial.println(" [g]");
Serial.write("KX224 (Z) = ");
Serial.print(acc[2]);
Serial.println(" [g]");
Serial.println();
}
delay(20);
//色を決定
if(acc[2] < 2){
colR = 248;
colG = 248;
colB = 248;
}
else{
colR = 220;
colG = 24;
colB = 26;
}
delay(20);
}
主な参考サイト
第43回 複数のセンサを組み合わせた照明デバイス制作に挑戦! 〜Arduino+センサの開発が劇的に楽になる!ローム・センサ評価キットを試してみた
第42回 Arduinoでカラーセンサ! 〜Arduino+センサの開発が劇的に楽になる!ローム・センサ評価キットを試してみた
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.23%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
y_waiwai
2019/11/07 08:03
現状はどういう動作をするんでしょうか。
現状の動作の問題点を追記してください
coco_bauer
2019/11/07 17:07
何に迷っているのですか??? ハード面と言われても、使おうとしている素子、配線図、といったハードウェアに関する情報が質問に書かれていないんですけど。