«Серийный номер не указывает тип ошибки»
Я получаю ошибку serial does not name a type, ожидалось объявление перед токеном '}' на строке 69
const int trigPin = 9;
const int echoPin = 10;
const int buzzer = 11;
const int ledPin = 13;
// определяет переменные
long duration;
int distance;
int safetyDistance;
void setup() {
pinMode(trigPin, OUTPUT); // Устанавливает trigPin как выход
pinMode(echoPin, INPUT); // Устанавливает echoPin как вход
pinMode(buzzer, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // Запускает последовательную связь
}
void loop() {
// Очищает тригПин
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Устанавливает trigPin в состояние HIGH на 10 микросекунд
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Считывает echoPin, возвращает время прохождения звуковой волны в микросекундах
duration = pulseIn(echoPin, HIGH);
// Расчет расстояния
distance = duration * 0.034 / 2;
safetyDistance = distance;
if (safetyDistance <= 5) {
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin, HIGH);
tone(buzzer, 1000);
delay(100);
noTone(buzzer);
delay(100);
}
else {
digitalWrite(buzzer, LOW);
digitalWrite(ledPin, LOW);
}
if (safetyDistance > 5 && safetyDistance <= 10) {
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin, HIGH);
tone(buzzer, 3000);
delay(3000);
noTone(buzzer);
delay(3000);
} else {
digitalWrite(buzzer, LOW);
digitalWrite(ledPin, LOW);
}
}
Serial.print("Distance: ");
Serial.println(distance);
}
@Chun Xian, 👍0
Обсуждение1 ответ
if (safetyDistance > 5 && safetyDistance <= 10) {
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin, HIGH);
tone(buzzer, 3000);
delay(3000);
noTone(buzzer);
delay(3000);
} else {
digitalWrite(buzzer, LOW);
digitalWrite(ledPin, LOW);
}
} //<--
Serial.print("Distance: ");
Serial.println(distance);
}
После закрытия предложения else есть дубликат }. Удалите его, и ваш код скомпилируется.
стоит ли отвечать на этот вопрос?, @Juraj
@Juraj Потому что это отвечает на вопрос, да. Даже вопросы новичков заслуживают ответа. Нам нужно быть более инклюзивными, как я прочитал в https://stackoverflow.blog/2018/04/26/stack-overflow-isnt-very-welcoming-its-time-for-that-to-change/., @Maximilian Gerhardt
Максимилиан, мне как-то не нравится, что я отформатировал код, чтобы показать проблему, а вы пишете ответ, эквивалентный моему комментарию., @Juraj
@Юрай, это верно и хорошо, что ты отформатировал вопрос 3 часа назад, но на вопросы всё равно нужно отвечать в ответах, а не в комментариях. И поскольку вопрос не допускает никаких других ответов, кроме этого, у нас также одинаковые ответы., @Maximilian Gerhardt
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
Я отформатировал ваш код, и теперь вы видите, что у вас есть лишняя скобка } перед строкой с сообщением об ошибке., @Juraj