Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2675|回復: 2
打印 上一主題 下一主題

請問一下關於步進馬達轉動次數

[複製鏈接]
跳轉到指定樓層
1#
發表於 2015-11-21 22:36:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想請問一下各位,我目前是在寫當人體紅外線被觸發時,我的步進馬達要走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);
  }
}
2#
發表於 2015-11-22 07:12:40 | 只看該作者
加一個變數來判斷
如果已經後退過了, 就不要再後退
如果已經前進過了, 就不要再前進
以避免重覆執行
3#
 樓主| 發表於 2015-11-22 10:47:36 | 只看該作者
感謝大大幫忙,已成功解決 !
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-23 17:30 , Processed in 0.061108 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表