“第二十七课--Microduino与三级管的灵活应用/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "Microduino与三级管的灵活应用 {| style="width: 800px;" |- | ==目的== 本教程介绍了三极管的基础知识,通过Microduino-Core的IO口驱动不同电压规...")
 
Pkj讨论 | 贡献
第39行: 第39行:
 
|}
 
|}
 
===二极管===
 
===二极管===
二极管的神奇在于单向导电性,这是电阻电容电感这些器件所没有的特性。利用二极管的单向导电性能,可以把它用于整流,检波等电路。用数字万用表的二极管档(一般也是会滴滴响的那个通断测量档位)测量二极管时,如果表上有示数(不为1),那么红表笔接的是二极管正极,黑表笔接的是负极,反之则示数不变化(为1),这明显就是单向导电嘛。实际应用电路二极管损坏时,会有断路与短路两种情况。断路时无论怎样调换红黑表笔,万用表上示数始终为1。测量已短路的二极管时万用表的蜂鸣器会滴滴响,显示值与红黑表笔直接接在一起无区别,二极管损坏会有短路情况的出现与其半导体材质有关系,我们很难见到电阻损坏后阻值为0的情况。
+
二极管的神奇在于单向导电性,这是电阻电容电感这些器件所没有的特性。利用二极管的单向导电性能,可以把它用于整流,检波等电路。用数字万用表的二极管档(会滴滴响的通断测量档位)测量二极管时,如果表上有示数(不为1),那么红表笔接的是二极管正极,黑表笔接的是负极,反之则示数不变化(为1),这明显就是单向导电嘛。实际应用电路二极管损坏时,会有断路与短路两种情况。断路时无论怎样调换红黑表笔,万用表上示数始终为1。测量已短路的二极管时万用表的蜂鸣器会滴滴响,显示值与红黑表笔直接接在一起无区别,二极管损坏会有短路情况的出现与其半导体材质有关系,我们很难见到电阻损坏后阻值为0的情况。
 +
 
 
===三极管===
 
===三极管===
 
三极管,见名知义,三个引脚。三个引脚分别对应E(发射极),B(基级),C(集电极)。三极管分为NPN与PNP两种类型,该示例用到的8050属于NPN型,8550属于PNP型,见下图。
 
三极管,见名知义,三个引脚。三个引脚分别对应E(发射极),B(基级),C(集电极)。三极管分为NPN与PNP两种类型,该示例用到的8050属于NPN型,8550属于PNP型,见下图。

2014年8月16日 (六) 17:30的版本

Microduino与三级管的灵活应用

目的

本教程介绍了三极管的基础知识,通过Microduino-Core的IO口驱动不同电压规格继电器的相关内容引入,加深我们对Microduino IO口的理解,为实际应用三极管电路打下基础。同时该教程也对zigbee模块CC2530的IO口进行了简单介绍。

设备

Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。

下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。

  • 其他硬件设备
相关硬件 数量 功能
8050NPN三极管 1个 驱动继电器。
8550PNP三极管 1个 驱动继电器。
1N4148二极管 1个 与继电器线圈并联在一起,吸收反峰电压。
5V继电器 1个 实验测试。
12V继电器 1个 实验测试。
1K电阻 若干 实验测试。
可调直流电源 1个 通过调节旋钮,可以改变直流输出电压。本示例采用的是0-60V可调直流电源。调试时请不要超过36V安全电压。
USB数据连接线 1条 连通Microduino模块与计算机。
面包板 1块 各个元器件汇聚于此。
面包板跳线 1盒 电气连接线。

二极管

