产品选型

单片机舵机控制程序 单片机应用分享舵机控制 #编程

小编 2024-10-07 产品选型 23 0

单片机应用分享舵机控制 #编程

每天分享一个单品机应用。大家好,今天给大家分享舵机的控制。用L298来启动舵机,用了两个按键,一个启动,一个停止。舵机可以在正负四十五度之间变化,按启动键的时候躲击循环转动四十五度,正负四十五度角按下停止的时候躲击停止。这个实验用C语言来实现。

使用8051单片机控制舵机

8051控制舵机

舵机在电子和嵌入式系统中非常有用,由于可以把它旋转到任何特定的角度,所以广泛应用于玩具、机器人、计算机、汽车、飞机等项目中。舵机的适用范围也很广泛,从高扭矩电机到低扭矩电机都有应用。

先简单了解一下舵机的工作原理,舵机主要告靠PWM(脉宽调制)控制,这意味着它的旋转角度是由控制脉冲的持续时间控制制的。舵机基本上由直流电动机组成,而直流电动机由可变电阻(电位器)和一些齿轮控制。直流电机的输出通过齿轮转换成扭矩。电位器连接到舵机的输出轴上,并计算角度,在到达需要的角度时停止直流电机。

舵机角度控制

舵机可旋转0到180度,可以通过1ms到2ms之间的脉冲持续时间来控制这种程度的旋转。1ms可以旋转0度,1.5ms可以旋转90度和2毫秒脉冲可旋转180度。1至2毫秒之间的持续时间可以旋转舵机到0至180度之间的任何角度。

电路原理图:

电路原理图

舵机有三根控制线,红色的VCC(电源),棕色的为GND,橙色是控制线。控制线连接到8051的引脚P2.0。当这个引脚输出高电平1ms,则舵机旋转到0度,输出高电平1.5ms,则舵机旋转到90度,输出高电平2ms,则舵机旋转到180度。函数“servo_delay”使用8051芯片的定时器生成50us延时。

由于使用8051的定时器0模式1,所以在TMOD寄存器中写入0x01。模式1是16位定时器模式,TH0是16位定时器的高字节,TL0是16位定时器的低字节。将0xff写入TH0,将0xd2写入TL0,在11.0592M的晶振下,值0xffd2将使定时器0产生50us延时。TR引脚用于启动定时器,TF是溢出标志,在溢出时由硬件设置标志,需要通过软件重新设置。

C语言代码:

#include<reg51.h>

sbit output=P2^0;

void msdelay(unsigned int time) // 毫秒级延时函数.

{

unsigned i,j ;

for(i=0;i<time;i++)

for(j=0;j<1275;j++);

}

void servo_delay(int times) // 50us整倍延时函数

{

int m;

for(m=0;m<times;m++)

{

TH0=0xFF;

TL0=0xD2;

TR0=1;

while(TF0==0);

TF0=0;

TR0=0;

}

}

void main()

{

int n;

TMOD=0x01; // 选择 Timer 0, Mode 1

output=0;

while(1)

{

for(n=13;n<28;n=n+2)

{

output=1;

servo_delay(n);

output=0;

servo_delay(260);

msdelay(200);

}

}

}

相关问答

舵机 在不同角度停止转动的 程序 ?

舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准...

如何 控制舵机 啊?

要控制舵机,首先需要连接舵机到电源和控制信号线。然后使用微控制器或单片机发送PWM信号来控制舵机的位置。可以编写程序来指定舵机的转动角度和速度。另外还...

如何 控制 数字 舵机 ?

用51编写指令,一定要注意指令格式,在通过串口输出给CDS5516的信号线,电源地单供,即可控制数字舵机。数字舵机区别于传统的模拟舵机,模拟舵机需要给它不停的...

如何 控制舵机 啊?

控制舵机可以通过控制脉冲信号的方式实现,通常使用单片机或者微控制器来生成特定脉冲信号,然后通过连接舵机的信号线和电源线,将生成的脉冲信号传输到舵机控制...

舵机 怎么连接?

舵机控制原理舵机一般有3条线,分别是电源正、电源负、信号线。电源正极线一般为红色或橙色,连接+5V(单片机电源正)【有的舵机为6V供电】电源负极线一般为黑色,...

51 单片机 ,和, 舵机 怎么连线?

舵机一般有3条线,分别是电源正、电源负、信号线。电源正极线一般为红色或橙色,连接+5V(单片机电源正)【有的舵机为6V供电】电源负极线一般为黑色,连接GND(单片...

单片机控制舵机 电压不够怎么办?

单片机控制舵机电压不够,有可以是使用L298N对stm32供电导致电压不稳,可以取消L298N对stm32供电,用其他稳定电源对stm32供电,即可解决单片机控制舵机电压不够,...

arduino 舵机 三根线的接法?

舵机三根线接法是舵机有三根线红白黑,红色接vcc,白色接信号(由单片机或者函数信号发生器给),黑接gnd,信号和电源要共地,或者红橙棕对应红白黑。舵机三根...

在智能车上加装 舵机 ,需要一个 舵机 驱动模块吗?

航模上使用的舵机,一般都是PWM控制的,安装舵机,当然得有舵机控制电路了。航模上PWM控制基本都是单片机控制的(少数是模拟电路做的),如果单片机的驱动能力...

舵机 调试的时候把 单片机 烧了,求助大神?

先说舵机,一般的舵机,其实就是一个直流伺服,通过电位器的电压反馈出当前舵机的角度。显然,当反馈电压与控制的PWM不一致时,舵机转动,以消除这种差别。那么...

猜你喜欢