是孑然呀 2022-01-10 22:47 采纳率: 0%
浏览 126
已结题

arduino接受传感器信号控制电机(推杆)

希望实现的是,监控窗口输入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);//停
 }
  • 写回答

1条回答 默认 最新

  • 是孑然呀 2022-01-11 11:12
    关注

    if的 自己琢磨出来了,前面加上一个flag判断 控制。switch的还没弄出来

    评论

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