怎么用三个按钮控制灯泡的亮灭?
本帖最后由 acdc0616 于 2012-9-28 17:38 编辑请教各位老师个问题。
要求:按钮1+按钮2=灯泡亮按钮3=灯泡灭
当按下按钮1后松开(不再按下),在按下按钮2后灯亮,松开按钮2灯灭,在按下灯亮,在松开灯灭~~~~~。
按下按钮3灯灭,按钮1复位。
如果单独按下按钮2灯不启动。
相当于按钮1是自锁,按钮2是点动,我只会PLC编程,不会C语言编程,在PLC内这个程序比较简单,在C语言中我一点不会,希望各位老师能指导一下。 用两条if就可以搞定了~ int num;
num=0;
void loop(){
if(按钮1按下 or 按钮2按下){
num=num+1;
}
if(num/2=int(num/2){
灯,低电平输出;
}else{
灯,高电平输出;
}
if(num=10000){
num=0; //要是没有这个num>30000+时,就会出错。
}
} maojidan 发表于 2012-9-27 21:40 static/image/common/back.gif
用两条if就可以搞定了~
老师,之前说的问题不太准确,我修改了一下,在帮我看看。 bacon6581 发表于 2012-9-28 11:43 static/image/common/back.gif
int num;
num=0;
void loop(){
老师,之前说的问题不太准确,我修改了一下,在帮我看看。
//三个按键控制一个LED灯;
int key_slock = 5; //按键1输入端;
int key_led = 6;//按键2输入端;
int key_reset = 7;//按键3输入端;
int led = 8;//接led灯输入;
boolean rst_n = false; //上电复位;
boolean led_state = false; //led灯的状态控制,初始化为灭;
void setup()
{
pinMode(key_slock,INPUT);//初始化,定义各端口属性;
pinMode(key_led,INPUT);
pinMode(key_reset,INPUT);
pinMode(led,OUTPUT);
}
boolean key_rst_n()
{
if(digitalRead(key_reset) == LOW)//检测按键3是否有按下,有则使按键1复位,此时按键2失去作用;
{
delay(20);
if(digitalRead(key_reset) == LOW)
{
rst_n = false;//复位;
}
while(digitalRead(key_reset) == LOW);
}
if(digitalRead(key_slock) == LOW) //按键1按下,此时按键2功能有效;
{
delay(20);
if(digitalRead(key_slock) == LOW)
{
rst_n = true;//重新启动;
}
while(digitalRead(key_slock) == LOW);
}
return rst_n;
}
boolean key_ledon()
{
if(digitalRead(key_led) == LOW)//按键2控制灯的亮灭;
{
delay(20);
if(digitalRead(key_led) == LOW)
{
led_state = true;//按键有按下,点亮led;
return led_state;
}
while(digitalRead(key_led) == LOW);//等待按键松开;
delay(20); //后延消抖;
led_state = false;//按键松开后,熄灭led灯;
}
return led_state;
}
void loop()
{
if(key_rst_n())//调用key_scan1(),判断系统状态;
{
digitalWrite(led,key_ledon());//输出led的状态;
}
}
不知道是不是你要的结果
如果不需要上位机监控的话
买个继电器就好了,也不需要PLC和Arduino的。
我也是做PLC的,你要知道很多设备是不需要PLC也跑的转的,只要合适就好。 Tim 发表于 2012-9-28 16:36 static/image/common/back.gif
//三个按键控制一个LED灯;
int key_slock = 5; //按键1输入端;
int key_led = 6;//按键2输入端;
非常感谢 我测试了 完全是我想要的结果。 幻生幻灭 发表于 2012-9-28 17:23 static/image/common/back.gif
如果不需要上位机监控的话
买个继电器就好了,也不需要PLC和Arduino的。
谢谢你,你的图非常正确,我只是想学习学习C语言。
其实我想做个出门提醒器,当我预设值的条件和屋门打开,两个条件同时满足时,输出语音提示,告诉我类似别忘了带钥匙、手机、关闭天然气之类的话。多预设几个条件开关,都和屋门打开开关条件相加,满足后相应输出不同的语音。
页:
[1]