Пытаюсь сделать датчик движения безопасности с помощью peizer и hc-sr04, но я не могу найти ошибки, код ошибки полностью отключен

#define trigPin 10
#define echoPin 9
#define buzzer 12
long duration;
int distance;



void setup() {​​
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
}​​



 void loop() {​​
 digitalWrite(trigPin,LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin,HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin,LOW);
 duration=pulseIn(echoPin,HIGH);
 distance=duration*0.034/2;
 Serial.print("DISTANCE=");
 Serial.println(distance);
 if (distance<=15){​​
 tone(buzzer,450);
 delay (500);
 noTone(buzzer);
 }​​
 else{​​
 noTone(buzzer);
 }
 ​​}

это код ошибки

Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Uno"


sketch_nov27a:9:15: error: stray '\342' in program

 void setup() {​​

               ^

sketch_nov27a:9:16: error: stray '\200' in program

 void setup() {​​

                ^

sketch_nov27a:9:17: error: stray '\213' in program

 void setup() {​​

                 ^

sketch_nov27a:9:18: error: stray '\342' in program

 void setup() {​​

                  ^

sketch_nov27a:9:19: error: stray '\200' in program

 void setup() {​​

                   ^

sketch_nov27a:9:20: error: stray '\213' in program

 void setup() {​​

                    ^

sketch_nov27a:14:2: error: stray '\342' in program

 }​​

  ^

sketch_nov27a:14:3: error: stray '\200' in program

 }​​

   ^

sketch_nov27a:14:4: error: stray '\213' in program

 }​​

    ^

sketch_nov27a:14:5: error: stray '\342' in program

 }​​

     ^

sketch_nov27a:14:6: error: stray '\200' in program

 }​​

      ^

sketch_nov27a:14:7: error: stray '\213' in program

 }​​

       ^

sketch_nov27a:18:14: error: stray '\342' in program

 void loop() {​​

              ^

sketch_nov27a:18:15: error: stray '\200' in program

 void loop() {​​

               ^

sketch_nov27a:18:16: error: stray '\213' in program

 void loop() {​​

                ^

sketch_nov27a:18:17: error: stray '\342' in program

 void loop() {​​

                 ^

sketch_nov27a:18:18: error: stray '\200' in program

 void loop() {​​

                  ^

sketch_nov27a:18:19: error: stray '\213' in program

 void loop() {​​

                   ^

sketch_nov27a:28:19: error: stray '\342' in program

 if (distance<=15){​​

                   ^

sketch_nov27a:28:20: error: stray '\200' in program

 if (distance<=15){​​

                    ^

sketch_nov27a:28:21: error: stray '\213' in program

 if (distance<=15){​​

                     ^

sketch_nov27a:28:22: error: stray '\342' in program

 if (distance<=15){​​

                      ^

sketch_nov27a:28:23: error: stray '\200' in program

 if (distance<=15){​​

                       ^

sketch_nov27a:28:24: error: stray '\213' in program

 if (distance<=15){​​

                        ^

sketch_nov27a:32:2: error: stray '\342' in program

 }​​

  ^

sketch_nov27a:32:3: error: stray '\200' in program

 }​​

   ^

sketch_nov27a:32:4: error: stray '\213' in program

 }​​

    ^

sketch_nov27a:32:5: error: stray '\342' in program

 }​​

     ^

sketch_nov27a:32:6: error: stray '\200' in program

 }​​

      ^

sketch_nov27a:32:7: error: stray '\213' in program

 }​​

       ^

sketch_nov27a:33:6: error: stray '\342' in program

 else{​​

      ^

sketch_nov27a:33:7: error: stray '\200' in program

 else{​​

       ^

sketch_nov27a:33:8: error: stray '\213' in program

 else{​​

        ^

sketch_nov27a:33:9: error: stray '\342' in program

 else{​​

         ^

sketch_nov27a:33:10: error: stray '\200' in program

 else{​​

          ^

sketch_nov27a:33:11: error: stray '\213' in program

 else{​​

           ^

sketch_nov27a:36:1: error: stray '\342' in program

 ​​}​​

 ^

sketch_nov27a:36:2: error: stray '\200' in program

 ​​}​​

  ^

sketch_nov27a:36:3: error: stray '\213' in program

 ​​}​​

   ^

sketch_nov27a:36:4: error: stray '\342' in program

 ​​}​​

    ^

sketch_nov27a:36:5: error: stray '\200' in program

 ​​}​​

     ^

sketch_nov27a:36:6: error: stray '\213' in program

 ​​}​​

      ^

sketch_nov27a:36:8: error: stray '\342' in program

 ​​}​​

        ^

sketch_nov27a:36:9: error: stray '\200' in program

 ​​}​​

         ^

sketch_nov27a:36:10: error: stray '\213' in program

 ​​}​​

          ^

sketch_nov27a:36:11: error: stray '\342' in program

 ​​}​​

           ^

sketch_nov27a:36:12: error: stray '\200' in program

 ​​}​​

            ^

sketch_nov27a:36:13: error: stray '\213' in program

 ​​}​​

             ^

exit status 1

stray '\342' in program



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

, 👍1


1 ответ


1

Там есть хорошая ошибка. Я скопировал ваш код в свою Arduino IDE, а также получил много ошибок с "stray X в программе".

Затем я просмотрел файл в текстовом редакторе vim и сделал видимыми все непечатаемые символы (то есть символы, которые нельзя увидеть, например, управляющие символы). Вот результат (в виде изображения, чтобы вы могли видеть непечатаемые символы)

Code listing in vim text editor

Как вы видите, у вас есть несколько дополнительных символов, помеченных как <200b>. Google дает мне описание для него следующим образом

пространство нулевой ширины

таким образом, символ пробела, который имеет нулевую ширину и, следовательно, не виден.

Компилятор не знает, как интерпретировать эти символы. Я удалил их, и компиляция прошла успешно. Здесь снова ваш код в виде текста без непечатаемых символов (и автоматически форматируется, чтобы его было легче читать):

#define trigPin 10
#define echoPin 9
#define buzzer 12
long duration;
int distance;



void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  pinMode(buzzer, OUTPUT);
}



void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  Serial.print("DISTANCE=");
  Serial.println(distance);
  if (distance <= 15) {
    tone(buzzer, 450);
    delay (500);
    noTone(buzzer);
  }
  else {
    noTone(buzzer);
  }
}

Как эти непечатаемые символы попали в ваш код, можно только догадываться. Возможно, вы скопировали его части с какого-то веб-сайта, на котором были эти дополнительные символы. Возможно, вы случайно вставили их с помощью какого-то текстового редактора.


Для справки: Используемый раздел часто задаваемых вопросов vim с командами для отображения непечатаемых символов здесь:

11.5. Как мне выделить все непечатаемые символы в файле?

Вы можете использовать следующие команды и шаблон поиска, чтобы выделить все непечатаемые символы в файле:

:установить hlsearch /(\p|$)@!.

Для получения дополнительной информации читайте

:справка /\p

:справка / панель

:справка /$

:помощь /(

:помогите /@!

:справка "hlsearch"

,