加速度センサーXの値が以下のようになったときにフルカラーledを光らせたいのですが赤色しか光りません原因はなんだと思いますか?
加速度センサーXの値が以下のようになったときにフルカラーledを光らせたいのですが赤色しか光りません原因はなんだと思いますか? int red=11;// charactarization red led to digital 11 int green=10;//charactarization green led to digital 10 int blue=9;//charactarization green led to digital 9 int wait=10; void setup() { //set pinmode pinMode(red,OUTPUT); pinMode(blue,OUTPUT); pinMode(green,OUTPUT); // シリアルモニターの初期化をする Serial.begin(9600) ; } void loop() { int i ; long x , y , z ; // 各データを100回読込んで平均化する x = y = z = 0 ; for (i=0 ; i < 100 ; i++) { x = x + analogRead(3) ; // X軸を読込む y = y + analogRead(4) ; // Y軸を読込む z = z + analogRead(5) ; // Z軸を読込む } x = x / 100 ; y = y / 100 ; z = z / 100 ; // 読み込んだ各軸をそのまま表示する Serial.print("X:") ; Serial.print(x) ; // X軸 Serial.print(" Y:") ; Serial.print(y) ; // Y軸 Serial.print(" Z:") ; Serial.println(z) ; // Z軸 delay(500) ; //加速度がXがAの値になればledを次のように光らせる if(50<x<60){ analogWrite(red,0); analogWrite(blue,0); analogWrite(green,0); for(int i=0;i<=255;i++){ analogWrite(red,i); delay(wait); } } else if(60<x<100){ analogWrite(red,0); analogWrite(blue,0); analogWrite(green,0); for(int i=0;i<=255;i++){ analogWrite(green,i); delay(wait); } } else if(30<x<50){ analogWrite(red,0); analogWrite(blue,0); analogWrite(green,0); for(int i=0;i<=255;i++){ analogWrite(blue,i); } } }
ベストアンサー
(tu2********さん) if(50<x<60){ ↑文法は間違ってませんが、このような数学的 (a<b<c) 比較文はダメです ((a<b)<c) と解釈されます。 例: if(50<x && x<60){
質問者からのお礼コメント
ありがとうございます
お礼日時:5/19 14:00