Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino &引用;退出状态1';微秒音程';未在此范围内声明;_Arduino_Arduino Ide - Fatal编程技术网

Arduino &引用;退出状态1';微秒音程';未在此范围内声明;

Arduino &引用;退出状态1';微秒音程';未在此范围内声明;,arduino,arduino-ide,Arduino,Arduino Ide,我正在为一个小项目设计一个超声波传感器,我正在设计一个液位传感器。这是我正在学习的一门初级机电一体化课程。但是在第42行,在虚空循环下面,它一直给我这个错误,它说: “退出状态1‘微秒操作’未在此范围内声明” #包括 常数int rs=13,en=12,d4=11,d5=10,d6=9,d7=8; 液晶显示器(rs、en、d4、d5、d6、d7); int-LED1=7; int-LED2=6; int-LED3=5; int-LED4=4; int-Bocina=3; 常数int echoPi

我正在为一个小项目设计一个超声波传感器,我正在设计一个液位传感器。这是我正在学习的一门初级机电一体化课程。但是在第42行,在虚空循环下面,它一直给我这个错误,它说:

“退出状态1‘微秒操作’未在此范围内声明”

#包括
常数int rs=13,en=12,d4=11,d5=10,d6=9,d7=8;
液晶显示器(rs、en、d4、d5、d6、d7);
int-LED1=7;
int-LED2=6;
int-LED3=5;
int-LED4=4;
int-Bocina=3;
常数int echoPin=2;
常数int trigPin=1;
无效设置(){
引脚模式(LED1,输出);
数字写入(LED1,低电平);
引脚模式(LED2,输出);
数字写入(LED2,低电平);
引脚模式(LED3,输出);
数字写入(LED3,低电平);
引脚模式(LED4,输出);
数字写入(LED4,低电平);
pinMode(Bocina,输出);
lcd.begin(16,2);
}
void循环(){
持续时间长;
长英寸;
长厘米;
lcd.clear();
引脚模式(trigPin,输出);
数字写入(trigPin,低电平);
延迟微秒(2);
数字写入(trigPin,高);
延迟微秒(10);
数字写入(trigPin,低电平);
pinMode(echoPin,输入);
持续时间=脉冲强度(echoPin,高);
//cm=(持续时间/29)/2;
//英寸=厘米*0.393701;
英寸=微秒(持续时间);
cm=微秒秒(持续时间);
lcd.setCursor(5,0);
lcd.print(“Nivel:”);
lcd.setCursor(0,1);
lcd.打印(英寸);
lcd.打印(“in”);
}
如果(英寸>=4){
数字写入(LED1,高);
数字写入(LED2,高);
数字写入(LED3,高);
数字写入(LED4,低电平);
}
否则,如果(英寸>=3){
数字写入(LED1,低电平);
数字写入(LED2,高);
数字写入(LED3,高);
数字写入(LED4,低电平);
}
否则,如果(英寸>=2){
数字写入(LED1,低电平);
数字写入(LED2,低电平);
数字写入(LED3,高);
数字写入(LED4,低电平);
音调(3200100);
延迟(1000);
}
否则,如果(英寸>=1){
数字写入(LED1,低电平);
数字写入(LED2,低电平);
数字写入(LED3,低电平);
数字写入(LED4,高);
tone(3,2000);
}
}
长微秒音程(长微秒){
返回(微秒/74)/2;
}
长微秒分秒计(长微秒){
返回(微秒/29)/2;
}
能解释一下这里有什么问题吗?如何解决呢


提前感谢:)

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

在声明
微秒操作
函数之前,有一个额外的结束括号
}
。只要把它取下来,你就可以走了

也欢迎使用堆栈溢出

#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;
}