라디오 전자 및 전기 공학의 백과사전 다이오드 및 바이폴라 트랜지스터 테스터. 무선전자공학 및 전기공학 백과사전 대부분의 최신 테스터(멀티미터)에는 다이오드 및 때로는 트랜지스터를 테스트하기 위한 기능이 내장되어 있습니다. 그러나 테스터에 이러한 기능이 없으면 다이오드 및 트랜지스터 테스터를 손으로 조립할 수 있습니다. 아래는 PIC16F688 마이크로컨트롤러를 기반으로 한 테스터 프로젝트입니다. 다이오드를 테스트하는 논리는 매우 간단합니다. 다이오드는 한 방향으로만 전류를 전도하는 것으로 알려진 PN 접합입니다. 따라서 작동 다이오드는 한 방향으로 전류를 전도합니다. 다이오드가 양방향으로 전류를 전도하면 다이오드가 작동하지 않습니다. 다이오드가 어느 방향으로도 전도되지 않으면 다이오드도 작동하지 않는 것입니다. 이 논리의 회로 구현은 아래에 나와 있습니다. 이 로직은 두 개의 PN 접합, 즉 베이스와 이미터 사이(BE 접합)와 베이스와 컬렉터 사이(BC 접합)를 포함하는 바이폴라 트랜지스터를 테스트하는 데 쉽게 적용할 수 있습니다. 두 접합 모두 한 방향으로만 전류를 전도하면 트랜지스터가 작동하는 것이고, 그렇지 않으면 작동하지 않는 것입니다. 또한 전류 전도 방향을 결정하여 트랜지스터 pnp 또는 npn 유형을 식별할 수도 있습니다. 트랜지스터를 테스트하기 위해 마이크로 컨트롤러는 3개의 입력/출력을 사용합니다. 트랜지스터 테스트 시퀀스: 1. 출력(2로 설정) D1를 켜고 D3과 D1을 읽습니다. D3이 논리 1이면 BE 접합은 전류를 전도하고 그렇지 않으면 전도하지 않습니다. DXNUMX가 XNUMX이면 BC는 전류를 전도하고, 그렇지 않으면 전류를 전도하지 않습니다.
또한 BE와 BC가 전류를 전도하는 경우 트랜지스터는 NPN 유형이며 작동합니다. EB와 CB가 전류를 전도하는 경우 트랜지스터는 pnp 유형이며 작동 중입니다. 다른 모든 경우(예: EB와 EB가 전류를 전도하거나 BC와 KB의 전이가 모두 전도되지 않는 등) 트랜지스터는 작동 상태가 아닙니다. 다이오드 및 트랜지스터 테스터의 개략도 및 설명 테스터 회로는 매우 간단합니다. 장치에는 선택 및 세부정보라는 2개의 제어 버튼이 있습니다. 선택 버튼을 누르면 테스트 유형(다이오드 또는 트랜지스터 테스트)이 선택됩니다. 세부 정보 버튼은 트랜지스터 테스트 모드에서만 작동하며, LCD 화면에는 트랜지스터 유형(npn 또는 pnp)과 트랜지스터 전환의 전도성 상태가 표시됩니다. 테스트 중인 트랜지스터의 세 다리(이미터, 컬렉터 및 베이스)는 1kΩ 저항을 통해 접지에 연결됩니다. 테스트를 위해 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); } 저자: Koltykov A.V.; 간행물: cxem.net 다른 기사 보기 섹션 측정 기술. 읽고 쓰기 유용한 이 기사에 대한 의견. 과학 기술의 최신 뉴스, 새로운 전자 제품: 광신호를 제어하고 조작하는 새로운 방법
05.05.2024 프리미엄 세네카 키보드
05.05.2024 세계 최고 높이 천문대 개관
04.05.2024
다른 흥미로운 소식: ▪ 레이저 홀로그램은 산업용 XNUMXD 프린팅의 품질을 향상시킬 것입니다. ▪ 복어 독 치료제
무료 기술 라이브러리의 흥미로운 자료: ▪ 라디오 아마추어를 위한 사이트 팁 섹션. 기사 선택 ▪ 기사 BOSCH 컨트롤러가 장착된 자동차 엔진용 진단 도구. 무선 전자 및 전기 공학 백과사전 이 페이지의 모든 언어 홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰 www.diagram.com.ua |