希望实现的是,监控窗口输入1,电机转动,按下压力传感器及停止,即使松开 电机也是停止状态……
分别使用if 和switch两种 都是输入1后,电机运转,按压压力传感器,无法停下电机。
用if如下:
#define press_sensor 2
#define NPN_2 4 //缩杆子7 伸4
bool i;
void setup() {
pinMode(press_sensor,INPUT);
pinMode(NPN_2,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available())
{
int signal = Serial.read();
if(signal==49)//输1 运行
{
shengan(1);
i=digitalRead(press_sensor);
if(i!=0)
{shengan(0);//没按 运动
delay(10);
}
else
{ shengan(1);}//按了停下
}
}
}
void shengan(bool on)
{if (on==1)
digitalWrite(NPN_2,HIGH);//运动
else
digitalWrite(NPN_2,LOW);//停
}
用switch如下:
#define press_sensor 2
#define NPN_2 4 //缩杆子7 伸4
bool i;
int flag=1;
void setup() {
pinMode(press_sensor,INPUT);
pinMode(NPN_2,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available())
{
int signal = Serial.read();
if(signal==49)
{
switch(flag)
{
case 1:
{ shengan(1);
i=digitalRead(press_sensor);
if(i==1)
{flag++;
}
break;
}
case 2:
{shengan(0);
flag++;
break;
}
default:
break;
}
}
}
}
void shengan(bool on)
{if (on==1)
digitalWrite(NPN_2,HIGH);//运动
else
digitalWrite(NPN_2,LOW);//停
}