Robofun 機器人論壇

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

arduino 步進馬達問題

[複製鏈接]
1#
發表於 2016-4-28 11:34:42 | 顯示全部樓層
本帖最後由 超新手 於 2016-4-28 11:38 編輯

宣告一個 int s;
把 stepper.step(s); 寫到 loop 外
收到 a, 就讓 s=1
收到 b, 就讓 s=-1
當然...還要加一個停止的命令..s=0
否則不會停
void loop()  
{  
stepper.step(s);
if (Serial.available()) {
val = Serial.read();
switch(val){
..............................
  }
}
}

沒測過, 不知道可不可以動
2#
發表於 2016-4-28 11:43:54 | 顯示全部樓層
本帖最後由 超新手 於 2016-4-28 11:57 編輯

作法前面就有寫了

當然, 也可以不要改 Arduino 端
改 APP inventor 也是 ok
只要按下按鈕就一直送 a 或 b
基本上按下按鈕就啟動一個 timer , 固定時間送 a(或b)

鬆開後就停止 timer
3#
發表於 2016-4-28 19:55:36 | 顯示全部樓層
方法一樣,
如果改 app
只要傳 ababab.. 就可以來回轉
如果傳 aabbaabb
或是 aaabbbaaabbb...
以此類推
4#
發表於 2016-4-29 12:54:57 | 顯示全部樓層
本帖最後由 超新手 於 2016-4-29 14:42 編輯

可以.
讀到 'a' 之後, 就把 count = 0; s = 1;

但是看到s = 1 時
每次執行一次 loop 就只跑一步(因為 s=1)
stepper.step(s);
然後 count 加一次
超過 1500 次後, 再把 s 變成 -1它就變反向了
然後把 count 設為 0
鬆開按鈕後改送 c, 把s設為0即可
5#
發表於 2016-4-29 14:19:59 | 顯示全部樓層
旗標....就是變數,
宣告一個變數來判斷....
int X;
6#
發表於 2016-4-29 15:19:25 | 顯示全部樓層
對了一半
s = -1 那部份沒寫到
你這樣寫, 一旦反轉(s=-1), 就不會動了
7#
發表於 2016-4-29 15:48:49 | 顯示全部樓層
看起來應該是沒錯...
所以測試結果是正確的嗎?
8#
發表於 2016-4-29 16:10:25 | 顯示全部樓層
風扇應該用直流馬達就好了
用步進馬達或伺服馬達, 不會太貴嗎?
9#
發表於 2016-4-29 16:29:58 | 顯示全部樓層
本帖最後由 超新手 於 2016-5-1 09:57 編輯

如果用步進馬達, 還要裝一個偵測角度(原點)的東西
(encoder, home sensor或類似的東西)
才有辦法知道目前的'絕對'角度
不如用伺服馬達比較簡單,
要什麼角度直接給就好了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-13 10:28 , Processed in 0.213432 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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