如何解决“退出状态 1 'microsecondsToInches' 未在此范围内声明”
我正在尝试为一个小型项目编写超声波传感器程序,我正在尝试设计液位传感器。这是我现在正在学习的机电初学者课程。但它一直在第 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,LOW);
}
else if (inches >= 2) {
digitalWrite (LED1,LOW);
digitalWrite (LED3,LOW);
tone(3,2000,100);
delay(1000);
}
else if (inches >= 1) {
digitalWrite (LED1,LOW);
digitalWrite (LED4,HIGH);
tone(3,2000);
}
}
long microsecondsToInches(long microseconds) {
return (microseconds / 74) / 2;
}
long microsecondsToCentimeters(long microseconds) {
return (microseconds / 29) / 2;
}
有人可以解释我这里有什么问题吗?以及如何解决?
提前致谢:)
解决方法
Arduino 没有正确生成函数原型,因为文件中有语法错误。
在声明 }
函数之前,您有一个额外的右括号 microsecondsToInches
。只需删除它,你应该很高兴
也欢迎堆栈溢出!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。