单片机arduino的问题:expected primary-expression before ')' token 30
#definestartVoice;#definestartredsensor;//引脚定义constintvoiceout=1;constintredin=2;cons...
#define startVoice;
#define startredsensor;
// 引脚定义
const int voiceout=1;
const int redin=2;
const int redout=3;
const int trig = 4; // 触发信号
const int echo = 5; // 反馈信号
const int ultrout=6;
int sensor1=0;
float sensor2, sensor3;
//初始化
void setup() {
pinMode(echo, INPUT);
pinMode(redin, INPUT);
pinMode(trig, OUTPUT);
pinMode(voiceout, OUTPUT);
pinMode(redout, OUTPUT);
pinMode(ultrout, OUTPUT);
Serial.begin(9600);
}
//主循环
void loop() {
long IntervalTime=0; //定义一个时间变量
while(1){
digitalWrite(trig, 1);//置高电平
delayMicroseconds(15);//延时15us
digitalWrite(trig, 0);//设为低电平
IntervalTime=pulseIn(echo, HIGH);//用自带的函数采样反馈的高电平的宽度,单位us
float S=IntervalTime/58.00; //使用浮点计算出距离,单位cm
Serial.println(S);//通过串口输出距离数值
sensor1=analogRead(0);
sensor2=digitalRead(redin);
sensor3=S;
if(sensor1<500) {startVoice();} //通过读取传感器信号,判读执行哪段函数
if(sensor2==HIGH){startredsensor();}
if(s<80){startultr();}
if(s>110){startultr();}
void startVoice(){
voiceout==HIGH;
delay(1000);//
S=0;IntervalTime=0;//对应的数值清零。
return
}
expected primary-expression before ')' token提示是以下这段过不去
if(sensor1<500) {startVoice();} //通过读取传感器信号,判读执行哪段函数 展开
#define startredsensor;
// 引脚定义
const int voiceout=1;
const int redin=2;
const int redout=3;
const int trig = 4; // 触发信号
const int echo = 5; // 反馈信号
const int ultrout=6;
int sensor1=0;
float sensor2, sensor3;
//初始化
void setup() {
pinMode(echo, INPUT);
pinMode(redin, INPUT);
pinMode(trig, OUTPUT);
pinMode(voiceout, OUTPUT);
pinMode(redout, OUTPUT);
pinMode(ultrout, OUTPUT);
Serial.begin(9600);
}
//主循环
void loop() {
long IntervalTime=0; //定义一个时间变量
while(1){
digitalWrite(trig, 1);//置高电平
delayMicroseconds(15);//延时15us
digitalWrite(trig, 0);//设为低电平
IntervalTime=pulseIn(echo, HIGH);//用自带的函数采样反馈的高电平的宽度,单位us
float S=IntervalTime/58.00; //使用浮点计算出距离,单位cm
Serial.println(S);//通过串口输出距离数值
sensor1=analogRead(0);
sensor2=digitalRead(redin);
sensor3=S;
if(sensor1<500) {startVoice();} //通过读取传感器信号,判读执行哪段函数
if(sensor2==HIGH){startredsensor();}
if(s<80){startultr();}
if(s>110){startultr();}
void startVoice(){
voiceout==HIGH;
delay(1000);//
S=0;IntervalTime=0;//对应的数值清零。
return
}
expected primary-expression before ')' token提示是以下这段过不去
if(sensor1<500) {startVoice();} //通过读取传感器信号,判读执行哪段函数 展开
展开全部
你的程序问题比较多,应该是不太熟悉软件,我先说几个问题:
1、开头的宏定义
#define startVoice;
#define startredsensor;
是做什么用的,你没有定义完成
2、你的loop()程序到哪儿截至,你少了两个括号
3、startVoice()程序用到的S和IntervalTime两个变量只在loop()循环中声明过,但要想在程序间调用,变量必须为全局变量,也就是说S和IntervalTime的定义必须放在setup()前
4、 if(s<80){startultr();}
if(s>110){startultr();}
这两句里的s应该是你写错了,是startultr()这个函数尚未给出
你先把上面的问题改改吧
1、开头的宏定义
#define startVoice;
#define startredsensor;
是做什么用的,你没有定义完成
2、你的loop()程序到哪儿截至,你少了两个括号
3、startVoice()程序用到的S和IntervalTime两个变量只在loop()循环中声明过,但要想在程序间调用,变量必须为全局变量,也就是说S和IntervalTime的定义必须放在setup()前
4、 if(s<80){startultr();}
if(s>110){startultr();}
这两句里的s应该是你写错了,是startultr()这个函数尚未给出
你先把上面的问题改改吧
更多追问追答
追问
我是一个纯初学者,感谢大神指点,解疑
loop的循环到if(s>110){startultr();}之后 }
需要用于调用的函数是startVoice()、startredsensor()和startultr()
开始我没有用#define 去定义这些调用函数它说不行,然后用了就出现了那句话。
在arduino的一本书上,它的那段程序根本没用#define也行,我就看不懂了。不知道该怎么修改?
追答
startVoice()、startredsensor()和startultr()
这三个函数不是系统自带的,既然你提到书上写的,它应该是在相同的目录中放了这三个子程序。执行的是同一个文件夹下的程序调用,你到书上其他地方找找这三个程序,写好了以文件的形式保存在相同的文件夹下进行调用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询