Robofun 機器人論壇

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

請問如何用Arduino2560讀取伺服馬達的角度值呢?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-4-19 05:56:32 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
請問如何用Arduino2560讀取伺服馬達的角度值呢?想請問一下程式部分要怎麼寫?先謝謝各位大大囉!
2#
 樓主| 發表於 2012-4-20 22:44:01 | 顯示全部樓層
因為有時候還是多少有點誤差,像我最近測的時候,從程式上面控制要SERVO轉到假設180的位置,但是從螢幕顯示出來的卻是178或是179,這個在細部微調的時候就很重要囉^^!這個討論串的問題我已經找到方法編寫囉!先謝謝樓上的大大回覆囉!不過要在SERVO加上編碼齒輪跟紅外線感測好像比較沒辦法讀取較精準的數字喔!畢竟一個是目測一個是電腦讀出的@@如有錯請指正唷~~~謝謝囉!
3#
 樓主| 發表於 2012-4-21 20:27:47 | 顯示全部樓層
只是把數值讀出來而已!SERVO只是用一般三條線的那種而已~~~沒有用有回授功能的XD!提供程式給您參考一下,有時候你會發現真的會差個1、2度^^"~~~
#include <Servo.h>
Servo myservo;  // create servo object to control a servo
void setup()
{
  Serial.begin( 19200 );
  myservo.attach(9);  //連接 Servo 信號到 Digital Pin 9
  myservo.write(130);//設定轉到130的位置
}
void loop()
{
  int readdata=0;
  readdata = myservo.read ();
  Serial.println ( readdata );
}
4#
 樓主| 發表於 2012-4-22 18:41:08 | 顯示全部樓層
規格喔!有點難喔XD~~~因為是買了將近4、5年的SERVO,那間公司好像也不在了XD~~~大部分會有這個問題幾乎都是出在齒輪間隙,這個不管多好的SERVO都會有這個問題!我有試過就是單純讓他轉到某個角度比如說130好了,通常讀出來的數值都是130無誤,但是如果你寫一個,每一秒轉動10度,從0~180,轉完之後再轉回來,你會發現快到極限的時候,轉的角度值有時候不會到180,會在178、179左右飄XD~~~
5#
 樓主| 發表於 2012-4-23 21:45:23 | 顯示全部樓層
應該是說馬達轉的角度會不到位,因為用久了,內部齒輪磨損會造成齒輪間隙變大精度不夠進而產生轉不到我們想要的位置的問題~~~
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 04:51 , Processed in 0.181465 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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