|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
舵机不能控制速度吗?转的太快了,一按不到1秒时间就转到位了。能不能慢慢的转?转它割10秒钟到位 , f7 \4 a( I; `& E
0 H' H/ _! d% I5 D
' y" U2 a( `; Q$ C; _3 i3 h
% ^4 E+ C+ T0 O" b$ K1 R4 j3 h1 B# u1 X: y) i
我的舵机是
3 J5 K* s- r/ k, ]) W5 ]MG996R按一个按钮旋转180度,按另一个按钮反转回来,
$ s3 b0 ?3 Y9 g. Z感觉速度太快了。能不能慢慢的旋转?7 M5 ^( d: P2 r8 S+ Y( |0 M
我用的8脚单片机型号是STC15W204S,其实用89C52单片机测试也是一样的效果,换下头文件即可,
2 V9 T7 y/ j% {: Y) X9 E7 I# M% W3 q/ f' _* ?5 q
下面是单片机代码,
3 j$ h2 u" u) s- `网上资料说改定时器中断初始时间,我也改过不同时间(0.1MS至5ms),都没有效果。
+ @7 O+ H' U" L' I TH0=0Xfe;; b+ u4 s6 s2 z# t, @
TL0=0X33; //计数初值设置为0.5ms J! c* s& |& g2 P* }- b0 U
^9 H* g4 H7 B, k( Z3 \! h* a z7 S( r
又说改PWM时间,下面40我改为10至500也还是改变不了速度,还是老样子
/ c3 d6 U. N: J. F1 ] count++;; h9 u1 ~/ @& K0 e
if(count>=40)//原始是=40
7 S9 K/ P2 n& F i' i7 S& Q {
$ H7 i! D. s7 O count=0;/ N9 | k( N$ V! L$ o9 }
}2 Y' R4 Z6 g2 F9 S) u' [+ P
1 v, E$ i- Y. E h. |4 ^
! J: T- t9 i; [0 a4 e' {4 ~/ S% ]老师们,到底要怎么改,才能控制舵机速度?谢谢指导,,
, L# K/ _2 s, ~5 M- #include "STC15Fxxxx.H"
- //#include <intrins.h>
- #define uint unsigned int //定义一下方便后面使用
- //#define uchar unsigned char //定义一下方便后面使用
- #define MAIN_Fosc 11059200L//定义主时钟
- sbit SG_PWM=P3^2;
- sbit Key_1=P5^4;
- sbit Key_2=P5^5;
- unsigned char count=0;
- unsigned char PWM_count=1; //1--0度,2--45度,3--90度,4--135度,5--180度
- void delay(unsigned char i) //延时
- {
- unsigned char j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- void Timer_Init()
- {
- TMOD=0X01; //T0定时方式1
- TH0=0Xfe;
- TL0=0X33; //计数初值设置为0.5ms 每0.5ms进入一次中断,晶振频率:11.0592MHZ
- ET0=1; //打开定时器0的中断
- TR0=1; //打开定时器0
- EA=1; //开总中断
- }
- void Timer() interrupt 1 //特别注意此处,0--外部中断0,1--定时器中断0,2--外部中断1,3--定时器中断1,4--串行口中断1
- {
- TR0=0;
- TH0=0Xfe;
- TL0=0X33; //重新赋计数初值为0.5ms
- if(count<=PWM_count)
- {
- SG_PWM=1;
- }
- else
- {
- SG_PWM=0;
- }
- count++;
- if(count>=40)//原始是=40
- {
- count=0;
- }
- TR0=1;
- }
- void main()
- {
- Timer_Init();
- while(1)
- {
- if(Key_1==0)
- {
- delay(10);
- EA=0;
- if(Key_1==0)
- {
- PWM_count=1;//1--0度
- count=0;
- EA=1;
- }
- while(!Key_1);
- }
- if(Key_2==0)
- {
- delay(10);
- EA=0;
- if(Key_2==0)
- {
- PWM_count=5;//4--135度 转动角度
- count=0;
- EA=1;
- }
- while(!Key_2);
- }
- }
- }
' j0 T) o: \0 |" K# @1 P. u9 b
+ k% b/ V! d- g7 x' J[color=rgb(51, 102, 153) !important]复制代码
' b' T5 u a+ A+ ^" \) E( W) c4 N[color=rgb(51, 102, 153) !important]
EDA365论坛_996舵机按键控制正反转.rar
(24.96 KB, 下载次数: 0)
; J8 L2 R4 ]3 P6 \ l
|
' H/ q, x6 f5 k5 W. e$ V* M2 L |
|