Arduinowilliam hill官网
直播中

陈星

10年用户 4705经验值
擅长:电源/新能源 处理器/DSP 控制/MCU
私信 关注
[讨论]

做音乐火焰报警器陈星遇到一个错误

本帖最后由 xianyoudian 于 2015-11-28 20:21 编辑

大家帮我看一下这个错误怎么改, error: empty character constant
程序通过火焰传感器感知火焰,用ARDUINO控制蜂鸣器发声,火焰靠近让蜂鸣器发出音乐,以作报警,
int flame=A5;//定义火焰接口为模拟0 接口
int Beep=9;//定义蜂鸣器接口为数字9 接口
int length=15;
char notes[]="ccggaagffeeddc ";
int beats[]={1,1,1,1,1,1,2,1,1,1,1,1,1,2,4};
int tempo=300;

int val=0;//定义数字变量
void playTone(int tone ,int duration)
{
for(long i=0;i digitalWrite(Beep,HIGH);
delayMicroseconds(tone);
digitalWrite(Beep,LOW);
delayMicroseconds(tone);
}
}
void playNote(char note,int duration )
{
char names[]={'c','d','e','f','g','a','b','C'};
int tones[]={1915,1700,1519,1432,1275,1136,1014,956};
for(int i=0;i<8;i++)
{
  if(names==note)
playTone(tones,duration);
}
}
void setup()   
{
  pinMode(Beep,OUTPUT);//定义LED 为输出接口  
pinMode(flame,INPUT);//定义蜂鸣器为输入接口  
Serial.begin(9600);//设定波特率为9600
}   
void loop() {
  val=analogRead(flame);//读取火焰传感器的模拟值  
Serial.println(val);//输出模拟值,并将其打印出来  
if(val>=600)//当模拟值大于600 时蜂鸣器鸣响   
{ digitalWrite(Beep,HIGH);
   for(int i=0;i    {
  if(notes=='')
delay(beats*tempo);
  else
  playNote(notes,beats*tempo);
  delay(tempo/2);
   }
}
else {
  digitalWrite(Beep,LOW);
     }
}



已退回1积分

回帖(3)

陈星

2014-12-8 18:10:32
是程序遇到一个错误
举报

alan2118

2015-6-4 22:13:27
if(notes[i]=='')
delay(beats[i]*tempo);

if语句后少了个"{"
举报

陈星

2015-6-5 10:48:26
引用: alan2118 发表于 2015-6-4 22:13
if(notes=='')
delay(beats*tempo);

              谢谢,已找到
举报

更多回帖

发帖
×
20
完善资料,
赚取积分