代码如下
:
//管子切割自动收紧器!2017-6-25
bool as_b=false;
bool aj_b=false;
bool x_x_b=false;//向下标志位
bool s_b=false;
bool j_b=false;//紧标志位
bool led=false;//led闪烁灯标志
#define x_x 4//向下 输入 24V继电器一个接GND
#define as 3//按键松 输入
#define aj 2//按键紧 输入
#define song 6// 入芯子 输出 继电器 5v-24V
#define jin 7// 抽芯子 输出 继电器 5v-24V
#define L1 13
int temp_t1=0;//临时变量秒(每秒执行)
void setup() {
Serial.begin(115200);
Serial.println("XiaoHe520:496631085_TEL:17051329108_v1.0");
pinMode(L1,OUTPUT);
pinMode(jin,OUTPUT);
pinMode(song,OUTPUT);
pinMode(aj,INPUT_PULLUP);
pinMode(as,INPUT_PULLUP);
pinMode(x_x,INPUT_PULLUP);
digitalWrite(song,HIGH);
digitalWrite(jin,HIGH);
}
void loop() {
pda();
meimiao();
//run_p();
/*bool as_b=false;
bool aj_b=false;
bool x_x_b=false;//向下标志位
bool s_b=false;
bool j_b=false;//紧标志位
*/
if(as_b==true&&aj_b==false)
{digitalWrite(song,LOW);s_b=true;}
else digitalWrite(song,HIGH);
if(aj_b==true)
{
digitalWrite(jin,LOW);
j_b=true;
}
else {digitalWrite(jin,HIGH);j_b=false;}
}//LOOP 结束
void pda()
{
if(digitalRead(x_x)==LOW)//判断是否按下 向下
{
delay(10);
if(digitalRead(x_x)==LOW)
{
x_x_b=true;
j_b=true;//如果向下 就紧
}
}
else if(digitalRead(x_x)==HIGH)
x_x_b=false;
//_______________________
if(digitalRead(aj)==LOW)
{
delay(10);
if(digitalRead(aj)==LOW)
{
aj_b=true;
}
}
else aj_b=false;
//_______________________
//必须向下为假才能松按钮
if(digitalRead(as)==LOW)
{ if(x_x_b==false)
{
delay(10);
if(digitalRead(as)==LOW)
{
as_b=true;
}
} }
else as_b=false;//
//__________________________________
}
//——————————————————
void meimiao()
{
if(temp_t1!=millis()/1000)
{temp_t1=millis()/1000;
if(led==true){digitalWrite(L1,LOW);led=false;}
else {digitalWrite(L1,HIGH);led=true;}
Serial.print(led);
Serial.print("as_b:"); Serial.print(as_b);
Serial.print(" aj_b:"); Serial.print(aj_b);
Serial.print(" x_x_b:"); Serial.print(x_x_b);
Serial.print(" s_b:"); Serial.print(s_b);
Serial.print(" j_b:"); Serial.println(j_b);
}
}