本小节目录:
4.1,继电器的工作原理及触点和线圈的检测
4.2,继电器连接单片机原理图和程序
4.3,有源蜂鸣器和无源蜂鸣器的区别
4,4,蜂鸣器连接单片机原理图
4.1)继电器的工作原理及触点和线圈的检测
4.1.1什么是继电器?(如图1)
继电器实际上也就是一种以低电压,小电流去控制高电压,大电流的“自动开关”,具有自动调节,转换电路,安全保护等作用
图 1
图2 电磁继电器内部解剖图
继电器的种类非常多,有:温度继电器,时间继电器,固态继电器,高频继电器,极化继电器,脉冲继电器,,,,等等。
以大多单片机开发板有的电磁继电器为例:(图2)
电磁继电器一般由铁心,线圈,衔铁、触点簧片等组成,
只需在线圈两端加上一定电压,线圈会流过一定电流,从而产生电磁效应,衔铁会在电磁力吸引下克服返回弹簧的拉力,吸向线圈,从而吸合到常开接点(常开触点);当线圈断电后,电磁力消失,衔铁又会在弹簧反作用力下返回原理的位置(常闭触点)。
4.1.2继电器触点和线圈的检测(如图2)
1, 找出线圈引脚
把万能表跳到X1K档两两引脚试,阻值在数百至1K欧姆作用的两引脚为线圈引脚,但注意,有些继电器线圈有正负极,反接不起作用。
2,找出常开,常闭触点
用万能表测剩下引脚,两触点阻值约为0(理想阻值为0),即有一触点为常闭触点,两触点阻值为无穷大,即有一常开触点,既与常开触点有关,又与常闭触点有关即为公共点(动力点)
4.1.3 继电器的选用
1.先了解必要的条件
①控制电路的电源电压,能提供的最大电流;
②被控制电路中的电压和电流;
③被控电路需要几组、什么形式的触点。
选用继电器时,一般控制电路的电源电压可作为选用的依据。
控制电路应能给继电器提供足够的工作电流,否则继电器吸合是不稳定的。
2.查阅有关资料确定使用条件后,可查找相关资料,找出需要的继电器的型号和规格号。若手头已有继电器,可依据资料核对是否可以利用。最后考虑尺寸是否合适。
3.注意器具的容积。若是用于一般用电器,除考虑机箱容积外,小型继电器主要考虑电路板安装布局。对于小型电器,如玩具、遥控装置则应选用超小型继电器产品。
4.2)继电器连接单片机原理图和程序
图3 麦光电子继电器原理图
原理图解释:
1) 2和5为线圈,一端通VCC,一端用三极管S8550驱动,接1K电阻后连接单片机D6(P1^6)端口
2) 3,4分别为常开触点,常闭触点
3) J2为连接座,继电器控制外部大电流,大电压的接口
4) 显然可以看出,当D6为低电平时,衔铁会打到3处,连接常开触点,继而导通J2处的1,2
同时,本人认为麦光电子这个电路设计是有点缺陷的,应在2,5端,反接一个二
极管,用于消耗反向电动势,因为,当继电器在断电的一瞬间,会产生一个很强的反向电动势,若无二极管消耗反向电动势,反向电动势会直接作用于驱动三极管,非常容易将三极管烧坏。
继电器程序:
说明:让继电器连接到常开触点,延时1秒,然后让继电器回到常闭触点,再延时1秒,如此循环,,,,,,,,,
#include
#define Uchar8 unsigned char
#define Uint16 unsigned int
sbit Relay = P1^5; // 声明单片机P1^5连接继电器端口
sbit LED = P2^7; // 声明单片机P2^7连接的一个LED端口
// 延时函数
void Delayms(Uint16 xms)
{
Uint16 i, j;
for(i=xms; i>0; i--)
for(j=121; j>0; j--);
}
void main(void)
{
while(1)
{
Relay = 0; // 继电器处于常开触点
LED = 0; // 点亮LED
Delayms(1000); // 延时1秒
Relay = 1; // 继电器处于常闭触点
LED = 1; // 关闭LED
Delayms(1000);
}
}
说明:程序中加入LED点亮或者关灭的原因是:使继电器伴随LED亮灭,更好体会实验现象而已。
4.3)有源蜂鸣器和无源蜂鸣器的区别
图4 a)为有源蜂鸣器;b)为无源蜂鸣器
区别:细心可看出,1,有绿色电路板的是无源蜂鸣器,无电路板而用黑胶封闭的是有源蜂鸣器 2,有源蜂鸣器工作电流为直流,而无源蜂鸣器工作电流为方波; 3,有源蜂鸣器内部带振动源,而无源蜂鸣器内部没有振动源; 4,有源蜂鸣器直接额定电源可发音,而无源蜂鸣器需接在音频输出电路中才能发音。
4.4)有源蜂鸣器连接单片机原理图
图5 麦光电子开发板中,蜂鸣器连接图
原理图分析:
因单片机端口驱动电流只有100uA--200uA,故需三极管S8550来扩流,所以易知,当D5口(连接单片机P1^4)端出现低电平时,三极管导通,电流由VCC经蜂鸣器到GND,则蜂鸣器就会发声,而反之,D5为高电平时,三极管截止,蜂鸣器无电流,则不会发声。
蜂鸣器程序1:
让蜂鸣器响1秒,再让蜂鸣器不响1秒,如此循环,,,,,,
#include
#define Uint16 unsigned int
sbit beep = P1^4; // 声明蜂鸣器连接单片机端口
void Delayms(Uint16 xms) // 延时函数
{
Uint16 i, j;
for(i=xms; i>0; i--)
for(j=121; j>0; j--);
}
void main(void)
{
while(1)
{
beep = 0; // 蜂鸣器响
Delayms(1000); // 延时1秒
beep = 1; // 蜂鸣器不响
Delayms(1000);
}
}
蜂鸣器程序2:国际求救信号SOS的程序
#include
#define Uchar8 unsigned char
#define Uint16 unsigned int
sbit Beep = P1^4;
void Delayms(Uint16 xms) // 延时函数
{
Uint16 i, j;
for(i=xms; i>0; i--)
for(j=121; j>0; j--);
}
void main(void)
{
while(1)
{
/* **** 三短 **** */
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
/* **** 三长 **** */
Beep = 0;Delayms(300);
Beep = 1;Delayms(50);
Beep = 0;Delayms(300);
Beep = 1;Delayms(50);
Beep = 0;Delayms(300);
Beep = 1;Delayms(50);
/* **** 三短 **** */
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
Beep = 0;Delayms(100);
Beep = 1;Delayms(50);
/* **** 便于区分 **** */
Delayms(1000);
}
}
(说明:所用开发板为:麦光电子单片机开发板)
本系列《MCU之心路分享》博文,本人将尽自己所能,以菜鸟的身份,谱写初学者最详细,最具体的入门博客,同时分享DIY的乐趣,如有误之处,欢迎拍砖,本人也很乐意接受各位大神的批评和指点,在此谢谢!
于2013年11月06日 夜
文章评论(0条评论)
登录后参与讨论