【发布时间】:2018-05-14 23:19:57
【问题描述】:
我目前正在尝试制作一个可操作的 plinko 机器,它的爪子通过 H 桥来回移动,每隔几秒就反转一个直流电机。我需要我的按钮在延迟中间停止直流电机。我知道这可以使用millis() 函数来完成,但我仍然对如何在场景中使用它感到很困惑(看到我只是一个初学者。)
#include <Servo.h>
Servo servo;
const int btn_pin = 9;
const int servo_pin(8);
const int EN_Pin(3);
const int Pin_1A(4);
const int Pin_2A(2);
int btn_prev = HIGH;
void setup() {
servo.attach(servo_pin);
Serial.begin(9600);
pinMode(btn_pin, INPUT_PULLUP);
pinMode(7, OUTPUT);
pinMode(EN_Pin, OUTPUT);
pinMode(Pin_1A, OUTPUT);
pinMode(Pin_2A, OUTPUT);
}
void loop() {
int btn_state;
btn_state = digitalRead(btn_pin);
while ( btn_state == HIGH )
digitalWrite(Pin_1A, HIGH);
digitalWrite(Pin_2A, LOW);
analogWrite(EN_Pin, 255);
delay(1000);
digitalWrite(Pin_1A, LOW);
digitalWrite(Pin_2A, HIGH);
delay(1000);
if ( (btn_prev == HIGH) && (btn_state == LOW) ) {
digitalWrite(7, HIGH);
servo.write(45);
delay(2500);
servo.write(-45);
btn_prev = btn_state;
}
}
【问题讨论】:
-
欢迎来到stackoverflow!只是想说,当您寻求原始代码的帮助时,最好对您的代码进行注释并特别标记您需要帮助的地方。这为我们省去了很多麻烦。
-
好的,感谢您的建议,注意
标签: c++ arduino embedded delay