二极管的神奇在于单向导电性,这是电阻电容电感这些器件所没有的特性。利用二极管的单向导电性能,可以把它用于整流,检波等电路。用数字万用表的二极管档(会滴滴响的通断测量档位)测量二极管时,如果表上有示数(不为1),那么红表笔接的是二极管正极,黑表笔接的是负极,反之则示数不变化(为1),这明显就是单向导电嘛。实际应用电路二极管损坏时,会有断路与短路两种情况。断路时无论怎样调换红黑表笔,万用表上示数始终为1。测量已短路的二极管时万用表的蜂鸣器会滴滴响,显示值与红黑表笔直接接在一起无区别,二极管损坏会有短路情况的出现与其半导体材质有关系,我们很难见到电阻损坏后阻值为0的情况。

三极管

三极管,见名知义,三个引脚。三个引脚分别对应E(发射极),B(基级),C(集电极)。三极管分为NPN与PNP两种类型,该示例用到的8050属于NPN型,8550属于PNP型,见下图。

三极管属于电流控制型器件,意思是说当基级流过一个相对小电流时(基级电流Ib),集电极会有一个较大的电流流过(集电极电流Ic),Ic与Ib的比值我们称为三极管的电流放大倍数,一般用β表示。用数字万用表测量三极管时,首先可以区分出该三级管是NPN型还是PNP型,同时三极管的基级也确定了。方法如下,红表笔连到三极管某一引脚不动,然后黑表笔分别去触碰另外的两个引脚,然后再把红表笔移动一个引脚,共计测量六次,如果黑表笔分别触碰的两个引脚均有示数(示数不为1),则该管为NPN型管,红表笔连接的那一引脚为基级。该方法是假设该管为NPN型管,假设红表笔所接为三极管的基级。如果假设该管为PNP型,则是黑表笔不动,用红表笔分别触碰另外两个引脚,观察示数,如果红表笔分别触碰的两个引脚均有示数(示数不为1),则该管为PNP型,黑表笔所接为基级。实际测量时需灵活测试,得到所需判断即可。剩下的工作就是找到集电极与发射极。对于NPN型三极管,用红表笔连接非基级的一个引脚,黑表笔连接非基级的另一引脚。然后用手指(网上也有写往手指上沾点唾沫,加唾沫的原理是让手指等效电阻小一些)当电阻,手指连接红表笔与基级,如果万用表有示数(不为1),则红表笔连接的是集电极。手指的作用是引入了基级电流,让CE之间的等效阻值减小,从而万用表可以显示出不为1的示数。对于PNP型的三极管来说,原理是一样的,还需要用手指的等效电阻来引入基级电流,只是PNP型的管子有示数时红表笔接的是发射极。

继电器

继电器在控制继电器开关已做过介绍。该示例是上文的一种扩展,还用到了12V的继电器。电磁继电器(该示例中的继电器均为电磁式)分为两部分,一是线圈,一是触点。控制线圈的电压信号可以与触点接通或断开的电路没有一丁点关系,这就实现了隔离。该示例的继电器可以通断250V交流电7A的负载,继电器的外壳丝印中已给出。


实验原理图

Diff358Protel.jpg

如果用Microduino驱动一个5V的继电器,应该不麻烦。选择Microduino的D0脚,接一个1K的电阻到8050的基级,按上图连接硬件即可。

为什么选择1K的电阻呢? 因为对于NPN型的硅三极管来说,BE之间的导通压降为0.7V左右,当D0口输出低电平时,BE结没有电流流过,三极管处于截止状态,继电器自然而然的没有吸合。当D0输出高电平时,D0口的输出电压 接近于Mircroduino的电源电压5V,这5V的电压减去0.7V的BE结压降等于4.3V左右,那么8050的基级电流Ib=4.3V/1K=4.3mA,又因为8050的集电极电流Ic=β*Ib,普通的小功率三极管例如8050,8550,9014,9015,这些三级管的β值大概有100左右,这里我们保守估计,选择β=50计算,Ic=β*Ib=50*4.3mA=215mA。实测笔者手头5V继电器的线圈电阻为72欧姆,(12V继电器线圈的电阻实测为400欧姆)。那么5V继电器线圈两端的电压等于Ic*72=15.48V,该值已大于电源电压,所以可以反推出这时的三极管已经进入饱和状态。如果把这个1K的电阻换为470欧姆或是2K,对于驱动该继电器或是一些小型的蜂鸣器来说,基本没有什么区别。如果不接这个1K的限流电阻,那么8050的BE结(该BE结可以理解为一个PN结的二极管,二极管的伏安特性曲线在电压高于0.7V时电流会急剧上升)电流会很高,这可能会导致8050的烧毁或Microduino的IO口损坏。再退一步,即使什么也没损坏,那么Microduino输出高电平,而读取该点电压却读到低电平,属于设计缺陷。

