利用ESP32和Phyphox描绘二极管导通状态下的伏安特性曲线
引言
大年初三,微主在面包板上搭建了“描绘二极管导通状态下的伏安特性曲线”的实验电路,将可编程电阻板作为电流表内阻,将电位计作为变阻器控制电路,将ESP32作为电压表和电流表,采集二极管的电压和电流数据,绘制了二极管导通状态下的伏安特性曲线。
将可编程电阻板调节为1000欧姆,作为电流表内阻与二极管串联,利用IO33脚测量二极管正极电位,利用IO35脚测量可编程电阻板正极电位,然后将测量和运算出来的二极管的电压和电流通过蓝牙发送给智能手机中加载的Phyphox,Phyphox就自动绘制出来了二极管导通状态下的伏安特性曲线。
小程序编写
/*
描绘二极管的伏安特性曲线。
*/
#include <phyphoxBle.h>
int Pin1 = 33;//读取二极管电压
int Pin2 = 35;//读取定值电阻电压,用于计算二极管电流值
float It = 0;//待测定值电阻的电流
float Vt = 0;//待测定值电阻的电压
float r = 1000.0;//定值电阻
void setup()
{
PhyphoxBLE::start("Phyphox蓝牙实验");
PhyphoxBleExperiment plotPhotoResistor;
plotPhotoResistor.setTitle("描绘二极管伏安特性曲线");
plotPhotoResistor.setCategory("Phyphox蓝牙实验");
plotPhotoResistor.setDescription("张怀华,焦作十一中,描绘出二极管的伏安特性曲线。");
//View
PhyphoxBleExperiment::View firstView;
firstView.setLabel("MyView"); //Create a "view"
//Graph
PhyphoxBleExperiment::Graph firstGraph;
firstGraph.setLabel("描绘二极管伏安特性曲线");
firstGraph.setUnitX("V");
firstGraph.setUnitY("A");
firstGraph.setLabelX("电压");
firstGraph.setLabelY("电流");
firstGraph.setChannel(1, 2);//启用第1,第2两个蓝牙信道
firstView.addElement(firstGraph);
plotPhotoResistor.addView(firstView);
PhyphoxBLE::addExperiment(plotPhotoResistor);
}
void loop()
{
float iVe = analogRead(Pin1) * 3.3 / 1024.0 / 4.0;//读取二极管正极的电位
float iVr = analogRead(Pin2) * 3.3 / 1024.0 / 4.0;//读取定值电阻正极的电位
if (iVe != 0.0) {
Vt = iVe ;//计算二极管两端电压
It = (iVr - iVe) / r ;//计算二极管内部电流
PhyphoxBLE::write(Vt,It);//电压和电流数据利用蓝牙发送
};
delay(10);//每秒钟采集100组实验数据和电压
PhyphoxBLE::poll();
}
数据采集与分析
运行程序,缓慢旋转电位计,Phyphox就自动地绘制出了二极管在导通状态下的伏安特性曲线。
二极管伏安特性曲线
全屏状态
当电压低于1.4伏时,二极管电流和电压信号消失;在二极管导通状态下,二极管内阻随着电流的增大而减小。
说明:二极管伏安特性曲线左下端有很多毛刺,那应该是待测电流值太小,进入偶然误差范围导致的。
别认真,瞎猜的!
实验结论
观察二极管在导通状态下的伏安特性曲线可以发现,二极管正向导通时存在一个阈值电压1.4伏,当二极管两端的电压小于阈值电压1.4伏时,二极管处于断路状态,二极管内部的电流几乎为零,ESP32无法检测到;当二极管量两端的电压大于阈值电压1.4伏时,二极管正向导通,二极管电流随着两端电压的增大而增大,导通电阻随着电流的增大而减小。
实验取得了圆满成功。
| 创客焦作 |
河南创客焦作是焦作市创客教育名师工作室的微信公众平台,以创客教育为主要研究方向,分享创客案例,讲解创新方法,启迪创意设计,开展科学探究,组织社会调查,指导论文写作,参加创客大赛和专利申请,发现、培养和成就一批具有创新潜质的学生。
河南公众号码:chuangkejiaozuo
河南名师博客:http://blog.sina.com.cn/updays