DYNAMENT AN0007 Arduino to Platinum COMM 사용자 가이드

AN0007 아두이노-플래티넘 통신

제품 정보

명세서

  • 제품명: ARDUINO to PLATINUM COMMS 도움말 문서
  • 제조사: Dynament Limited
  • 주소: Hermitage Lane 산업단지, Kings Mill Way,
    영국 노팅엄셔주 맨스필드, NG18 5ER
  • 연락처: 전화: 44 (0)1623 663636, 이메일: sales@dynament.com
    Web사이트: www.dynament.com
  • 문제: 1.2, 날짜: 09년 04월 2025일

제품 사용 지침

센서 연결

이 데이터 시트는 Arduino Mega를 ex로 사용합니다.ample. 다음과 같이 연결
다음과 같습니다:

  • 5v -> 5v 아두이노 핀
  • 0v -> 아두이노 GND
  • Tx -> 아두이노 RX1
  • Rx -> 전위 분배기의 출력으로 이동합니다. 입력
    아두이노 Tx로 간다

권tag전자 호환성

Arduino는 5V 논리 하이를 사용하는 반면 Platinum 센서는 다음을 사용합니다.
3.3v. 볼륨을 사용하세요tagR1 및 R2에 대한 제안된 값을 포함하는 e 구분자
센서 손상을 방지하기 위해 4K7을 사용합니다.

Arduino IDE 설정

  1. Arduino IDE 소프트웨어의 최신 버전을 다운로드하세요.
    아두이노 web대지.
  2. 도구에서 Arduino 보드, 프로세서 및 포트를 선택하세요
    드롭다운 메뉴.

코드 업로드

  1. 제공된 ex를 복사하세요ampArduino IDE에 코드를 넣습니다.
  2. 화살표를 클릭하여 Arduino에 코드를 업로드합니다.
  3. 직렬 모니터를 엽니다. view 데이터 전송.

자주 묻는 질문

질문: Arduino Uno에 통신 포트가 하나뿐인 경우 어떻게 해야 합니까?
포트?

A: 플래티넘 센서를 해당 포트에 연결하세요.
직렬 모니터에서는 전송된 16진수도 표시됩니다.

