0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将伺服电动机与PIC微控制器连接

454398 来源:网络整理 作者:网络整理 2019-12-05 17:54 次阅读

伺服电动机是一种特殊的齿轮减速直流电动机,配备有用于控制电动机轴的旋转方向以及位置的电子电路。由于伺服电机允许其输出轴的精确角度定位,因此它们广泛用于机器人技术和无线电控制的汽车,飞机和船只中,以控制其各个零件的运动。在本实验课程中,我们将首先探讨伺服电动机的组成及其工作原理,然后说明如何将其与PIC微控制器接口

伺服电动机控制使用PIC微控制器

理论

伺服电动机(或伺服)是一个小盒子,其中装有一个直流电动机,通过一系列齿轮连接至电动机的输出轴(伺服臂)和控制该轴位置的电子电路。使用伺服的目的是实现对象的精确角度定位。

为了实现伺服功能,输出轴的瞬时定位信息通过换能器反馈到控制电路。最简单的方法是将电位计连接到输出轴或齿轮系中的某个位置。控制电子设备将电位计的反馈信号(包含轴的当前位置)与控制输入信号(包含轴的期望位置的信息)进行比较,并将实际值和期望值之间的差(称为误差信号)被放大并用于在减少或消除误差所需的方向上驱动直流电动机。当输出轴到达所需位置时,误差为零。典型伺服电机的功能框图如下所示。

伺服电机原理

