按下按钮后延迟伺服运动 - Arduino

Delaying Movement of Servo after button press - Arduino

最近我一直在做一个项目,主要目标是移动模型火箭上的伺服系统以部署降落伞。我想做的是在我按下按钮 10 秒后降落伞被释放。我已经为此编写了一些代码,但它不起作用,因为它完全停止了代码。有谁知道如何解决这个问题?


#include <Servo.h>

// constants won't change
const int BUTTON_PIN = 7; // Arduino pin connected to button's pin
const int SERVO_PIN  = 9; // Arduino pin connected to servo motor's pin

Servo servo; // create servo object to control a servo

// variables will change:
int angle = 0;          // the current angle of servo motor
int lastButtonState;    // the previous state of button
int currentButtonState; // the current state of button

void setup() {
  Serial.begin(9600);                // initialize serial
  pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode
  servo.attach(SERVO_PIN);           // attaches the servo on pin 9 to the servo object

  servo.write(angle);
  currentButtonState = digitalRead(BUTTON_PIN);
}

void loop() {
  lastButtonState    = currentButtonState;      // save the last state
  currentButtonState = digitalRead(BUTTON_PIN); // read new state

  if(lastButtonState == HIGH && currentButtonState == LOW) {
    Serial.println("The button is pressed");
    time.delay(10000)
    
    // change angle of servo motor
    if(angle == 0)
      angle = 90;
    else
    if(angle == 90)
      angle = 0;

    // control servo motor arccoding to the angle
    servo.write(angle);
  }
}

在 Arduino 中,延迟通常用 delay(10000); 完成(10 秒)。我从未见过或听说过 time.delay() 函数,所以这可能是问题所在。否则代码看起来应该像你想要的那样工作。

这也可能取决于您 运行 它所在的电路板。我记得在 ESP8266 上长时间使用 delay() 时遇到问题,尽管我很确定它可以持续数十秒。