1N4148二级管有什么作用呢? 当三极管由导通到截止,继电器线圈会突然掉电,此时线圈中存储的磁场能无处释放,会产生一个很高的反压,该反压为上负下正,这时的线圈我们可以理解为一个电池,电池内部的电流方向是从负极流向正极。恰好, 该二极管提供了这么一个通道,保护了三级管的集电极不再承受该反压值。

如果不接三极管,直接接继电器是否可行? 不行。因为I=V/R=5/72=69.4mA, 该电流值已超过arduino官网提供IO口输出限流,参考:[[1]]。即使没有超过官网提供的电流值,加入三极管放大这一隔离依旧是一个很好设计方案,因为刚才提到的二极管并不是一个理想器件,当线圈关断时的自感电动势可能会对Microduino的IO口产生影响。

驱动5V的继电器,一个8550是否可以搞定? 可以。更改8050的VCC与GND,便可以接出PNP型的电路,控制逻辑与NPN型三极管相反。Arduino IDE编程时需注意。如下图

如果把该5V继电器改为12V的继电器,一个8050是否可以搞定? 可以,与接5V继电器无区别。如下图。


驱动12V的继电器,一个8550是否可以实现? 不行。因为无论PNP型的管子怎么接,Microduino的IO口都控制不了继电器的关断。如下图。

按照该图连接硬件,并不能控制继电器。


驱动12V的继电器,需用到PNP型的三极管,如何实现? 需要两个三极管。如下图。

如果用Microduino驱动12V的继电器,加入此PNP三极管确实属于画蛇添足。但是当我们在应用Zigbee模块CC2530驱动12V继电器时,该电路便显示出了合理性。单片机上电瞬间到PC指针可以正常运转需要一个时间。参考:

再对比一下Microduino IO口与CC2530的IO口复位期间以及复位后的初始状态。

参考:

由对比可知,Microduino的IO口复位期间以及复位后均处于高阻状态,上拉电阻未启用。CC2530在复位期间以及复位后的初始状态均为带上拉的输入。尽管上拉是若上拉,但是此上拉电阻拉出电流经三极管放大后依旧会使继电器接通,CC2530的编程只能改变复位后IO口的状态,复位期间的状态则完全由硬件决定。因此采用该电路CC2530模块可以在复位期间精确的控制12V继电器的状态。 328文档下载:文件:328.pdf 2530文档下载:文件:2530.pdf


程序

void setup()
 {
   pinMode(2,OUTPUT);
   digitalWrite(2,LOW);
   delay(6000);
 }
 void loop()
 {
   digitalWrite(2,HIGH);
   delay(2000);
   digitalWrite(2,LOW);
   delay(2000);
 }

调试

  • 按照原理图搭建硬件电路,注意二极管的方向,以及三级管的EBC引脚序列。
  • 确认硬件无误后,接通Microduino。打开编译器,把程序复制到Arduino IDE中。
  • 编译程序,选择正确的板卡与相应串口。
  • 点击Upload,下载后可根据继电器吸合的声音判断我们的电路设计是否合理。

结果

用Microduino控制5V继电器,8050或8550任何一个三极管均可实现功能。如果需要控制12V继电器,如果采用一个8050可以实现,如果采用8550,则还需加入一级三级管电路。对已CC2530模块来说,如果复位期间也要精准控制IO口的输出状态,需加入PNP型三级管。

视频