遽終 发表于 2013-12-16 21:20:19

请求各位道友

各位大才,能不能帮我编写一段程序用光照强度传感器和声音传感器同时控制LED灯的开关,小弟在此谢谢啦

qptimus 发表于 2013-12-16 21:28:40

你要控制led什么,怎么控制

遽終 发表于 2013-12-16 22:25:35

qptimus 发表于 2013-12-16 21:28 static/image/common/back.gif
你要控制led什么,怎么控制

就是直接控制LED灯的开关,当光照强度和声音强度同时满足一定值的时候,LED灯才会亮起来,

qptimus 发表于 2013-12-16 22:36:20

遽終 发表于 2013-12-16 22:25 static/image/common/back.gif
就是直接控制LED灯的开关,当光照强度和声音强度同时满足一定值的时候,LED灯才会亮起来,

这个……不难吧,基础教程里就有差不多的

遽終 发表于 2013-12-16 23:23:16

qptimus 发表于 2013-12-16 22:36 static/image/common/back.gif
这个……不难吧,基础教程里就有差不多的

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);
pinMode(12,INPUT);
pinMode(A1,INPUT);
}
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);
}
我这样写对吗?谢谢啦

数字 发表于 2013-12-17 15:21:31

你要同时满足条件就应该这样写


void loop()
{
int lightValue=digitalRead(lightPin);//读取模拟口A0数值
Serial.println(lightValue);
int voiceValue=analogRead(voicePin);//读取模拟口A1数值
Serial.println(voiceValue);
if (lightValue>=a && voiceValue>=b)      //对光线和声音强度进行判断,如果比我们的预设值大 就点亮LED否则就关闭
{
    digitalWrite(13,HIGH);
}
else
{
    digitalWrite(13,LOW);
}


}

遽終 发表于 2013-12-17 21:47:33

数字 发表于 2013-12-17 15:21 static/image/common/back.gif
你要同时满足条件就应该这样写




一样,不行

数字 发表于 2013-12-23 10:22:30

为什么你亮度检测不用模拟口?
页: [1]
查看完整版本: 请求各位道友