본문 바로가기

The Answer!!811

NTC 온도센서(A1737) 온도 구하기 NTC A1737은 amphenol사의 ntc인데 이 제품은 온도에 따른 저항 값이 완전히 선형적이지 않습니다.위 표와 같이 -40~0까지 저항이 급속히 떨어지며 0도부터 210도까지도 선형적이지 않고 아래 그림과 같이 몇번의 전환점이 있습니다. 이 센서를 ADC로 읽어서 계산을 해보려고 합니다. adc 입력회로는 아래와 같습니다. ADC로 전압을 읽어보면 저항이 클 때에는 3.3V에 가깝게 나오고 저항이 낮으면 0V에 가까워 집니다. 위의 저항-온도 테이블 보시면 -40도~210도 까지 측정 가능하니 범위를 벗어난 것은 오류 처리를 하면 됩니다. 그리고 전압으로 읽어서 온도를 구할 예정이므로 전압을 입력으로 함수를 만들었습니다.#define VDDA_VOLTAGE 3.3f // .. 2025. 11. 12.
DTC(Diagnostic Trouble Code)-고장갯수 요청 UDS에서 DTC관련 코드는 크게 2가지 입니다.DTC Read, DTC Clear가 있습니다. DTC Read의 sub function은 하기와 같습니다. sub functionsub function 내용의미0x01reportNumberOfDTCByStatusMaskDTC의 총 개수를 요청0x02reportDTCByStatusMask모든 DTC의 목록과 상태를 요청0x03reportDTCSnapshotIdentificationDTC와 관련된 스냅샷 데이터의 식별 정보(레코드 번호 등)를 요청0x04reportDTCByOccurrenceTimeOfFirsConfirmedDTC처음 발생한 확정 DTC를 기준으로 DTC 정보를 요청0x05reportDTCByOccurrenceTimeOfMostRecentCo.. 2025. 11. 3.
UDS(Unified Diagnostic Services)(ISO 142291) UDS는 자동차 진단 프로토콜입니다.초기 자동차 회사들이 자사의 진단 프로토콜을 만들었었지만, 정비소에서 각기 다른 자동차회사들의 자동차를 진단하기 어려워 국제적으로 프로토콜을 만들게 됩니다. 기본적으로 UDS 프로토콜을 공통적으로 사용하고 있으며, 내용은 자동차 회사들마다 추가된 것들이 있습니다. 우선 기본적인 UDS 프로토콜은 CAN통신은 8byte를 기본으로 하므로 바이트 별로 구분하면 아래와 같습니다. LengthSIDsub FuntionDID     Length는 보내는 데이터의 크기(byte)이며,SID는 Service ID로 보내는 데이터가 어떤 데이터인지를 알려줍니다. 데이터는 Request와 Response로 구성되어 있으며, Response는 positive response(긍정 응답).. 2025. 3. 28.
_~&)_ _~&)_ 2023. 12. 20.
cvs파일 로그 저장하기 cvs로 로그를 저장하는 방법은 여러가지가 있으며, FileStream과 StreamWriter를 이용하여 만들어 보겠습니다. 1. 먼저 파일을 만들어 줍니다. 저의 경우 통신이 시작될 때 로그 기록을 위해 파일을 생성하였습니다. 파일생성은 FileStream으로 해줍니다. 1 2 3 4 FileStream fs1; leftFile = "./Log/left_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv"; fs1 = System.IO.File.Create(leftFile); fs1.Close(); Colored by Color Scripter cs Line 2 : 생성할 파일명을 만들어 줍니다.(저는 현재날짜와 시간이 들어가도록 하였으며, csv파일로 만들도.. 2023. 12. 19.
폴더 만들기 모니터링 프로그램을 만들다 보면, LOG를 저장할 필요성이 있습니다. 이런 때에는 폴더를 따로 만들어 저장하면, 정리하기 편합니다. private void init_folder() { string folder = "./Log"; DirectoryInfo di = new DirectoryInfo(folder); if (di.Exists) { return; } di.Create(); } folder를 새로 만들때 현재 프로그램이 실행되고 있는 sub folder로 만들기 위해서는 상대경로로 지정해 줍니다. "./Log" dot 하나는 현재의 경로를 뜻합니다. dot 2개는 상위폴더이고, '/'는 하위 폴더입니다. 따라서 위와 같이 "./Log"로 쓰게되면 하위폴더 명을 Log로 하겠다는 의미입니다. Dire.. 2023. 12. 14.

인기글