“`

애플리케이션 노트 AN0007
ARDUINO에서 PLATINUM COMMS로의 도움말 문서

다이너먼트 리미티드
헤르미tage Lane 산업단지 킹스 밀 웨이 맨스필드 노팅엄셔 NG18 5ER 영국. 전화: 44 (0)1623 663636
이메일: sales@dynament.com www.dynament.com

AN0007

1.2호

09/04/2025

변경 노트 805

1/14페이지

내용물
Dynament Limited …………………………………………………………………………………………………………….1 센서 연결하기…………………………………………………………………………………………………………..3 Arduino IDE …………………………………………………………………………………………………………………………………………………5 코드 설명……………………………………………………………………………………………………………………………………..9 패킷 분석 ………………………………………………………………………………………………………………………………………………….11 Serial.read() 사용 ……………………………………………………………………………………………………………………………………….13
고급 변환 참고 사항………………………………………………………………………………………….14

AN0007

1.2호

09/04/2025

변경 노트 805

2/14페이지

센서 연결 이 데이터 시트는 Arduino Mega를 ex로 사용합니다.amp아두이노 메가는 두 개 이상의 통신 포트를 제공하므로, 통신 포트 1은 센서와 통신하는 데 사용되고, 통신 포트 0은 PC로 인쇄하는 데 사용됩니다.
Arduino는 5V 논리 하이를 사용하는 반면 Platinum 센서는 3.3V를 사용하므로 센서 손상을 방지하기 위해 볼륨이 필요합니다.tage 구분자를 사용해야 합니다. R1과 R2의 권장 값은 4K7입니다.

그림 1: 볼륨을 낮춥니다.tag사용 가능한 수준으로
Arduino 수신부로 연결되는 센서 전송선에는 분배기가 필요하지 않습니다. 3.3V가 Arduino에 허용되는 입력이기 때문입니다.
센서에 전원을 공급하려면 5V와 0V에 연결해야 합니다. 이를 위해 아두이노의 핀을 사용할 수 있습니다.
이 작업이 완료되면 이제 센서에 다음 핀이 연결되어야 합니다.
5v -> 5v 아두이노 핀
0v -> 아두이노 GND
Tx -> 아두이노 RX1
Rx -> 전위 분배기 출력으로 연결됩니다. 입력은 Arduino Tx로 연결됩니다.

AN0007

1.2호

09/04/2025

변경 노트 805

3/14페이지

이 작업이 완료되면 Platinum 센서가 다음과 같이 연결됩니다.
그림 2: 솔더 어댑터를 사용하여 거꾸로 표시된 센서
하나의 통신 포트만 있는 Arduino(Arduino Uno처럼)를 사용하는 경우 해당 통신 포트에 연결해야 합니다. 하지만 나중에 설명할 직렬 모니터를 사용하면 전송된 16진수도 표시됩니다.

AN0007

1.2호

09/04/2025

변경 노트 805

4/14페이지

Arduino IDE로 이동 Arduino로 이동 web사이트에 접속하여 최신 버전의 Arduino IDE 소프트웨어를 다운로드하세요. 설치가 완료되면 다음 화면이 나타납니다.
그림 3: Arduino 홈 화면
도구 드롭다운 메뉴에서 사용 중인 Arduino 보드, 프로세서 및 포트를 선택하세요.

그림 4: 보드, 프로세서 및 포트 옵션 선택

AN0007

1.2호

09/04/2025

변경 노트 805

5/14페이지

이 예에 복사amp코드: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.begin(38400);
}
void loop() { send_read_live_data_simple(); receive_read_live_data_simple(); 지연(5000);
}
void send_read_live_data_simple(){ // 0x10, 0x13, 0x06, 0x10, 0x1F, 0x00, 0x58 Serial1.write(0x10); Serial1.write(0x13); Serial1.write(0x06); Serial1.write(0x10); Serial1.write(0x1F); Serial1.write(0x00); Serial1.write(0x58);
}
void receive_read_live_data_simple(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print("|"); } Serial.println();
}

AN0007

1.2호

09/04/2025

변경 노트 805

6/14페이지

그림 5: 업로드 준비가 된 코드
화살표를 클릭하여 코드를 Arduino에 업로드하세요. Arduino 프로그래밍이 완료되면 시리얼 모니터를 여세요.

AN0007

그림 6: 직렬 모니터 열기

1.2호

09/04/2025

변경 노트 805

7/14페이지

그림 7: Serial Montor는 수신된 패킷을 보여줍니다.

AN0007

1.2호

09/04/2025

변경 노트 805

8/14페이지

코드 설명 Arduino IDE는 C++를 사용하여 Arduino를 프로그래밍합니다.
이 줄은 전방 선언입니다. 이는 마이크로컨트롤러에 프로그램의 더 아래쪽에서 `send_read_live_data_simple' 함수와 `receive_read_live_data_simple' 함수가 호출될 것임을 알리는 데 사용됩니다.
다음은 설정 함수입니다. 이 코드는 시작 시 한 번만 실행됩니다. Serial0과 Serial1 포트를 시작합니다. Serial0은 시리얼 모니터 화면에 표시되는 포트이고, Serial1은 센서와 통신하는 포트입니다.
이것이 메인 루프입니다. 이 코드는 반복적으로 루프를 돌고 있습니다. 함수 이름을 보면 라이브 데이터 구조체의 단순화된 버전을 읽기 위한 요청을 보낸다는 것을 알 수 있습니다. 그런 다음 수신 포트를 읽어 응답을 읽습니다. 그 후 마이크로컨트롤러는 5000ms 동안 대기합니다.
이 함수는 실시간 데이터 단순 구조체를 직렬 포트 1로 가져오는 요청을 작성합니다. 앞서 언급했듯이 직렬 포트가 하나뿐인 경우 Serial1을 Serial로 변경해야 합니다. 전체 명령 목록을 보려면 Premier 센서 통신 프로토콜 문서를 참조하십시오. 이 명령에 대해 작성해야 할 내용은 다음과 같습니다.

AN0007

1.2호

09/04/2025

변경 노트 805

9/14페이지

