Robofun 機器人論壇

標題: 請問一下關於步進馬達轉動次數 [打印本頁]

作者: h220228932    時間: 2015-11-21 22:36
標題: 請問一下關於步進馬達轉動次數
想請問一下各位,我目前是在寫當人體紅外線被觸發時,我的步進馬達要走388步就停止,直到當人離開時再往回走388步。
但目前遇到的問題是他會一直走388步不會停,想請問一下各位這樣的情況要如何解決?

以下是我的程式:
const int PIRSensor = 2;     // 紅外線動作感測器連接的腳位
const int ledPin =  13;      // LED 腳位
#include <Stepper.h>
const int stepsPerRevolution = 2048; //馬達一圈2048步
int sensorValue = 0;         // 紅外線動作感測器訊號變數
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);

void setup() {
  pinMode(PIRSensor, INPUT);     
  pinMode(ledPin, OUTPUT);  
  myStepper.setSpeed(5);
  Serial.begin(9600);
}

void loop(){
  // 讀取 PIR Sensor 的狀態
  sensorValue = digitalRead(PIRSensor);

  // 判斷 PIR Sensor 的狀態
  if (sensorValue == HIGH) {     
    Serial.println("clockwise");
myStepper.step(388);
digitalWrite(ledPin, HIGH);  // 有人,開燈
    delay(3000);
  }
  else {
    Serial.println("counterclockwise");
myStepper.step(-388);
digitalWrite(ledPin, LOW); // 沒人,關燈
    delay(3000);
  }
}
作者: 超新手    時間: 2015-11-22 07:12
加一個變數來判斷
如果已經後退過了, 就不要再後退
如果已經前進過了, 就不要再前進
以避免重覆執行
作者: h220228932    時間: 2015-11-22 10:47
感謝大大幫忙,已成功解決 !




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2