Arduino停止进程,如果再也没有动静怎么解决

问题描述

你好,我有问题:

状态传感器=传感器步进“如果”,任何人都“立即执行” =冲动“ =所有代码都运行”完美的工作,我很开心”,但是如果传感器LOW a在加载代码时未检测到任何运动,则=中断全部停止,即使它在结束或中途结束时,将在没有交通“”(stage_sensor == HIGH)“”时停止,我不知道如何解决此问题///

请帮助或建议

编辑:可能存在语法错误(不一致),但只是想提出一个问题,系统仅在“ if”下工作,这是问题,我不知道如何解决

#include <AccelStepper.h> //accelstepper library

// #define light
// #define move_sensor
// #define water_pump
// #define fan_blowing
// #define fan_extractor
// #define blue
// #define red
// #define green

const byte limitSwitch_1 = 26;
const byte limitSwitch_2 = 25;
bool switchFlipped = false;
bool prevIoUsFlip = true;
int switchCounter;
int newSpeed;
int state_sensor = 0;  // <--- stage sensor //
int light = 2;
int blue = 3;
int red = 4;
int green = 5;
int fan_blowing = 6;
int water_pump = 8;
int move_sensor = 9;
int fan_extractor = 10;

AccelStepper stepper(1,22,23);

void setup()
{
    pinMode(water_pump,OUTPUT);
    pinMode(light,OUTPUT);
    pinMode(fan_blowing,OUTPUT);
    pinMode(fan_extractor,OUTPUT);  
    pinMode(blue,OUTPUT);
    pinMode(red,OUTPUT);
    pinMode(green,OUTPUT);
    pinMode(move_sensor,INPUT);
    pinMode(limitSwitch_1,INPUT_PULLUP);  //pin 1 engine (IF touch)
    pinMode(limitSwitch_2,INPUT_PULLUP);  //pin 2 engine (IF touch)

    Serial.begin(9600);

    stepper.setMaxSpeed(1000);
    stepper.setacceleration(100); 
    stepper.setSpeed(1000);

    delay(500);
}

void loop()
{
    digitalWrite(light,HIGH); 
    digitalWrite(blue,HIGH);

    state_sensor = digitalRead(move_sensor);
    if (state_sensor == HIGH)   // <--- stage sensor IF anyone move = all code run but if sensor LOW did not detect movement all code broke stop all //
    {
        digitalWrite(blue,LOW);
        digitalWrite(red,HIGH);
  
        stepper.runSpeed();
        engine();
    }
}

void engine() 
{
    if(digitalRead(limitSwitch_1) == LOW)
    {
        switchCounter++;
        delay(1000);

        newSpeed = -1 * (1000 + (switchCounter * 200));
        stepper.setSpeed(newSpeed);
    }

    if(digitalRead(limitSwitch_2) == LOW)
    {
        switchCounter++;
        delay(1000);

        newSpeed = -1 * (1000 + (switchCounter * 200));
        stepper.stop();
        fans();
    }
}

void fans()
{
    digitalWrite(red,HIGH);
    {
        digitalWrite(fan_blowing,HIGH);
        digitalWrite(fan_extractor,HIGH);

        delay(1000);
        digitalWrite(water_pump,HIGH);
    }

    delay(1000);

    digitalWrite(red,LOW);
    digitalWrite(water_pump,LOW);
    digitalWrite(green,HIGH);

    delay(1000);

    digitalWrite(fan_blowing,LOW);
    digitalWrite(fan_extractor,LOW);
    digitalWrite(blue,HIGH); //this blue RGB light "ON" but if sensor_steps "ON" = active cycle,blue light led off

    delay(1000);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)