本帖最後由 超新手 於 2016-5-1 09:57 編輯 如果用步進馬達, 還要裝一個偵測角度(原點)的東西 (encoder, home sensor或類似的東西) 才有辦法知道目前的'絕對'角度 不如用伺服馬達比較簡單, 要什麼角度直接給就好了 |
風扇應該用直流馬達就好了 用步進馬達或伺服馬達, 不會太貴嗎? |
看起來應該是沒錯... 所以測試結果是正確的嗎? |
回復 12# 超新手 #include <Stepper.h> char val; int s,count; Stepper stepper(200, 13, 12, 11, 10); void setup() { Serial.begin(9600); stepper.setSpeed(140); // 將馬達的速度設定成140RPM 最大 150~160 } void loop() { if(s==1) { stepper.step(s); count+=1; if(count>1500){ s=-1; count=0;} } if(s==-1){ stepper.step(s); count+=1; if(count>1500){ s=1; count=0;} } if (Serial.available()) { val = Serial.read(); switch(val){ case 'd': Serial.print(val); count=0; s=1; break; case 'f': Serial.print(val); s=0; break; } } } 我改好了 是這樣嗎? 功能是正確的 |
對了一半 s = -1 那部份沒寫到 你這樣寫, 一旦反轉(s=-1), 就不會動了 |
回復 10# 超新手 #include <Stepper.h> char val; int s,count; Stepper stepper(200, 13, 12, 11, 10); void setup() { Serial.begin(9600); stepper.setSpeed(140); // 將馬達的速度設定成140RPM 最大 150~160 } void loop() { if(s==1) { stepper.step(s); count+=1; if(count>1500){ s=-1; count=0; stepper.step(s);} } if (Serial.available()) { val = Serial.read(); switch(val){ case 'd': Serial.print(val); count=0; s=1; break; case 'f': Serial.print(val); s=0; break; } } } 請問我這樣設對嗎 |
旗標....就是變數, 宣告一個變數來判斷.... int X; |
本帖最後由 超新手 於 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即可 |
方法一樣, 如果改 app 只要傳 ababab.. 就可以來回轉 如果傳 aabbaabb 或是 aaabbbaaabbb... 以此類推 |
本帖最後由 超新手 於 2016-4-28 11:57 編輯 作法前面就有寫了 當然, 也可以不要改 Arduino 端 改 APP inventor 也是 ok 只要按下按鈕就一直送 a 或 b 基本上按下按鈕就啟動一個 timer , 固定時間送 a(或b) 鬆開後就停止 timer |
本帖最後由 超新手 於 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){ .............................. } } } 沒測過, 不知道可不可以動 |
小黑屋|手機版|Archiver|機器人論壇 from 2005.07
GMT+8, 2024-11-22 01:03 , Processed in 0.170398 second(s), 11 queries , Apc On.
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.