舵机可以用51单片机带动,为什么最小系统板不可以?

如题所述

51单片机只是产生控制逻辑信号,驱动能力较小,舵机转动需要较大电流,所以二者间需要驱动电路连接
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-11
最小系统板可以驱动舵机!自己配置驱动电路
第2个回答  2016-04-11
怎么不可以我就是做单片机开发的,追问

你好

你是怎么做的?我的最小系统板不可以啊

可以教教我麽

追答

51的?还是52的

追问

51

今天搞了一天都不行

追答

你把端口引出来不就行了

追问

我就是把舵机的信号线连接到IO口上啊

就是没有反正

在单片机上可以控制

追答

要驱动电路啊

你的舵机带驱动模块不?你自信看看

追问

舵机带驱动模块

里面有

这个共地是怎么理解的?

你有没有图啊?发给我

追答

舵机有资料吧,你看看你接线有没有问题

追问

接线是没有问题,检查了好多遍了

希望你可以帮帮我

😂

都不知怎么办了

追答

不就是一个电源线,一个控制线,一个gnd吗。你接的对不对哦

追问

对啊

三个线

就是不动

我也没有办法

追答

电源5v

# include
#define uchar unsigned char
#define uint unsigned int

uint a,b,c,d;
/*a为舵机1的脉冲宽度,b为舵机2的脉冲宽度,单位1/1000 ms */
/*c、d为中间变量*/

/*以下定义输出管脚*/
sbit p12=P1^2;
sbit p13=p1^3;
sbit p37=P3^7;

/*以下两个函数为定时器中断函数*/

/*定时器1,控制舵机1,输出引脚为P12,可自定义*/
void timer0(void) interrupt 1 using 1
{p12=!p12; /*输出取反*/
c=20000-c; /*20000代表20 ms,为一个周期的时间*/
TH0=-(c/256); TL0=-(c%256); /*重新定义计数初值*/
if(c>=500&&c=500&&d<=2500)d=b;
else d="20000-b";
}

/*主程序*/
void main(void)
{TMOD=0x11; /*设初值*/
p12=1;
p13=1;
a=1500;
b=1500; /*数值1500即对应1.5ms,为舵机的中间90度的位置*/
c=a;d=b;
TH0=-(a/256); TL0=-(a%256);
TH1=-(b/256); TL1=-(b%256); /*设定定时器初始计数值*/
EA=1;
ET0=1; TR0=1;EX0=1;EX1=1;
ET1=1; TR1=1;
PX0=0;PX1=0;PT1=1;PT0=1;/*设定中断优先级*/
for(;;)
{
/*在这个for循环中,可以根据程序需要
在任何时间改变a、b值来改变脉宽的输
出时间,从而控制舵机*/
}
}

按着接,按着写就行了

追问

等等

我看看

我只要一路舵机

追答

我睡了。明天还上班。

追问

好的

谢谢了

追答

一路你就用一路,这个没什么问题的

追问

晚安

嗯嗯

相似回答