Arduino初心者です。助言いただけると幸いです。
シリアルモニタ等から1を入力したら5秒、2を入力したら2.5秒動かす、といったプログラムを作成したいです。
例えば1を打ったら5秒モータが動き、その後止まって再び入力されるまでまつ(loop関数の最初に戻る)ものを作りたいです。(https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14108242834)
このサイトを一部参考にして作ったのですが、うまくいきません。ずっとモータが動き続けてしまいます。具体的なプログラム等を助言いただけると幸いです。
void loop() {
if (Serial.available() > 0) {
data = Serial.read();//
if (data == '1') {
unsigned long start = millis();
while (millis() < start + 5000) {
analogWrite(PIN_VREF,255);
digitalWrite(PIN_IN1,LOW);
digitalWrite(PIN_IN2,HIGH);
}
// Serial.println("open");
// delay(500);
} else if (data == '2') {
unsigned long start = millis();
while (millis() < start + 5000) {
analogWrite(PIN_VREF,255);
digitalWrite(PIN_IN1,LOW);
digitalWrite(PIN_IN2,HIGH);
delay(2500);
よろしくお願いいたします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/17 08:34