单片机原理及应用项目化教程课件项目十一 红外与步进电机_第1页
单片机原理及应用项目化教程课件项目十一 红外与步进电机_第2页
单片机原理及应用项目化教程课件项目十一 红外与步进电机_第3页
单片机原理及应用项目化教程课件项目十一 红外与步进电机_第4页
单片机原理及应用项目化教程课件项目十一 红外与步进电机_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目十一

红外与步进电机

11.1红外遥控器11.1.1红外光的基本原理

红外线是波长介于微波和可见光之间的电磁波,波长在760纳米到1毫米之间,是波长比红光长的非可见光。

红外发射管很常用,在我们的遥控器上都可以看到,它类似发光二极管,但是它发射出来的是红外光,是我们肉眼所看不到的。红外发射管发射红外线的强度随着电流的增大而增强。

红外接收管内部是一个具有红外光敏感特征的PN节,属于光敏二极管,但是它只对红外光有反应。无红外光时,光敏管不导通,有红外光时,光敏管导通形成光电流,并且在一定范围内电流随着红外光的强度的增强而增大。红外发射管红外接收管11.1.2红外遥控通信原理

我们平时用到的红外遥控器里的红外通信,通常是使用38K左右的载波进行调制的。调制就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。比如我们的红外遥控信号要发送的时候,先经过38K调制。红外发射原理图当信号输出引脚输出高电平时,Q2截止,不管38K载波信号如何控制Q1,右侧的竖向支路都不会导通,红外管L1不会发送任何信息。当信号输出是低电平的时候,那么38K载波就会通过Q1释放出来,在L1上产生38K的载波信号。38K载波,我们可以用455K晶振,经过12分频得到37.91K,也可以由时基电路NE555来产生,或者使用单片机的PWM来产生。

正常的通信来讲,接收端要首先对信号通过监测、放大、滤波、解调等等一系列电路处理,然后输出基带信号。但是红外通信的一体化接收头HS0038B,已经把这些电路全部集成到一起了,我们只需要把这个电路接上去,就可以直接输出我们所要的基带信号了。

由于红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头供电引脚上必须加上滤波电容,官方手册给的值是4.7uF,我们这里直接用的10uF,手册里还要求在供电引脚和电源之间串联100欧的电阻,进一步降低干扰。

当HS0038B监测到有38K的红外信号时,就会在OUT引脚输出低电平,当没有38K的时候,OUT引脚就会输出高电平。那我们把OUT引脚接到单片机的IO口上,通过编程,就可以获取红外通信发过来的数据了。10.1.3NEC协议红外遥控器

遥控器的基带通信协议很多,大概有几十种,常用的就有ITT协议、NEC协议、Sharp协议、PhilipsRC-5协议、SonySIRC协议等。用的最多的就是NEC协议了。NEC协议的数据格式包括了引导码、用户码、用户码(或者用户码反码)、按键键码和键码反码,最后一个停止位。停止位主要起隔离作用,一般不进行判断,编程时我们也不予理会。其中数据编码总共是4个字节32位,第一个字节是用户码,第二个字节可能也是用户码,或者是用户码的反码,具体由生产商决定,第三个字节就是当前按键的键数据码,而第四个字节是键数据码的反码,可用于对数据的纠错。NEC协议数据格式引导码:9ms的载波+4.5ms的空闲。比特值“0”:560us的载波+560us的空闲。比特值“1”:560us的载波+1.68ms的空闲。

HS0038B这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平,我们用逻辑分析仪抓出来一个红外按键通过HS0038B解码后的图形来了解一下。

从图上可以看出,先是9ms载波加4.5ms空闲的起始码,数据码是低位在前,高位在后,数据码第一个字节是8组560us的载波加560us的空闲,也就是0x00,第二个字节是8组560us的载波加1.68ms的空闲,可以看出来是0xFF,这两个字节就是用户码和用户码的反码。按键的键码二进制是0x0C,反码就是0xF3,最后跟了一个560us载波停止位。对于我们的遥控器来说,不同的按键,就是键码和键码反码的区分,用户码是一样的。这样我们就可以通过单片机的程序,把当前的按键的键码给解析出来。#include<reg52.h>sbitIR_INPUT=P3^3;//红外接收引脚bitirflag=0;//红外接收标志,收到一帧正确数据后置1unsignedcharircode[4];//红外代码接收缓冲区voidInitInfrared(){ IR_INPUT=1; TMOD&=0X0F; TMOD|=0x10; TR1=0; ET1=0; IT1=1; EX1=1;}unsignedintGetHighTime(){ TH1=0; TL1=0; TR1=1; while(IR_INPUT) { if(TH1>0x40) { break; } } TR1=0; return(TH1*256+TL1);} unsignedintGetLowTime(){ TH1=0; TL1=0; TR1=1; while(!IR_INPUT) { if(TH1>0x40) { break; } } TR1=0; return(TH1*256+TL1);}voidEXINT1_ISR()interrupt2{ unsignedchari,j; unsignedinttime; unsignedcharbyt; time=GetLowTime(); if((time<7833)||(time>8755)) { IE1=0; return; }

