Robofun 機器人論壇
標題:
如何使用keil c 使用 89S51 驅動 gws s03t 伺服馬達?
[打印本頁]
作者:
ROCKGG
時間:
2015-2-8 18:07
標題:
如何使用keil c 使用 89S51 驅動 gws s03t 伺服馬達?
本帖最後由 ROCKGG 於 2015-2-8 18:23 編輯
大家好
最近看了一些機器人的書籍 也很想做一隻
然後參考書籍 買了 GWS S03T 這顆伺服馬達
之前沒有使用過伺服馬達的經驗
一開始我用兩組VCC
5V的USB接到89S51實驗版, 5V-0.6A的變壓器 接到S03T伺服馬達
沒有共接地
接線圖.jpg
(49.54 KB, 下載次數: 645)
下載附件
2015-2-8 18:23 上傳
接完以後卻沒有動作,完全沒反應
後來我使用 5V-0.6A的變壓器 共VCC 共地
接完以後,按按鈕,S03T會微微的震動,但是一樣沒有轉動
以下KEIL C --- 是參考書本寫的,書本上用的伺服馬達跟我的是不同顆
按K1,K2,K3 來控制前進、後退、中間
#include <stdio.h>
#include <AT89X51.H>
sbit spu = P1^6;
sbit tpu = P1^0;
sbit K1=P1^1;
sbit K2=P1^2;
sbit K3=P1^3;
sbit K4=P1^4;
#define DEA 3
#define DEB 25
#define DEC 13
#define TS 40
delay(int d)
{
int i,j;
for(i=0 ; i<d ; i++)
for(j=0 ; j<100 ; j++);
}
del()
{
char i ;
for(i=0;i<25;i++) ;
}
pu_for()
{
int i;
spu = 1;
for (i=0;i<DEA;i++) del();
spu = 0;
for (i=0;i<(200-DEA);i++) del();
}
pu_back()
{
int i;
spu = 1;
for (i=0;i<DEB;i++) del();
spu = 0;
for (i=0;i<(200-DEB);i++) del();
}
pu_cen()
{
int i;
spu = 1;
for (i=0;i<DEC;i++) del();
spu = 0;
for (i=0;i<(200-DEC);i++) del();
}
rot()
{
int i ;
for (i=0;i<TS;i++) pu_for;
}
rotr()
{
int i ;
for (i=0;i<TS;i++) pu_back();
}
cen()
{
int i ;
for (i=0;i<TS;i++) pu_cen();
}
test_pulse()
{
while(1)
{
tpu=0; del();
tpu=1; del();
}
}
main()
{
spu = 0;
while(1)
{
if(K1==0)rot();
if(K2==0)rotr();
if(K3==0)cen();
if(K4==0)test_pulse();
}
}
---------
希望各位大大可以幫我解題 馬達不動作很煩惱
作者:
ROCKGG
時間:
2015-2-9 22:54
原本以為電源不夠力,所以今天用電池組跟pc power 來當電源 都沒用 s03t 依然抖動,不會運作
後來覺得 我的程式有問題,於是試了別人的程式,s03t 馬達依然抖動
我甚至開始覺得我的S03T馬達是故障的,但這是新買的新品..
很煩惱又毫無頭緒
作者:
ROCKGG
時間:
2015-2-10 20:14
問題解決了,原來是我在線路前面加裝了一顆LED(發光二極體)要來判斷伺服馬達是否通電,導致S03T無法運作,把他拔掉,動作就正常了
作者:
nichal
時間:
2015-5-11 18:01
自己找到問題所在
很棒唷!!
謝謝您的分享~~~
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2