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

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

    关注

    49

    文章

    8915

    浏览量

    166088
  • 伺服电动机
    +关注

    关注

    0

    文章

    51

    浏览量

    3495
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PIC32MM0064GPL036 系列 32 位闪存微控制器深度剖析

    PIC32MM0064GPL036 系列 32 位闪存微控制器深度剖析 引言 在电子设计领域,微控制器的选择至关重要,它直接影响到产品的性能、功耗和成本。PIC32MM0064GPL0
    的头像 发表于 04-08 18:05 1105次阅读

    PIC18CXX2高性能微控制器深度解析

    。本文深入剖析PIC18CXX2微控制器的各个方面,为电子工程师在设计中提供全面的参考。 文件下载: PIC18C242-E/SO.pdf 二、P
    的头像 发表于 04-08 11:20 360次阅读

    深入剖析PIC16F870/871微控制器:功能特性与应用指南

    深入剖析PIC16F870/871微控制器:功能特性与应用指南 在电子设计领域,微控制器是核心组件之一,它如同电子设备的“大脑”,掌控着设备的各种功能和运行逻辑。Microchip
    的头像 发表于 04-08 09:20 579次阅读

    深入解析Microchip PIC16F8X系列微控制器

    深入解析Microchip PIC16F8X系列微控制器 在电子工程领域,微控制器是众多项目的核心组件,其性能和特性直接影响着整个系统的表现。今天,我们深入探讨Microchip的
    的头像 发表于 04-08 09:10 863次阅读

    深度剖析PIC16F818/819微控制器:特性、应用与设计指南

    深度剖析PIC16F818/819微控制器:特性、应用与设计指南 在当今的电子领域,微控制器扮演着至关重要的角色,广泛应用于各种嵌入式系统、工业控制、消费电子等众多领域。其中,Micr
    的头像 发表于 04-08 09:10 556次阅读

    深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南

    、低功耗和丰富的外设功能,成为众多嵌入式系统设计的理想选择。本文深入探讨PIC16F62X系列微控制器的特点、架构、外设功能以及应用开发,为电子工程师提供全面的设计指南。 文件下载
    的头像 发表于 04-07 17:20 619次阅读

    PIC16C745/765微控制器:功能、特性与应用全解析

    众多工程师的首选。本文深入剖析PIC16C745/765微控制器的各项特性、功能及应用场景,为电子工程师提供全面的参考。 文件下载: PIC16C765-I/P.pdf 一、概述
    的头像 发表于 04-07 16:40 258次阅读

    PIC16CE62X系列微控制器:功能特性与设计指南

    。本博文深入探讨PIC16CE62X系列微控制器的特性、架构、外设功能以及开发支持等方面,为电子工程师在设计过程中提供全面的参考。 文件下载: PIC16LCE623-04E/SS.
    的头像 发表于 04-07 16:35 283次阅读

    深度剖析Microchip PIC16C781/782微控制器:特性、应用与设计要点

    。Microchip的PIC16C781/782 8位CMOS微控制器凭借其丰富的外设和强大的功能,在众多应用领域中崭露头角。本文深入探讨这款微控制器的特性、应用场景以及设计过程中的
    的头像 发表于 04-07 16:30 260次阅读

    PIC16F72微控制器:特性、应用与设计指南

    PIC16F72微控制器:特性、应用与设计指南 在电子设计领域,微控制器是核心组件之一,它能够实现各种复杂的控制和处理任务。PIC16F72
    的头像 发表于 04-07 16:05 243次阅读

    探索PIC16CR7X系列微控制器:功能特性与应用指南

    探索PIC16CR7X系列微控制器:功能特性与应用指南 在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。Microchip的PIC16CR7X系列
    的头像 发表于 04-07 15:30 247次阅读

    Microchip PIC16C62X系列微控制器:设计与应用深度解析

    Microchip PIC16C62X系列微控制器:设计与应用深度解析 在电子工程师的设计世界里,一款性能卓越、功能丰富的微控制器往往是项目成功的关键。今天,我们就来深入探讨Microchip公司
    的头像 发表于 03-26 11:45 554次阅读

    PIC16C62X系列微控制器:设计与应用详解

    崭露头角。本文深入探讨PIC16C62X系列微控制器的特点、架构、功能模块以及开发支持等方面,为电子工程师提供全面的参考。 文件下载: PIC16C622AT-04I SO.pdf
    的头像 发表于 03-25 17:10 725次阅读

    如何将 FreeMODBUS 从属 RTU 模式移植到 M032 系列微控制器

    如何将 FreeMODBUS 从属 RTU 模式移植到 M032 系列微控制器
    发表于 08-19 07:20

    电动汽车用异步电动机混合控制系统的研究

    Matlab 和 DSP之间的连接工具 Real TimeWorkshop 生成混合控制的C语言程序,并編译、下载和调试,最终控制一台小功率鼠笼式异步电动机,验证了混合
    发表于 07-24 11:51