아두이노프로세싱 프로그래밍

초보자를 위한 아두이노 통전 시험기 사용 자동차 엔진 파워TR 점검 및 코딩 예제

coding art 2017. 3. 16. 15:13
728x90

지금 우리가 타고 있는 자동차의 엔진은 TR 방식 점화회로를 사용하고 있다. 이 엔진의 TR 점화회로의 핵심 부품인 파워TR 점검은 엔진 작동 중에 실시간으로 하지 않고 파워TR을 분리하여 별도의 통전 시험에 검사를 하게 되어 있다.


자동차 엔진 점화용 파워TR은 내부에 TR이 2단으로 연결된 다알링턴 방식 TR을 사용하고 있다. 복잡하게 보일지도 모르겠으나 그 작동 원리는 하나짜리 TR 의 작동 원리와 동일하다. 즉 TR의 베이스(B) 컬렉터(C) 에미터(E)를 IB, OC 및 G 단자가 대신할 따름이다. IB 단자에 적절한 수준의 전압을 가해 주어 TR의 베이스 전류에 해당하는 입력 (그림의 빨간 색 화살 표) 전류를 흘려주면 OC 단자로부터 G단자로의 전류가 스위칭 되어 흐른다.



사진은 실제 쏘나타 차량 엔진의 NPN 형 파워TR이다.
입력 베이스 전류가 없을 경우에는 파워TR이 OC 단자로부터 G 단자까지 OFF 상태가 된다.  반면에 IB 단자와 G 단자 사이에 1.5V의 입력 전압을 걸어 베이스 전류를 흘려 줄 경우 파워TR이 on 상태 다시 말하자면 스위칭이 된 통전 상태가 된다.

이 파워TR 점검 방법은 1.5V 건전지와 멀티메터 통전 기능을 활용하는 정비 기능사 또는 산업기사 자격증 실기 시험 기출 문제이기도 하다. 혹 파워TR을 구하기 힘든 경우에는 규격에 그다지 관계 없이 NPN TR을 사용해도 무방할 것이다.

아두이노와 연결하여 시험하였던 통전 시험기를 사용하여 파워TR을 점검하려면 우선적으로 IB 단자에 1.5V 전압을 공급하는 건전지를 대체할 수 있도록 간단하게 가변저항을 이용하여 해결하기로 한다. 연결도는 위의 회로도를 참조한다. 양단에 3.3V가 가해진 가변 저항을 돌리게 되면 1.5V를 발생시킬 수 있는데 이 전압 값을 아두이노 우노의 A1 핀에서 읽어 들인다.


코딩 구조를 살펴 보기로 하자.

 int vr = analogRead(A1); 가변 저항 읽어 들이기
 float vr_volt = 3.3*vr/1024.0;//IB 단자 지점의 전압 값 환산
 Serial.print(vr_volt);//PC 시리얼 모니터 창에 측정 결과 출력



일반 AA 또는 AAA 건전지의 전압 값인 1.4∼1.6V 범위이면 통전 시험을 시행하는 것으로 한다. 반면에 이 범위를 벗어난다면 전압 상태를 다시 확인 하도록 한다.


 if(vr_volt > 1.4 && vr_volt < 1.6 ) { // 파워TR 통전 시험 if 문 시작
   Serial.println(": 1.5V condition @ IB  is confirmed");//시리얼 모니터 창에 출력
⚫⚫⚫
else {
    Serial.print(“Please check the voltage 1.5V condition @ IB”);
  }// 파워TR 통전 시험 if문 끝


코드를 컴파일 업 로딩 하여 실행하게 되면 처음에 가변 저항이 제대로 위치를 잡지 못한 상태이므로 예제에서는 0.0V가 출력되고 있었다.

가변 저항을 천천히 돌리면 점차 상승하는 전압 값을 읽을 수 있다.

그런데 0.4V를 지나면서 LED가 점차 on 되기 시작하면서 0.59V에서는 이미 통전 음이 들리고 LED가 거의 on 되었다. 한 가지 통전 시험 대상인 NPN 파워TR의 문턱 전압(Threshold Voltage)이 0.4∼0.5V 임이 확인 되었다. 문턱 전압을 넘어서면 TR 이 통전이 시작된다는 의미이다. 하지만 자동차 정비에서는 1.5V 입력에 통전 여부만 확인하면 된다.

본 예제에서는 1.5V 부근을 지나쳐서 1.85V까지 전압 값이 올라갔기 때문에 다시 거꾸로 돌려 1.41V로 조정하였더니 프로그램 if 문의 1.4∼1.6V 조건을 만족 시키고 통전 시험이 실행되어 통전 가능함이 확인되었다.


Coding_power_TR_continuity_test_01


void setup() {
Serial.begin(9600);// PC와 USB-2-Serial 에 의한 아두이노와의 통신속도 설정
}

void loop() {

  int v = analogRead(A1); //가변 저항 읽기
  float v_volt = 3.3*v/1024.0; //IB 단자 전압 값 환산
  Serial.print(v_volt);
 
  if(v_volt > 1.4 && v_volt < 1.6 ) { // 파워TR 통전 시험 if 문 시작
   Serial.println(": 1.5V condition @ IB  is confirmed");//시리얼 모니터 창에 출력
   
     int d = analogRead(A0);
     float c_volt = 3.3*d/1024.0;//C 지점의 전압 값 읽기
     Serial.print(c_volt);//PC 시리얼 모니터 창에 측정 결과 출력
 
     if(c_volt < 0.1 ) {
      Serial.println(": Continuity is confirmed");//시리얼 모니터 창에 출력
      }
      else {
      Serial.println(": Disconnedted!");//시리얼 모니터 창에 출력
      }// C 지점 전압 확인 if 문
  }
  else {
    Serial.println("Please check the voltage 1.5V condition @ IB");
  }// 파워TR 통전 시험 if문 끝     

   delay(3000);

 }//프로그램 끝


다음에 기술된 내용은 가솔린 엔진에서 TR 방식의 점화 회로가 작동 되는 원리를 참고로 기술하고 있다.


가솔린 자동차 엔진은 혼합기 압축 시에 점화 회로에 의해 순간적으로 스파크를 튀겨 혼합기를 연소시키게 된다. 이러한 전기적인 스파크의 발생은 점화 TR 회로의 급작스러운 전기적 차단에 따른 코일의 자기 유도( Self Induction) 작용에 기반을 두고 있다.  파워TR은 ECU의 on 신호에 의해 베이스 전류가 흐르게 되어 파워TR이 스위치 on 상태가 되며 12.6V인 배터리로부터 그림에서처럼 푸른색으로 그려진 전류가 저항 코일 OC 단자 및 G 단자를 통해 GND (자동차에서는 차체 접지)로 흐르게 된다.
한편 ECU에서 on 신호가 갑자기 OFF 상태가 되면 파워TR과 GND 사이의 전압 차이가 없어져 베이스 전류가 없어지게 되어 파워TR이 OFF 상태가 된다. 이때 전압이 걸려 있는 상태에서 전류를 흘려주던 점화 1차 코일에서 전류의 갑작스러운 감소에 따라 자기 유도 현상에서 강한 역기전력이 발생한다. 현대 엔진의 경우 1차 점화 전압은 200∼300V 정도이며 점화 코일의 상호 유도 현상에 의해 점화 2차 전압은 아반테 엔진이 15kV이며 쏘나타 엔진이 25kV 수준이다.