无线电电子与电气工程百科全书 二极管和双极晶体管测试仪。 无线电电子电气工程百科全书 大多数现代测试仪(万用表)具有用于测试二极管和有时晶体管的内置功能。 但是如果你的测试仪没有这些功能,那么你可以自己动手组装一个二极管和晶体管测试仪。 下面是一个基于 PIC16F688 单片机的测试仪项目。 测试二极管的逻辑非常简单。 二极管是一种 PN 结,已知仅在一个方向上传导电流。 因此,工作二极管将沿一个方向传导电流。 如果二极管在两个方向上传导电流,则二极管不工作 - 已损坏。 如果二极管在任一方向均不导通,则二极管也不工作。 该逻辑的电路实现如下所示。 该逻辑可以轻松地适用于包含两个 PN 结的双极晶体管测试:一个位于基极和发射极之间(BE 结),一个位于基极和集电极之间(BC 结)。 如果两个结只在一个方向上传导电流,则晶体管工作,否则不工作。 我们还可以通过确定电流传导的方向来识别 pnp 或 npn 晶体管的类型。 为了测试晶体管,微控制器使用 3 个输入/输出 晶体管测试序列: 1. 打开输出(设置为 2)D1 并读取 D3 和 D1。 如果D3上有逻辑单元,则BE结导通电流,否则不导通。 如果D1为XNUMX,则BC导通电流,否则不导通。
此外,如果BE和BC导通电流,则该晶体管为npn型且工作。 然而,如果EB和CB导通电流,则pnp型晶体管也在工作。 在所有其他情况下(例如EB和BE导通电流,或者BC和CB均不导通等),晶体管处于非工作状态。 二极管和三极管测试仪示意图及说明 该测试仪的电路非常简单。 该设备有 2 个控制按钮:Select(选择)和 Detail(更多)。 通过按选择按钮,可以选择测试类型:二极管或晶体管测试。 详细按钮仅在晶体管测试模式下起作用,液晶屏显示晶体管的类型(npn 或 pnp)以及晶体管结的导通状态。 被测晶体管的三个脚(发射极、集电极和基极)通过 1 kΩ 电阻接地。 为了进行测试,使用了 PIC0F1 微控制器的引脚 RA2、RA16 和 RA688。 为了测试二极管,只使用了两个输出:E 和 K(在图中标记为 D1 和 D2)。 程序 该项目的软件是使用 MikroC 编译器编写的。 在测试和编程期间,请注意并遵循 MK(RA0、RA1 和 RA2)的输入/输出设置。 它们在运行过程中经常发生变化。 在将任何输出设置为 1 之前,请确保 MCU 的其他两个 I/O 被定义为输入。 否则,MK 的输入/输出可能会发生冲突。
/* Project: Diode and Transistor Tester Internal Oscillator @ 4MHz, MCLR Enabled, PWRT Enabled, WDT OFF Copyright @ Rajendra Bhatt November 9, 2010 */ // LCD module connections sbit LCD_RS at RC4_bit; sbit LCD_EN at RC5_bit; sbit LCD_D4 at RC0_bit; sbit LCD_D5 at RC1_bit; sbit LCD_D6 at RC2_bit; sbit LCD_D7 at RC3_bit; sbit LCD_RS_Direction at TRISC4_bit; sbit LCD_EN_Direction at TRISC5_bit; sbit LCD_D4_Direction at TRISC0_bit; sbit LCD_D5_Direction at TRISC1_bit; sbit LCD_D6_Direction at TRISC2_bit; sbit LCD_D7_Direction at TRISC3_bit; // End LCD module connections sbit TestPin1 at RA0_bit; sbit TestPin2 at RA1_bit; sbit TestPin3 at RA2_bit; sbit Detail at RA4_bit; sbit SelectButton at RA5_bit; // Define Messages char message1[] = "Diode Tester"; char message2[] = "BJT Tester"; char message3[] = "Result:"; char message4[] = "Short"; char message5[] = "Open "; char message6[] = "Good "; char message7[] = "BJT is"; char *type = "xxx"; char *BE_Info = "xxxxx"; char *BC_Info = "xxxxx"; unsigned int select, test1, test2, update_select, detail_select; unsigned int BE_Junc, BC_Junc, EB_Junc, CB_Junc; void debounce_delay(void){ Delay_ms(200); } void main() { ANSEL = 0b00000000; //All I/O pins are configured as digital CMCON0 = 0?07 ; // Disbale comparators PORTC = 0; PORTA = 0; TRISC = 0b00000000; // PORTC All Outputs TRISA = 0b00111000; // PORTA All Outputs, Except RA3 (I/P only) Lcd_Init(); // Initialize LCD Lcd_Cmd(_LCD_CLEAR); // CLEAR display Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off Lcd_Out(1,2,message1); // Write message1 in 1st row select = 0; test1 = 0; test2 = 0; update_select = 1; detail_select = 0; do { if(!SelectButton){ debounce_delay(); update_select = 1; switch (select) { case 0 : select=1; break; case 1 : select=0; break; } //case end } if(select == 0){ // Diode Tester if(update_select){ Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,2,message1); Lcd_Out(2,2,message3); update_select=0; } TRISA = 0b00110100; // RA0 O/P, RA2 I/P TestPin1 = 1; test1 = TestPin3 ; // Read I/P at RA2 TestPin1 = 0; TRISA = 0b00110001; // RA0 I/P, RA2 O/P TestPin3 = 1; test2 = TestPin1; TestPin3 = 0; if((test1==1) && (test2 ==1)){ Lcd_Out(2,10,message4); } if((test1==1) && (test2 ==0)){ Lcd_Out(2,10,message6); } if((test1==0) && (test2 ==1)){ Lcd_Out(2,10,message6); } if((test1==0) && (test2 ==0)){ Lcd_Out(2,10,message5); } } // End if(select == 0) if(select && !detail_select){ // Transistor Tester if(update_select){ Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,2,message2); update_select = 0; } // Test for BE and BC Junctions of n-p-n TRISA = 0b00110101; // RA0, RA2 I/P, RA1 O/P TestPin2 = 1; BE_Junc = TestPin1 ; // Read I/P at RA0 BC_Junc = TestPin3; // Read I/P at RA2 TestPin2 = 0; // Test for EB and CB Junctions of p-n-p TRISA = 0b00110110; // RA0 O/P, RA1/RA2 I/P TestPin1 = 1; EB_Junc = TestPin2; TestPin1 = 0; TRISA = 0b00110011; // RA0 O/P, RA1/RA2 I/P TestPin3 = 1; CB_Junc = TestPin2; TestPin3 = 0; if(BE_Junc && BC_Junc && !EB_Junc && !CB_Junc){ Lcd_Out(2,2,message3); Lcd_Out(2,10,message6); type = "n-p-n"; BE_info = "Good "; BC_info = "Good "; } else if(!BE_Junc && !BC_Junc && EB_Junc && CB_Junc){ Lcd_Out(2,2,message3); Lcd_Out(2,10,message6); type = "p-n-p"; BE_info = "Good "; BC_info = "Good "; } else { Lcd_Out(2,2,message3); Lcd_Out(2,10,"Bad "); type = "Bad"; } } if(select && !Detail){ debounce_delay(); switch (detail_select) { case 0 : detail_select=1; break; case 1 : detail_select=0; break; } //case end update_select = 1; } if(detail_select && update_select){ // Test for BE Junction open if(!BE_Junc && !EB_Junc){ BE_info = "Open "; } // Test for BC Junction open if(!BC_Junc && !CB_Junc){ BC_info = "Open "; } // Test for BE Junction short if(BE_Junc && EB_Junc){ BE_info = "Short"; } // Test for BC Junction short if(BC_Junc && CB_Junc){ BC_info = "Short"; } Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Type:"); Lcd_Out(1,7,type); Lcd_Out(2,1,"BE:"); Lcd_Out(2,4,BE_info); Lcd_Out(2,9,"BC:"); Lcd_Out(2,12,BC_info); update_select = 0; } // End if (detail_select) } while(1); } 作者:科尔蒂科夫 A.V.; 出版:cxem.net 查看其他文章 部分 测量技术. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 花园疏花机
02.05.2024 先进的红外显微镜
02.05.2024 昆虫空气捕捉器
01.05.2024
其他有趣的新闻: ▪ 支持 3102K 视频的 Asustor AS3104T 和 AS4T NAS ▪ 测深墙
免费技术图书馆的有趣材料: ▪ 文章 为什么日本自杀式飞行员被称为“神风特攻队”? 详细解答 本页所有语言 www.diagram.com.ua |