【解決方法】コンパイル エラー: ‘{‘ トークンの前に unqualified-id が必要です

プログラミングQA


私はそれの何が問題なのかを理解しようとしてきましたが、そこに頭を包むことはできません。どんなガイダンスも大歓迎です! コーディングに関しては、私はほとんど初心者です。 私はあなたが近づくとLED RGBライトを変更する超音波センサーをやろうとしました, これがコードです.

#include <Adafruit_NeoPixel.h>

const int EchoPin = 5;
const int TriggerPin = 6;
const int dist[] = {100}, {200}, {300};
const String colors[] = {"blau"}, {"vermell"}, {"verd"};
const int delay = 3000;

int PIN=6; //Pin donde está conectada la tira de leds
int NUMPIXELS=6; //Número de leds conectados

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia: ");
   Serial.println(cm);
   startSequence (cm)
   delay(1000);
}
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   sendPing 
   
    duration = pulseIn(EchoPin, HIGH);  //medir temps ms
   
   distanceCm = duration * 10 / (292 * 2);  //calcular a cm
   return distanceCm;
}
void sendPing () {

   digitalWrite(TriggerPin, LOW);  //generar puls 
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //Trigger
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
}

void startSequence (int cm) {

  String color;

  Switch (cm) {
    case dist [0]:
      color = colors [0];
      break; 

    case dist [1]:
      color = colors [1];
      break;

    case dist [2]:
      color = colors [2];
      break;  

  }
  switchOnLights (color);

}


void switchOnLights (String color) {

  // encendre leds (buscar llibreria - demanar joan)

  delay (delay)

  // apagar leds 



}

void setup() {
      pixels.begin(); // Inicialización
      pixels.show(); // Inicialitza tots els pixels apagats
}

void loop() {
  pixels.setPixelColor(0,0,0,255);
   pixels.show();
 delay (1000);
  pixels.setPixelColor(0,0,0,0);
  pixels.show();

  pixels.setPixelColor(1,0,0,255);
   pixels.show();
 delay (1000);
  pixels.setPixelColor(1,0,0,0);
  pixels.show();

  pixels.setPixelColor(2,0,0,255);
   pixels.show();
 delay (1000);
  pixels.setPixelColor(2,0,0,0);
  pixels.show();

}

私が試したこと:

間違っているかどうかはわかりませんが、うまくいくはずです

解決策 1

中かっこのいくつかを取り出してみてください。

C++
const int dist[] = {100}, {200}, {300};
const String colors[] = {"blau"}, {"vermell"}, {"verd"};

次のようにする必要があります。

C++
const int dist[] = {100, 200, 300};
const String colors[] = {"blau", "vermell", "verd"};

ただし、「String」は型ではありません。代わりに「string」を試してください。

コーディング中に毎日、おそらく 1 日に何度も構文エラーが発生することを予期する必要があります。経験の豊富さに関係なく、誰もがそうです。 変数やキーワードのスペルを間違えることがあります。 文字列やコード ブロックを閉じるのを忘れることがあります。 猫があなたのキーボードの上を歩いて、とても奇妙なことをタイプすることがあります。 メソッド呼び出しに必要なパラメーターの数を忘れてしまうことがあります。

我々はすべての間違いを犯します。

そして、私たちは皆そうしているので、構文エラーを修正する必要があります。他の人が修正してくれるのを待つよりも、方法を学んで自分で修正する方がはるかに迅速です! したがって、エラー メッセージの読み方と、コンパイラが間違っていると言っていることに照らして記述されたコードを解釈する方法を学ぶことに少し時間を費やしてください。

だからこれを読んでください: 問題を解決するコードの書き方、初心者向けガイド パート 2: 構文エラー[^] – 次回コンパイル エラーが発生したときに役立つはずです。

また、構文エラー メッセージを理解するために少し時間を費やすことで、将来的に膨大な時間を節約できます。Chris からの返信を少なくとも 1/4 時間待っていた場合、電子メール システムによってさらに 10 分ほど追加された時間と、このサイトを見つけてアカウントを作成したら、質問を入力する必要がありました。 それらの読み方を知っていれば、その時間のかなりの部分を節約できた可能性があります!

私たちはあなたがそれらを修正するのを手伝いたくないと言っているのではありません – 私が書くつもりだったものを読んでいるために、私自身のエラーを見ることができないことがあります – しかし、構文エラーを修正することは仕事の一部です.あなたが業界で仕事を得ると、人々はあなたを少し奇妙に見るでしょう!

コメント

タイトルとURLをコピーしました