time=GetHighTime(); if((time<3686)||(time>4608)) { IE1=0; return; } for(i=0;i<4;i++) { for(j=0;j<8;j++) { time=GetLowTime(); if((time<313)||(time>718)) { IE1=0; return; }

time=GetHighTime(); if((time>313)&&(time<718)) {byt>>=1; } elseif((time>1345)&&(time<1751)) {byt>>=1; byt|=0x80; } else {

IE1=0; return;} }ircode[i]=byt; } irflag=1; IE1=0;}11.228BYJ-48型步进电机详解11.2.1电机的分类

电机的分类方式有很多,从用途角度可划分为驱动类电机和控制类电机。直流电机属于驱动类电机,这种电机是将电能转换成机械能,主要应用在电钻、小车轮子、电风扇、洗衣机等设备上。步进电机属于控制类电机,它是将脉冲信号转换成一个转动角度的电机,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,主要应用在自动化仪表、机器人、自动生产流水线、空调扇叶转动等设备。步进电机又分为反应式、永磁式和混合式三种。

反应式步进电机:结构简单成本低,但是动态性能差、效率低、发热大、可靠性难以保证,所以现在基本已经被淘汰了。

永磁式步进电机:动态性能好、输出力矩较大,但误差相对来说大一些,因其价格低而广泛应用于消费性产品。

混合式步进电机:综合了反应式和永磁式的优点,力矩大、动态性能好、步距角小,精度高,但是结构相对来说复杂,价格也相对高,主要应用于工业。我们本章内容主要讲解28BYJ-48这款步进电机,先介绍型号中包含的具体含义:28——步进电机的有效最大外径是28毫米B——表示是步进电机Y——表示是永磁式J——表示是减速型48——表示四相八拍10.2.2让电机转起来

步进电机一共有5根引线,其中红色的是公共端,连接到5V电源,接下来的橙、黄、粉、蓝就对应了A、B、C、D相;那么如果要导通A相绕组,就只需将橙色线接地即可,B相则黄色接地,依此类推;可以得出下面的绕组控制顺序表

12345678P1-红VCCVCCVCCVCCVCCVCCVCCVCCP2-橙GNDGND

GNDP3-黄

GNDGNDGND

P4-粉

GNDGNDGND

P5-蓝

GNDGNDGND

我们板子上控制步进电机部分是和板子上的显示控制的74HC138译码器部分复用的P1.0~P1.3,通过调整跳线帽的位置可以让P1.0~P1.3控制步进电机的四个绕组,如下图所示。如果要使用电机的话,需要把4个跳线帽都调到跳线组的左侧(开发板上的实际位置),即左侧针和中间针连通(对应原理图中的中间和下边的针),就可以使用P1.0到P1.3控制步进电机了。步进电机的控制电路如下图所示

单片机的IO口可以直接输出0V和5V的电压,但是电流驱动能力,也就是带载能力非常有限,所以我们在每相的控制线上都增加一个三极管来提高驱动能力。由图中可以看出,若要使A相导通,则必须是Q2导通,此时A相也就是橙色线就相当于接地了,于是A相绕组导通,此时单片机P1口低4位应输出0b1110,即0xE;如要A、B相同时导通,那么就是Q2、Q3导通,P1口低4位应输出0b1100,即0xC,依此类推,我们可以得到下面的八拍节拍的IO控制代码数组:unsignedcharcodeBeatCode[8]={0xE,0xC,0xD,0x9,0xB,0x3,0x7,0x6};

循环将这个数组内的值送到P1口就行了。但是还有个问题:多长时间送一次数据,也就是说一个节拍要持续多长时间合适呢?这个时间是由步进电机的启动频率决定的。启动频率,就是步进电机在空载情况下能够正常启动的最高脉冲频率,如果脉冲频率高于该值,电机就不能正常启动。下表就是由厂家提供的步进电机参数表。供电电压相数相电阻Ω步进角度

减速比启动频率P.P.S转矩g.cm噪声dB绝缘介电强度5V450±10%

5.625/64

1:64

≥550

≥300

≤35

600VAC

表中给出的参数是≥550,单位是P.P.S,即每秒脉冲数,这里的意思就是说:电机保证在每秒给出550个步进脉冲的情况下,可以正常启动。那么换算成单节拍持续时间就是1s/550=1.8ms,为了让电机能够启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论