アプリ版:「スタンプのみでお礼する」機能のリリースについて

エラーの出る位置がところどころで変わります。
どのように修正すればいいのでしょうか。

スケッチは以下の通りです。

int LED_r = 8;
int LED_gb = 9;
int Trig = 2;
int Echo = 3;
int LED_PWM = 10;

#include <SD.h>
#include <SPI.h>
#include <arduino.h>
#include <MusicPlayer.h>

void setup(){
pinMode(LED_r, OUTPUT);
pinMode(LED_gb, OUTPUT);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
Serial.begin(9600);
player.begin(); //will initialize the hardware and set default mode to be normal.
player.addToPlaylist("test.mp3");
}

int interval = 0;
double distance = 0;
double x = 78;

void loop(){
if (Serial.available()>0){
digitalWrite( Trig, HIGH );
delayMicroseconds( 100 );
digitalWrite( Trig, LOW );
interval = pulseIn( Echo, HIGH );//interval [μ秒]
distance = interval * 0.017; //distance [cm]

if(0 < distance && distance < x){

Red();
delay(5000);
White();

player.play(); //do some leisurely job
delay(100);

Print1();
}
else if(x < distance){
Print_0();
delay(100);
}
}

int Red(){
for(int i = 0;i < 256;i++){
digitalWrite(LED_r, HIGH);
digitalWrite(LED_gb, LOW);
analogWrite(LED_PWM,i);
}
}

int White(){
for(int i = 0;i < 140;i++){
digitalWrite(LED_r, HIGH);
digitalWrite(LED_gb, HIGH);
analogWrite(LED_PWM,i);
delay(10);
}
}

int Black(){
digitalWrite(LED_r, LOW);
digitalWrite(LED_gb, LOW);
}


int Print_0(){
Serial.print( interval, DEC );
Serial.print( "¥t" );
Serial.print( distance, 4 );
Serial.print( "¥n" );
}

int Print1(){
Serial.print("人を観測");
Serial.print("¥t");
Serial.print( interval, DEC );
Serial.print( "¥t" );
Serial.print( distance, 4 );
Serial.print( "¥n" );
}

エラーメッセージは以下です。

Arduino: 1.6.5 (Mac OS X), ボード:"Arduino/Genuino Uno"

saishuu.ino: In function 'void loop()':
saishuu:57: error: a function-definition is not allowed here before '{' token
saishuu:94: error: expected '}' at end of input
a function-definition is not allowed here before '{' token


よろしくお願いします。

質問者からの補足コメント

  • 申し訳ないです、コンパイル出来ました。

    コンパイル、書き込みと出来たのですが肝心の音が鳴りません…
    スケッチ上のファイル名も書き換わっているしmp3も対応しているはずなので何故鳴らないんでしょう?
    音ファイルが1.1mbだと重いんでしょうか

      補足日時:2016/01/16 17:37

A 回答 (1件)

ん?


これ、前にもやりましたよね?

else if(x < distance){
Print_0();
delay(100);
}
}
} ←※この括弧が足りない

int Red(){
for(int i = 0;i < 256;i++){
digitalWrite(LED_r, HIGH);
digitalWrite(LED_gb, LOW);
analogWrite(LED_PWM,i);
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!