| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> 【51单片机】SG90舵机控制 -> 正文阅读 |
|
|
[嵌入式]【51单片机】SG90舵机控制 |
前言本章将向大家介绍SG90舵机模块使用,通过本章的学习,让大家能快速上手51单片机应用开发 一、SG90舵机模块简介1.舵机简介舵机是一种位置(角度)伺服的驱动器,适用那些需要角度不断变化并可以保持的控制系统。舵机只是一种通俗的叫法,其实质是一个伺服马达。舵机主要分为模拟舵机和数字舵机。模拟舵机:需要不断的发送目的地PWM信号,才能旋转到指定位置。例如:我现在让它旋转90度,我就需要不断的发送90度的PWM信号直到到达指定位置才能停止。数字舵机:只需给一个目的地PWM信号,即可旋转到指定位置。例如:我现在让它旋转90度,我只需要发送一次90度的PWM信号,它就可以旋转到90度。 一个舵机有三条线:VCC(红线)、GND(棕色线)和信号线(橙色线)。只要通过信号线给予规定的控制信号即可实现舵机码盘的转动。 2.模块参数(1)模块主要电气参数 3.模块工作原理舵机内部有一个基准电压,微处理器产生的PWM信号通过信号线进入舵机产生直流偏置电压,与舵机内部的基准电压作比较,获得电压差输出。电压差的正负输出到电机驱动芯片上,从而决定正反转。当舵机开始旋转的时候,舵机内部通过级联减速齿轮带动电位器旋转,使得电压差为零,电机停止转动。 高电平在一个周期(20ms)的持续时间对应的舵机角度,如下图所示: ②简单讲一下编程思想,我所使用的是方法是定时器+中断,定时器每0.5ms中断一次,需要中断40次才能达到20ms。我们此时需要一个全局变量来记录中断的次数,当中断达到40次时,全局变量重新清零。当中断次数小于a时,信号线输出高电平,否则输出零。此时a的值对应关系如下(1–0度,2–45度,3–90度,4–135度,5–180度)。 二、硬件设计1.硬件准备本实验所需要的硬件资源如下: 2.硬件连接接线说明:SG90舵机模块–>单片机IO
三、软件设计本实验程序是在开发板基础实验“LCD1602液晶显示实验”基础上修改,在App文件夹内新建了key、pwm文件夹用于存放按键和PWM相关的驱动程序,在该文件夹内均新建了2个文件,一个.c源文件和一个.h头文件。将该文件添加到App工程组中,并添加对应头文件路径,这些操作如果不会请看基础实验视频教程,此处不再重复。添加好的工程如下所示: 1.main.c文件main.c文件比较简单,就是将前面的功能代码进行整合。如下:
在main函数中,首先调用pwm_init(0XFE,0X33,40,duty_value)函数,将定时器0中断时间设置为0.5ms,即每0.5ms进入一次中断,PWM周期为400.5ms=20ms。占空比通过变量duty_value改变,初值为0,此时舵机默认为0度。然后进入while循环中,检测K1和K2键是否按下,若K1键按下,duty_value加1,即以0.5ms为步进增加,且修改占空比值,此时舵机也以45度修改,最大增加到4,即2ms高电平(445度=180度,和理论中高电平时间对应角度有偏差,但依然是180度旋转)。若K2键按下,duty_value减1,即以0.5ms为步进递减,且修改占空比值,此时舵机也以45度修改,最小减到0。 四、实验现象B站演示视频:https://space.bilibili.com/444388619
联系作者B站演示视频:https://space.bilibili.com/444388619 |
|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 89C51单片机与DAC0832 |
| 基于51单片机宠物自动投料喂食器控制系统仿 |
| 《痞子衡嵌入式半月刊》 第 68 期 |
| 多思计组实验实验七 简单模型机实验 |
| CSC7720 |
| 启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
| STM32初探 |
| STM32 总结 |
| 【STM32】CubeMX例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/16 17:22:55- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |