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——————-舵机会转动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设置成方式1TH0 = 0xff; //定时常数 0.1ms 晶振为11.0592MHzTL0 = 0xa4;ET0 = 1; TR0 = 1; EA=1; }/*T0中断初始化*/
void Time0_Init() interrupt 1
{TR0 = 0; TH0 = 0xff; // 0.1msTL0 = 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
51单片机SG90舵机控制原理相关推荐
- 51单片机sg90舵机
51单片机按键控制舵机旋转 一.舵机工作原理 1.这里介绍的sg90的可旋转角度为 0~180° 2.sg90有三条线,橙色(PWM)红色(5V)棕色(GND) 3.PMW的范围为0.5ms2.5ms ...
- 最简单DIY基于51单片机的舵机控制器
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
- 最简单DIY基于蓝牙、51单片机和舵机的钢铁爱国者机关枪控制器
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
- 基于51单片机密码锁-舵机开锁-CXM
这个项目的起因还是因为每次进出寝室十分的麻烦才有了这个项目 所以我和我的铁子就决定搞个密码锁 我负责软件我的铁子负责硬件 目录 原理图 主要功能函数讲解 硬件 先简单介绍一下整个架构 原理图 主要功能 ...
- 使用51单片机控制舵机入门
舵机(sg90,板子是普中的51) 本人小白一枚,昨天用51实现了舵机的几个小功能,帮助和我一样初学的朋友~(。・`ω´・) 如有错误不足还请大家指点 接线 红电源 棕接地 橙色数据线 代码 希望实现 ...
- MSP430 STM32 单片机 SG90 舵机
接线: 注意: 1 工作电压:4.2-6V 2 PWM给20ms周期,也就是50HZ 3 手册可能写的是高电平是1ms到2ms,其实给0.5ms到2.5ms,还是要试试才知道. 4 给舵机直流电5V, ...
- 51单片机LED点阵控制原理、74HC595工作原理和字母和滚动显示实验代码
目录 1. 74HC595工作原理图解 2.LED点阵控制原理 3.点阵LED实验 3.1 配置74HC595代码 3.2 D点阵LED显示H 3.3 滚动LED (1) 滚动扫描图示 (2)程序代码 ...
- 51单片机控制舵机,舵机不动的定时器原因
舵机: 红色:VCC 棕色:GND 黄色:PWM 这是定时器0初始化: unsigned cha count = 0; unsigned char timer1 ;void Timer1_Init() ...
- 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)
+ 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...
- 最简单DIY基于C#和51单片机上下位机一体化的PCA9685舵机控制程序
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
最新文章
- LeetCode 879. 盈利计划
- uboot启动第一阶段——start.S
- NetBeans Support Weblog
- spring5.0学习笔记3
- python程序设计简明教程第二版答案_Python简明教程精编.pdf
- WebRAY幻影--防火墙中的战斗机即将起飞
- PCB制作仿真、自制51板测试及性能改进
- Hibernate框架搭建
- editplus自动换行html,EditPlus如何自动换行
- 国产CAD_谁说国产系统没有CAD软件可以用?
- 适合运动的耳机有哪些、最好用的五款运动型耳机推荐清单
- 高中学生最有效的高中数学学习方法分享
- Android Tv限制后台进程数量
- php 超出整形范围,频率超出范围怎么办
- 灵活用工:一副2020失业潮的灵丹妙药?
- 【Python】turtle海龟画图练习
- 基于python3.7 numpy scipy matplotlib sklearn的机器学习笔记5—监督学习之KNN、DT、NB算法简析
- 支付宝小程序唤起签约并支付(周期扣款)
- 部分银行卡号规则(二)
- 不能无停顿一遍过此文,怎能说链表已不是问题?