[問題] 關於使用Arduino 控制步進馬達
大家好
想請教一下使用Arduino控制步進馬達的部分
我的程式流程是這樣:
從電腦端(python)發送一個訊號
Arduino接受到訊號之後會轉一步
接著轉完後會再回傳一個訊號給電腦
電腦端那邊已經完成
但是Arduino這邊有些問題
這是我的程式碼的部分
Ideone:https://ideone.com/DL0fHu
#include <Stepper.h>
Stepper stepper(400, 9, 8, 7, 6);
int m=0;
int New_m=0; //先訂兩個參數 m 與 New_m
void setup() {
Serial.begin(115200);
}
void loop() {
while (1){
if(Serial.available() > 0) {
char data = Serial.read();
m=m+1; //當接受到電腦發送的資料的時候m+1
if (New_m!=m){
stepper.setSpeed(10);
stepper.step(1);
delay(500);
New_m=m;
}
//當New_m !=m 時,則馬達走1步
//之後再將New_m修改成當前m的值
Serial.print(data);
}
}
}
目前我自己做的結果
從電腦端發出訊號後
馬達會自己走自己的不理會電腦的訊號
但是電腦端接收到的Arduino訊號卻是正常的
想請問馬達這段要修改哪邊才會達到我想要的目的?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.105.133.228
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1547286547.A.BC7.html
推
01/12 18:55,
7年前
, 1F
01/12 18:55, 1F
推
01/12 19:02,
7年前
, 2F
01/12 19:02, 2F
→
01/12 19:02,
7年前
, 3F
01/12 19:02, 3F
謝謝~
剛剛試了一下之後大致正常了
只是stepper.step(1)這段
如果把1改成別的數字的話那前幾次也會不聽命令
剛剛測試了一下用5以下的話都會正常
可是來到10之後馬達又自己轉自己的了
會是因為轉速跟不上資料傳送的速度而導致的嗎?
※ 編輯: st40182 (120.105.133.228), 01/12/2019 19:37:11
→
01/12 20:53,
7年前
, 4F
01/12 20:53, 4F