이 함수는 플래티넘 센서에서 수신할 데이터가 아직 남아 있는 동안 read 함수를 반복합니다. Serial1.read()는 센서에 연결된 Serial1에서 데이터를 읽어 Serial0에 출력하여 직렬 모니터에 표시합니다. 그런 다음 수신된 각 바이트를 구분하기 위해 `|' 문자를 출력하여 직렬 모니터에서 더 명확하게 보여줍니다.
이 작업이 완료되면 직렬 모니터에 새 줄이 기록됩니다.

AN0007

1.2호

09/04/2025

변경 노트 805

10/14페이지

패킷 분석 그림 8과 9는 수신 및 송신 라인에 연결된 직렬 디코더의 출력을 보여줍니다.
그림 8: 발신 패킷
그림 9: 수신 패킷
그림 10과 11은 각각 발신 및 수신 XNUMX진수와 해당 명령이 무엇인지를 나타내는 열을 보여줍니다.

그림 10: 발신 패킷 설명

AN0007

1.2호

09/04/2025

변경 노트 805

11/14페이지

그림 11: 수신 패킷 설명
가스 측정값은 정수가 아닌 소수점입니다. 이 소수점은 IEEE-754 형식이며, 이와 같은 온라인 변환기를 사용하여 변환할 수 있습니다. 이 경우 가스 값은 -250으로 표시됩니다(당시 오류 모드였기 때문입니다).

AN0007

1.2호

09/04/2025

변경 노트 805

12/14페이지

Serial.read() 사용하기
이전 코드는 수신된 데이터만 직렬 모니터에 출력했습니다. 데이터를 변수에 저장하려면 추가 처리가 필요합니다. 수신된 패킷은 바이트 단위로 분할되므로, 이 데이터 중 일부를 변수에 연결해야 합니다. Serial1.Read()는 int(아두이노의 경우 16비트)를 반환하지만, 처음 8비트만 사용됩니다. 따라서 8비트 크기의 더 작은 데이터 유형으로 복사할 수 있으며, 여기서는 char를 사용하겠습니다.
1바이트 길이의 패킷의 경우 이 방법은 잘 작동합니다.
2바이트 또는 4바이트 길이의 패킷의 경우 데이터를 연결해야 합니다.

이 작업은 다양한 방법으로 수행할 수 있습니다. 여기서는 데이터를 왼쪽으로 이동한 다음 OR 연산을 수행합니다.

이 코드를 사용하면 readByte1이 0x34이고 readByte2가 0x12입니다.

(정수)readByte2

// 이렇게 하면 0x12가 0x0012로 변환됩니다.

(정수)readByte2 << 8

// 이렇게 하면 비트가 한 바이트씩 이동하여 0x1200이 됩니다.

(int)readByte2 << 8 | readByte1 // 이것은 OR 연산을 거쳐 0x34는 0x1234가 됩니다.

이를 수행하는 또 다른 방법은 값을 배열에 넣은 다음 배열을 원하는 유형으로 변환하는 것입니다.

AN0007

1.2호

09/04/2025

변경 노트 805

13/14페이지

char는 4바이트 길이인 반면, float는 4바이트 길이입니다. 따라서 값을 담은 XNUMX개의 char 배열을 만들고 타입을 float로 변경하면 됩니다.
이 경우 readArray는 char 배열에 대한 포인터입니다. (float*)readArray 이 부분은 그것을 float에 대한 포인터로 캐스팅한 다음, 앞에 *를 추가하여 float의 값을 가져옵니다.
고급 변환 노트
1. Serial.read()는 char 대신 int를 반환합니다. 오류가 발생하면 음수 값이 반환되기 때문입니다. 프로그램에서 이 점을 확인해야 합니다.
2. char와 int 대신 uint8_t와 uint16_t를 각각 사용해야 합니다. 이 두 유형은 표준 크기가 없습니다(제 PC에서는 int가 32비트인 반면 Arduino에서는 16비트입니다).
3. 통신 프로토콜에는 바이트 스터핑 문자(제어 문자라고도 함)가 포함되어 있습니다. 이에 대한 자세한 내용은 tds0045 프리미어 센서 통신 프로토콜 문서에 설명되어 있습니다. 이 때문에 읽기 라이브 데이터 단순 패킷이 예상보다 큰 경우가 있습니다.

AN0007

1.2호

09/04/2025

변경 노트 805

14/14페이지

문서 / 리소스

DYNAMENT AN0007 아두이노-플래티넘 통신 [PDF 파일] 사용자 가이드
AN0007 아두이노-플래티넘 통신, AN0007, 아두이노-플래티넘 통신, 플래티넘 통신, 플래티넘 통신

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *