【问题标题】:"exit status 1 'microsecondsToInches' was not declared in this scope"“退出状态 1 'microsecondsToInches' 未在此范围内声明”
【发布时间】:2021-05-18 18:00:20
【问题描述】:

我正在尝试为我正在尝试设计液位传感器的小项目编写超声波传感器。这是针对我现在正在学习的初学者机电一体化课程。但它一直在第 42 行给我这个错误,在 void 循环下面,它说:

“退出状态 1'microsecondsToInches' 未在此范围内声明”

#include <LiquidCrystal.h>
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int LED1 = 7;
int LED2 = 6;
int LED3 = 5;
int LED4 = 4;
int Bocina = 3;
const int echoPin = 2;
const int trigPin = 1;

void setup() {

  pinMode (LED1, OUTPUT);
  digitalWrite(LED1, LOW);
  pinMode(LED2, OUTPUT);
  digitalWrite(LED2, LOW);
  pinMode(LED3, OUTPUT);
  digitalWrite(LED3, LOW);
  pinMode(LED4, OUTPUT);
  digitalWrite(LED4, LOW);
  pinMode(Bocina, OUTPUT);
  lcd.begin(16, 2);
}

void loop() {

  long duration;
  long inches;
  long cm;
  lcd.clear();
  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  //cm = ( duration / 29 ) / 2;
  //inches = cm * 0.393701;
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
  lcd.setCursor(5, 0);
  lcd.print("Nivel:");
  lcd.setCursor(0, 1);
  lcd.print(inches);
  lcd.print(" in");
}

if (inches >= 4) {
  digitalWrite (LED1, HIGH);
  digitalWrite (LED2, HIGH);
  digitalWrite (LED3, HIGH);
  digitalWrite (LED4, LOW);
}

else if (inches >= 3) {
  digitalWrite (LED1, LOW);
  digitalWrite (LED2, HIGH);
  digitalWrite (LED3, HIGH);
  digitalWrite (LED4, LOW);
}

else if (inches >= 2) {
  digitalWrite (LED1, LOW);
  digitalWrite (LED2, LOW);
  digitalWrite (LED3, HIGH);
  digitalWrite (LED4, LOW);
  tone(3, 2000, 100);
  delay(1000);
}

else if (inches >= 1) {
  digitalWrite (LED1, LOW);
  digitalWrite (LED2, LOW);
  digitalWrite (LED3, LOW);
  digitalWrite (LED4, HIGH);
  tone(3, 2000);

}

}
long microsecondsToInches(long microseconds) {
  return (microseconds / 74) / 2;
}
long microsecondsToCentimeters(long microseconds) {
  return (microseconds / 29) / 2;
}

有人能解释一下这里有什么问题吗?又该如何解决呢?

提前致谢:)

【问题讨论】:

    标签: arduino arduino-ide


    【解决方案1】:

    Arduino 没有正确生成函数原型,因为文件中有语法错误。

    在声明microsecondsToInches 函数之前,您有一个额外的右括号}。只需将其删除,您就可以开始使用了

    也欢迎堆栈溢出!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2016-08-09
      • 2019-02-17
      • 2021-01-07
      • 2016-10-27
      相关资源
      最近更新 更多