2016-05-25 6 views
-1

私のコードで何が間違っているのか分かりませんが、おそらく何か不足しています。私は他のトークンに関する同様の問題を探しましたが、私には役に立たなかった。私のコードはそれほど長くはないので、私は先に進んでここに投稿します。が必要です ';' before '[' 'token

unsigned int value; 
#include <Adafruit_NeoPixel.h> 
#ifdef __AVR__ 
#include <avr/power.h> 
#endif 
#define PIN 6 
#define NUM_LEDS 60 
#define BRIGHTNESS 10 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); 

void setup(){ 
Serial.begin(9600); 
Serial.setTimeout(50000); 
strip.begin(); 
strip.setBrightness(BRIGHTNESS); 
strip.begin(); 
strip.show(); // Initialize all pixels to 'off' 
} 

void loop() 
{ 
boolean lights; 
int value[100]; 

for(int i=0;i<100;i++){ 
value[i] = analogRead(0); 
} 

int j=SmallestElement(value); 

if(value[j-1]-value[j]>=2 and value[j-1]-value[j]<=30) and value[j-2]-value[j-1]>=2 and value[j-2]-value[j-1]<=30 and value[j+1]-value[j]>50 and value[j+2]>value[j+1]){ //THE COMPILER IS NOT OKAY WITH THIS LINE 
lights = true; //THE COMPILER HAS A PROBLEM WITH THE LINE ABOVE 
} 
else{ 
lights=false; 
} 

if(lights){ //if there is a characteristic drop 
if(value[j]>=600 and value[j]<=699){ 
int one=0; 
for(int j=0;j<60;j++){ 
strip.setPixelColor(j,0,0,0); 
} 
for(int i=0;i<15;i++,one++){ 
strip.setPixelColor(one,0,255,0); 
strip.show(); 
delay(10); 
} 
} 
if(value[j]>=500 and value[j]<=599){ 
int two1=0,two2=60; 
for(int j=0;j<60;j++){ 
strip.setPixelColor(j,0,0,0); 
} 
for(int i=0;i<30;i++,two1++,two2--){ 
strip.setPixelColor(two1,255,255,0); 
strip.setPixelColor(two2,255,255,0); 
strip.show(); 
delay(10); 
} 
    } 

} 

    } 

int SmallestValue(int values[100]){ 
int smallest = values[0]; 
for(int i=1;i<100;i++){ 
if(values[i]<smallest){ 
smallest=values[i]; 
} 
    } 
return smallest; 
} 

int SmallestElement(int values[100]){ 
int i=0; 
while(values[i]!=SmallestValue(values){ 
    i++; 
} 
return i; 
} 

ご協力いただきありがとうございます。

+2

コードを適切にフォーマットした場合は、エラーが発生する可能性があります。 – PaulMcKenzie

+0

実際に書式設定は、ここでコードを書式設定することに慣れていないためです。私のコンパイラではかなり明確です。 – Ashley

+0

2番目の 'と'の前に '<= 30'の後に余分な') 'がありますか? – immibis

答えて

4

if文の括弧が一致しません。

あなたのコード:

if(
    value[j-1]-value[j]>=2 and 
    value[j-1]-value[j]<=30) and // <- Paren here closes the if(
    value[j-2]-value[j-1]>=2 and 
    value[j-2]-value[j-1]<=30 and 
    value[j+1]-value[j]>50 and 
    value[j+2]>value[j+1]){ 
    lights = true; 
} 
else{ 
    lights=false; 
} 

メモ帳がいいですが、IDEを活用します!

+0

そして、あなたは何度も私の魂をその行に凝視しました。どうもありがとうございます。私は間違いなく次回はメモ帳のソリューションを使用しています。 – Ashley

関連する問題