请求各位大神帮我看看哪里错了
int lightPin=12;int voicePin=A1;
int ledPin=13;
int lightValue=0;
int voiceValue=0;
int a =800; //此处需是环境基础亮度变量,请查看自己的亮度数值,填写到此处数值要略大于所测得的数据但小于灯光下的数据
intb=55; //此处需是环境基础变量,请查看自己的数值,填写到此处数值要略大于所测得的数据但小于数据
void setup ()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
int lightValue=digitalRead(lightPin);//读取模拟口A0数值
Serial.println(lightValue);
int voiceValue=analogRead(voicePin);//读取模拟口A1数值
Serial.println(voiceValue);
if (lightValue>=a) //对光线和声音强度进行判断,如果比我们的预设值大 就点亮LED否则就关闭
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
delay(1000);
if (voiceValue>=b)
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
delay(1000);
}
主要是用光照强度传感器和声音传感器控制LED的开关,只有当这两个传感器返回的值大于一定的值的时候,LED灯才会亮起来,但是把程序下载到arduino上的时候,只有光照强度传感器能控制LED的开关,并不能同时共同作用控制,还有这个错误:avrdude: stk500_getsync(): not in sync: resp=0x00请问各位大神,这是为什么呢?? 试一试这个增加一个布尔型变量作为想要控制的开关。
boolean b;
当亮度和声音大于规定的时候,b值为真,控制LED的打开。
if ((lightValue>=a and voiceValue>=b)
{b=true;}
在循环程序段中加入
if(b==true)
digitalWrite(13,HIGH);
else
digitalWrite(13,LOW); 用什么测的光线,怎么接线的,接在哪个脚了,12脚没初始化,读数字引脚只有两个结果,0或1 int lightValue=digitalRead(lightPin);//读取模拟口A0数值
需要改成analog,并且接到A0脚或其他模拟输入脚。
setup里要把所有用到的脚都明确指明是INPUT还是OUTPUT tom 发表于 2013-12-16 21:32 static/image/common/back.gif
试一试这个增加一个布尔型变量作为想要控制的开关。
boolean b;
好的!谢谢:)
页:
[1]