//断刀检测
int i; //开关输入值
int t; //刀具检测开启数
void setup() {
pinMode(8,INPUT); //8号脚为轻触开关
pinMode(2,OUTPUT);//报警指示灯
pinMode(3,OUTPUT);//3号脚为继电器输出口
pinMode(4,OUTPUT);//按钮指示灯
Serial.begin(9600);
}
void loop() {
i=digitalRead(8); //8号脚状态赋于i
Serial.println(i);
if(i==1){
digitalWrite(4,HIGH); //按下按钮灯亮
t=1;
}
else
digitalWrite(4,LOW); //未按下按钮灯不亮
//这两段上面是单纯的检测开关是否被按下,下面这段是通过两次碰触开关来检测刀是不是断了。第一次碰触是为了给第二次做准备,因为第二碰触不到才让继电器工作的(两碰触的点是不同的)
//现在问题是这两个状态有干涉,做完最后一部还需要有人复位开关,不知道怎么加
if(t==1){ //如t为1,代表按钮按下过一次
delay(5000); //延时5秒
if(i==1){ //再次检测按钮是否被按下
digitalWrite(2,HIGH); //灯亮
t=0; //检测完后t值清0
}
else
digitalWrite(2,LOW); //如果按钮第二次没被按下则灯灭
digitalWrite(3,HIGH); //继电器输出,让机床暂停工作
}
}
|