Robofun 機器人論壇

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

89S51控制多個伺服馬達 C程式 請教

[複製鏈接]
nichal 該用戶已被刪除
1#
發表於 2012-7-27 18:23:12 | 顯示全部樓層
參考一下這種切換方式吧
http://www.wretch.cc/blog/chipware/17881146

按鍵的部份如果要簡單一點
只要多宣告幾個變數(如ton1, toff1, ton2, toff2....)
判斷式複製貼上就可以了
祝您順利~~
nichal 該用戶已被刪除
2#
發表於 2012-7-31 13:11:32 | 顯示全部樓層
PWM的寬度就是決定SERVO停住的角度
範例是用4個servo的寫法
如果只要一個
那其餘三個砍掉就可以了

有示波器嗎?
用示波器看一下波型就知道囉~~
nichal 該用戶已被刪除
3#
發表於 2012-7-31 17:53:31 | 顯示全部樓層
while(1)
  {
  if(start_flag==0)
     {
         start_flag=1;
..................................

再試試看吧
nichal 該用戶已被刪除
4#
發表於 2012-8-1 09:23:54 | 顯示全部樓層
程式是我寫的
所以知道寫那些參數的用意
沒有什麼啦~~~

要把程式看懂變成自己的工具唷!!
祝你順利~~~
nichal 該用戶已被刪除
5#
發表於 2012-8-28 09:09:26 | 顯示全部樓層
如果波形都一樣
那你要思考是不是驅動電流不足或是準位不足
送給馬達的訊號是否要外加提供或緩衝器
再試試看囉~~

不然就是馬達的齒箱已經有點磨耗
拆開來檢查一下是不是要潤滑或是更換
nichal 該用戶已被刪除
6#
發表於 2012-8-29 12:03:23 | 顯示全部樓層
回復 12# martinlee0312


    你所確認的電流是"信號電流"還是"馬達出力電流"?
加緩衝器就是要讓信號電流穩定且不飄移用的
因為你更換的是IC
所以要確認的是有更換的部分跟原來有什麼不一樣
如果只確認馬達電流是不對的唷~~~
nichal 該用戶已被刪除
7#
發表於 2012-9-12 17:49:43 | 顯示全部樓層
我的程式寫法就是一個簡單的分時系統
每個servo分配不同的時間
時間到了就換下一個servo
所以一共只用了兩個Timer

如果是掃瞄的寫法
會受到中斷或判斷式的影響
使得脈衝的寬度不穩定
參考看看囉~~~
nichal 該用戶已被刪除
8#
發表於 2012-9-12 17:59:44 | 顯示全部樓層
齒輪牙齒掉光光
很可能是正反轉間隔太短又太頻繁
或是負載過大造成的
放慢一下你的角度切換速度吧
nichal 該用戶已被刪除
9#
發表於 2012-9-14 21:42:46 | 顯示全部樓層
本帖最後由 nichal 於 2012-9-14 21:49 編輯

http://www.robofun.net/forum/viewthread.php?tid=438
這是論壇上很久以前的文章
你看一下裡面的線路圖
有提到一個74HC595
用這個搭配一個Timer
就可以擴充為8個servo channel
兩個Timer就可以造出16個servo channel
裡面有很多相關連結都是很有用的文章建議每篇都瀏覽一下

花點時間在自組機器人版塊裡瀏覽一下舊文章
應該還可以找到更多的相關資料
話說我的文章已經是四年前寫的
中間累積的文章很多
可能要花點時間多挖寶.....

另外
論壇最下面有一個論壇統計
點進去找一下較多人討論的主題
應該也會有相關的資料
再來就要請你多多動手啦!!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-13 08:05 , Processed in 0.120491 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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