51单片机SG90舵机控制原理

51单片机SG90舵机控制原理舵机三根线的接法:黄线接信号线,红线接vcc,褐色线接GND舵机控制原理:通过控制PWM来控制舵机转动的角度,关于PWM的知识可以去智能小车专栏进行学习,转动周期设置为20ms,控制高电平的时间来进行舵机转动的角度。对于180°舵机t=0.5ms——————-舵机会转动0°t=1.0ms——————-舵机会转动45°t=1.5ms——————-舵机会转动90°t=2.0ms——————-舵机会转动135°t=2.5ms——————-舵机会…

大家好,又见面了,我是你们的朋友全栈君。

舵机三根线的接法:黄线接信号线,红线接vcc,褐色线接GND

51单片机SG90舵机控制原理

51单片机SG90舵机控制原理

舵机控制原理:通过控制PWM来控制舵机转动的角度,关于PWM的知识可以去智能小车专栏进行学习,转动周期设置为20ms,控制高电平的时间来进行舵机转动的角度。

对于180°舵机
t = 0.5ms——————-舵机会转动 0 ° 
t = 1.0ms——————-舵机会转动 45°
t = 1.5ms——————-舵机会转动 90°
t = 2.0ms——————-舵机会转动 135°
t = 2.5ms——————-舵机会转动180

这段代码中包含了定时器,中断,pwm的知识,都可以去51智能小车专栏中学习,其中定时器选择了定时器1,运用了两个字符型变量其中timer1决定了高电平的时间,count起到了计数器的功能,运用if语句进行判断两个字符型变量的大小来决定什么时候为高电平是么时候为低电平

// _nop_()延时一个机器周期
#include <reg52.h>
#include <Delay.h>
sbit PWM = P3^2;  //设定PWM输出的I/O端口
unsigned char count = 0;
unsigned char timer1 ;
/*
对于180°舵机
t = 0.5ms——————-舵机会转动 0 ° 
t = 1.0ms——————-舵机会转动 45°
t = 1.5ms——————-舵机会转动 90°
t = 2.0ms——————-舵机会转动 135°
t = 2.5ms——————-舵机会转动180
*/

 
 
/*延时程序*/

/*定时器T0初始化*/
void Timer0_Init()           
{
    TMOD &= 0x00;
    TMOD |= 0x01; //定时器T0设置成方式1
 
    TH0 = 0xff;   //定时常数 0.1ms 晶振为11.0592MHz
    TL0 = 0xa4;
 
    ET0 = 1;      
    TR0 = 1; 
	  EA=1; 
	}
	
/*T0中断初始化*/
void Time0_Init() interrupt 1 
{
	TR0 = 0; 
	TH0 = 0xff; // 0.1ms
	TL0 = 0xa4;

	if(count <= timer1) //5==0° 15==90°
	{ 
		PWM = 1; 
	}
	else 
	{ 
		PWM = 0; 
	}
	count++;
	if (count >= 200) //T = 20ms清零
	{ 
		count = 0; 
	}
	TR0 = 1; //开启T0
}
void main()
{
	Timer0_Init();
	while(1)
	{
		
		timer1 =5;//舵机恢复到0度的位置
		count=0;//让定时器重新计数
		Delay(3000);
		timer1 =10;//舵机旋转45度
		count=0;
		Delay(3000);
		timer1=15;//舵机转动90度
		count=0;
		Delay(3000);
	
	}
}

简单运用了一个延时函数方便代码以后的移植性

Delay.c//1ms级的延时函数

void Delay(unsigned int xms)
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

Delay.h

#ifndef __DELAY_H__
#define __DELAY_H__

void Delay(unsigned int xms);

#endif

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149403.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ant是什么?「建议收藏」

    Ant是什么?「建议收藏」Ant是Java的生成工具,是Apache的核心项目;Ant类似于Unix中的Make工具,都是用来编译、生成;Ant是跨平台的,而Make不能;Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目。……

    2022年7月26日
  • 算法系列之九:计算几何与图形学有关的几种常用算法(一)

    算法系列之九:计算几何与图形学有关的几种常用算法(一)我的专业是计算机辅助设计(CAD),算是一半机械一半软件,《计算机图形学》是必修课,也是我最喜欢的课程。热衷于用代码摆平一切的我几乎将这本教科书上的每种算法都实现了一遍,这种重复劳动虽然意义不大,但是收获很多,特别是丢弃了多年的数学又重新回到了脑袋中,算是最大的收获吧。尽管已经毕业多年了,但是每次回顾这些算法的代码,都觉得内心十分澎湃,如果换成现在的我,恐怕再也不会有动力去做这些事情了。

    2022年11月3日
  • matlab fmincon优化,求教Matlab用fmincon做优化计算

    matlab fmincon优化,求教Matlab用fmincon做优化计算本人利用fmincon做优化计算,其程序如下:1,主程序clearallx0=[0.1,0.3,0.2,0.3,0.1,45,0.214,0.05,0,0.45,0.15,0,0.4,0.12,0,0,0,0,0,0,0,0,0,0,0,0];A=[1-1-110000000000000000000000;11-1-10000…

    2022年6月7日
  • 无人机超远距离WiFi传输,CV5200无线通信模组,无线音视频传输方案「建议收藏」

    无人机超远距离WiFi传输,CV5200无线通信模组,无线音视频传输方案「建议收藏」在绝大多数任务场合都需要在远离现场的情况下,实时、可靠的观察或获取现场图像及视频,而此时无人机图传系统就会显现出它的重要作用。什么是无人机图传呢?将现场无人机所搭载的摄像机拍摄到的视频以无线方式实时传送到远距离后方的一种无线电子传输产品。因此无人机图传也被称为无人机的“眼睛”。智能cv5200双向无线通信系统,基于802.11无线通信标准,采用自身开发的LR-WiFi(远距离WiFi)私有协议,具备ML,MRC,LDPC,MIMO-OFDM等高级无线技术。具有传输距离远、可组网、抗干扰性强、

    2022年10月3日
  • 关于色带管理_色带怎么安装

    关于色带管理_色带怎么安装转载自https://tieba.baidu.com/p/1929685584?red_tag=3141090095Banding看上去像是颜色分层、条状带。产生的原因是因为颜色数据的丢失。母带(RGB10bit)→DVDISO/BDMV(YUV4:2:08bit)就会产生很严重的banding,不过后期公司也有应对banding的方法。banding一般出现在:较暗的场景、颜…

    2022年10月13日
  • 中国雇主品牌年会_雇主品牌怎么做

    中国雇主品牌年会_雇主品牌怎么做第十三届新雇主品牌年会在北京举行

    2022年4月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号