伺服部件(来源:http://tutorial.cytron.com.my/2011/09/19/how-rc-servo-works/)

伺服是脉宽调制(PWM)信号,通常频率为50 Hz。这意味着脉冲应每20ms重复一次。脉冲的宽度决定了输出轴的角度位置。伺服器内部的电子电路将PWM信号转换为成比例的输出电压,并将其与电位计的反馈电压进行比较。如果两者之间存在差异,则控制电路会沿适当的方向驱动电动机,直到差异变为零为止。脉冲宽度的典型值在1.0到2.0毫秒(ms)的范围内。对于标准伺服器,脉冲宽度在1.0毫秒至1.5毫秒之间会使伺服器顺时针旋转(CW),在1.5毫秒至2.0毫秒之间使伺服器能够逆时针旋转(CCW),而1.5毫秒脉冲宽度会使伺服电动机转向它的中心。但是,这些值可能会因电机品牌和制造而有所不同。建议阅读伺服器的数据表,以找到将伺服器定位在不同角度所需的脉冲宽度的真实值。

大多数伺服器旋转180°。然而。有些可以旋转360°或更大角度。 Servos由于其精确的角度定位而被广泛用作机器人手臂中的活动关节。他们还发现了在无线电(RC)玩具中的应用。例如,在RC汽车中,它们用于转向机构,在RC船中用于控制舵。

伺服电机具有三根电线:两根用于电源(Vcc和地面),第三根用于电源。 Vcc线通常是红色的,接地线是黑色或棕色的。控制信号线为白色,黄色或橙色。本实验中使用的伺服电机来自iCircuit技术,并具有分别用于Vcc,Gnd和控制信号的红色,棕色和黄色导线。它以5.0 V电源供电,并提供180°的角度旋转

典型的伺服电机

不同角度位置的伺服定时信息

伺服臂的不同角度位置

电路

此电路的电路图实验如下所示。伺服器的控制输入来自PIC16F628A微控制器的RB1引脚,该PIC16F628A微控制器使用外部陶瓷谐振器以4.0 MHz的频率工作。轻触开关连接到RB0引脚,以提供用户输入来控制伺服臂的位置。该实验的操作部分在下面的软件部分中进行介绍。

用于伺服电机控制演示的电路图

电路板上的电路设置

软件

PIC16F628A的固件是用用于PIC编译器的MikroC Pro编写的。 Timer0模块用作带预分频器1:256的定时器,以在两个连续的PWM脉冲之间产生大约20 ms的间隔。请记住,时钟频率为4.0 MHz,这导致1 s的机器周期,从而简化了使用Timer0计算延迟的数学运算。 MikroC提供了一个内置的库函数Delay_Cyc(),该函数生成可变的时钟周期延迟。此功能用于将控制脉冲的宽度从0.7毫秒更改为2.3毫秒。当电路第一次上电或复位时,在RB1引脚上连续产生脉冲宽度为0.7 ms的50 Hz PWM信号。该控制信号一直沿顺时针方向将伺服臂一直移动到末端,该末端被视为0角位置。按下连接到RB0引脚的轻触开关时,脉冲宽度增加0.2 ms,这将使轴逆时针(CCW)旋转大约22.5°。因此,每次按下开关,脉冲宽度都会增加0.2 ms,并且轴将进一步沿CCW方向旋转。连续按下开关8次后,脉冲宽度变为2.3 ms,轴到达另一端(180°角位置)。在第9次按下时,脉冲宽度被重置为0.7 ms,并且电机轴沿顺时针方向旋转,直到回到0角位置。在程序中,变量“ i”存储脉冲宽度信息(脉冲宽度= i * 10 * 10微秒),并以2为步长从7变为23。当i = 7时,脉冲宽度为7 * 10 * 10 = 700微秒(0.7 ms),当i = 23时,宽度为2.3 ms。

/*

Lab 21: Servo motor Control using PIC16F628A

MCU: PIC16F628A running at 4.0 MHz, MCLR enabled, WDT is OFF, Brown Out Detect

disabled

Written by: Rajendra Bhatt (www.embedded-lab.com)

2012/03/29

Description: User input switch is connected to RB0 and Servo Control signal

is generated from RB1 pin.

*/

sbit SW1 at RB0_bit;

sbit Control at RB1_bit;

unsigned short i=7, delay;

void interrupt() {

delay = i*10;

Control = 1;

Delay_Cyc(delay); // Generates delay equal to 10*delay clock cycles

Control = 0;

TMR0 = 180; // TMR0 returns to its initial value

INTCON.T0IF = 0; // Bit T0IF is cleared so that the interrupt could reoccur

}

void main() {

CMCON = 0x07; // Disable Comparators

TRISB = 0b00000001;

PORTB = 0;

OPTION_REG = 0x07; // Prescaler (1:256) is assigned to the timer TMR0

TMR0 = 180; // Timer T0 counts from 180 to 255 to create ~20 ms period

INTCON = 0xA0; // Enable interrupt TMR0 and Global Interrupts

do{

if(!SW1){ // Change pulse width when Switch is pressed

Delay_ms(300);

i = i+2;

if(i》23) i=7;

}

}while(1);

}

下载完整的源文件和HEX文件

输出

将HEX文件加载到PIC16F628A微控制器之后,您可以观察伺服控制器的运行情况。观看底部的演示视频,以查看该实验的输出。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6795

    浏览量

    147567
  • 伺服电动机
    +关注

    关注

    0

    文章

    47

    浏览量

    3139
收藏 人收藏

    评论

    相关推荐

    简单认识电动机控制器

    电动机。通用电动机控制器主要用于控制电动机保持良好的运行状态,而专用电动机
    的头像 发表于 12-25 11:01 370次阅读

    同步电动机和异步电动机故障的原因分析

    同步电动机   同步电动机故障原因分析如下:   (1)阻尼绕组断路或连接处接触不良,一般是因为阻尼环和阻尼条由于长期受热,使焊接部分松脱,或阻尼环连接处的
    发表于 12-21 07:28

    电动机电气常见故障产生的原因及处理方法

    ,或有断线、短路。   处理方法:(1)检查电源线,电动机引出线,熔断,开关的各对触点,找出断路位置,予以排除;(2)卸载后空载或半载起动;(3)检查被拖动机械,排除故障;(4)检查电刷,滑环和起动
    发表于 12-14 07:55

    如何将数字电位微控制器隔离控制

    请问,如何将数字电位微控制器隔离控制,我想用数字电位控制外部设备。
    发表于 12-12 08:12

    求助,伺服电动机要不要加装散热风扇?

    公司有部分伺服电动机电动机没有散热风扇,因其价格较贵,怕它因散热不好都分别加装了一台散热风扇,想问问大侠,有没有这个必要。
    发表于 12-11 06:57

    步进伺服电动机的工作原理是什么?

    步进伺服电动机是一种常用的电动机类型,其工作原理可以通过以下步骤来解释。 首先,让我们看看步进电动机的基本构造。它通常由一个转子和一个固定在外壳中的定子组成。转子由一定数量的磁极组成,
    的头像 发表于 12-08 14:48 350次阅读

    电动机的单片机控制介绍

    电动机的数字控制电动机控制的发展趋势,用单片机对电动机进行控制是实现
    发表于 09-22 07:05

    直线伺服电动机

     直线伺服电动机可以认为是旋转电动机在结构方面的一种变形,它是将传统圆筒型电动机的定于剖开拉直,变定子永磁铁的封闭磁场为开放磁场,并根据不同行程的需求拼接而成,而动子(运动部)线圈的缠
    发表于 09-05 15:24 400次阅读
    直线<b class='flag-5'>伺服</b><b class='flag-5'>电动机</b>

    伺服电动机的结构、特点及调试方法

    交流伺服电动机的结构主要可分为两部分,即定子部分和转子部分。其中定子的结构与旋转变压器的定子基本相同,在定子铁心中也安放着空间互成90度电角度的两相绕组。其中一组为激磁绕组,另一组为控制绕组,交流
    的头像 发表于 07-24 14:36 523次阅读

    两相感应伺服电动机控制方法

    两相感应伺服电动机是一种交流电动机,通过电磁感应的原理将电能转化为机械能,实现运动控制。与普通的异步电动机相比,两相感应
    发表于 06-29 10:30 500次阅读

    步进电动机控制

    步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机
    发表于 06-06 17:28 1424次阅读
    步进<b class='flag-5'>电动机</b>的<b class='flag-5'>控制</b>

    智能型电动机控制器在斯里兰卡电厂中的应用

    传统的低压电动机保护是通过继电保护二次回路实现,但是我们结合电厂辅助控制设备的特点及其控制要求,推荐ARD2F智能型电动机控制器。以下综合介
    的头像 发表于 06-05 10:47 796次阅读
    智能型<b class='flag-5'>电动机</b><b class='flag-5'>控制器</b>在斯里兰卡电厂中的应用

    配置案例-ModbusRTU转Profinet网关连接电动机保护控制器

    本案例是WL-ABC3010型ModbusRTU转Profinet网关连接WDH-31-200电动机保护控制器的配置案例。用到的设备为西门子1200PLC一台,稳联技术WL-ABC3010
    发表于 05-16 12:15

    ModbusRTU转Profinet网关连接电动机保护控制器配置案例

    本案例是WL-ABC3010型ModbusRTU转Profinet网关连接WDH-31-200电动机保护控制器的配置案例。用到的设备为西门子1200PLC一台,稳联技术WL-ABC3010 ModbusRTU转Profinet网
    的头像 发表于 05-16 12:06 683次阅读
    ModbusRTU转Profinet网关<b class='flag-5'>连接电动机</b>保护<b class='flag-5'>控制器</b>配置案例

    如何将ESP连接微控制器

    你好! 我有一个问题:这是 ESP 的最小电路。 我想用微控制器驱动它。我的问题是: 1) RST 和 EN 引脚通过电阻连接到 Vcc。如果我想将它连接到 STM32(连接到 STM
    发表于 05-15 08:30