第十一课--光照报警器(自己DIY光敏三极管)/zh
目的
以前LED用来做指示,利用了其发光效应,今天我们实验其另外一个功能——光电效应,原理是LED发光二极管在受到强光照射时会产生微弱的电流,我们可用三极管将其放大。当检测有变化就用蜂鸣器提醒。
设备
Microduino-CoreSTM32小巧精悍,其内核来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。
- 其他硬件设备
- 面包板跳线 一盒
- 面包板 一块
- LED发光二极管 一个
- 10k、1K电阻 各一个
- 蜂鸣器 一个
- USB数据连接线 一根
- 9013三极管 一个
原理图
三极管是一种电流控制电流的半导体器件,其作用是把微弱信号放大成辐值较大的电信号,也作无触点开关或者电压跟随等。三极管是在一块半导体基片上制作两个相距很近的PN结,两个PN结把整块半导体分成三部分,中间部分是基区,两侧部分是发射区和集电区,排列方式有PNP和NPN两种。
NPN型三极管由两块N型和一块P型半导体构成,如图所示:
P型半导体在中间,两块N型半导体在两侧,各半导体所引出的电极见图中所示。在P型和N型半导体的交界面形成两个PN结,形成三个区,中间部分成为基区,相连电极成为基极,用B表示,两侧分别是发射区和集电区,相连电极分别为发射极和集电极。在基极与集电极之间的PN结称为集电结,在基极与发射极之间的PN结称为发射结。
常用三极管的区别大家参考:http://wenku.baidu.com/view/0fc3bc5077232f60ddcca1ae.html
三极管的引脚识别大家参考:http://wenku.baidu.com/view/3e636bb469dc5022aaea0098.html
本实验用的是9013三极管(NPN型),写有型号数字一面的朝自己,从左往右数分别是E,B,C。如图:
程序
#include <libmaple.h>
int n;
void setup()
{
pinMode(15,INPUT); //模拟输入口
pinMode(8,OUTPUT); //蜂鸣器控制口
}
void loop()
{
n=analogRead(15); //读取模拟口数据
if(n>0) //有电压反应就运行以下程序,产生特定脉冲,让蜂鸣器响
{
digitalWrite(8,HIGH); //蜂鸣器开始报警
SerialUSB.print("Alarming ");
SerialUSB.println(n); //显示当前读取的模拟值
delay(10);
}
else
{
SerialUSB.print("normal ");
SerialUSB.println(n);
digitalWrite(8,LOW); //关闭蜂鸣器
delay(10);
}
delay(10); //串口监视最好加延时,不然速率太快,容易死机。
}
调试
参考上图用导线连接完毕并确认无误。
把程序复制到Maple IDE中。
编译程序,选择正确的板卡与相应串口。
点击Upload,下载完毕后打开Maple IDE自带的串口监视器,观察结果。
结果
有强光照射LED后,模拟输入口读取的值不为大于0,此时蜂鸣器报警。当把强光一开LED后,模拟输入口读取的值变为0,此时蜂鸣器停止报警。