산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노와 CI-V로 아이컴 무전기용 외부 S-미터 만들기

부품 및 소모품

아두이노 우노 1개
단회전 포텐셔미터 10k옴 1개
저항 10k옴 1개
저항 4.75k옴 1개
다이오드 1N4148 1개
커패시터 10µF 1개
페라이트 코어 라운드 케이블 2개
3.5mm (1/8) 커넥터 1개
아이컴 튜너 커넥터 (컴퓨터 파워 서플라이 커넥터로 대체 가능) 1개

프로젝트 소개

이 회로는 아두이노 우노/나노를 사용해 아이컴 무전기에 CI-V 명령으로 신호 정보를 요청하고, 응답을 읽어 변환한 뒤 아날로그 출력으로 내보내 아날로그(아르송발) S-미터에 표시합니다.

전원은 아이컴 무전기의 안테나 튜너 포트에서 공급받습니다(최소 200mA, +12V). 튜너 포트가 없으면 +12V 출력하는 다른 포트/커넥터나 외부 DC 전원을 써도 됩니다.

안테나 튜너 커넥터가 없으면 PC 파워 서플라이 커넥터를 잘라서 아이컴 튜너 커넥터에 맞게 가공해 쓰세요.

이 프로젝트는 아이컴 IC-7000 트랜시버용으로 설계되었으나 CI-V 포트가 있는 모든 아이컴 무전기에 적용 가능합니다.

일부 아이컴 무전기에서는 CI-V '00' 범용 주소를 사용할 수 있어 코드 수정 없이 모든 아이컴 기기와 호환됩니다.

입출력 케이블에 페라이트 코어를 달아 RF 유도를 차단했습니다. S-미터로 가는 +12V DC는 필수 아님(미터 백라이트 등 선택 기능용).

10k옴 포텐셔미터는 신호 출력을 감쇠(대부분 아날로그 미터엔 너무 높음)하고, 강력한 로컬 신호(+60dB)에서 풀 스케일 읽기가 나오게 아날로그 미터를 캘리브레이션하는 데 씁니다.

아두이노를 CI-V 인터페이스로 활용한 유사 프로젝트:

코드

// IC7300 S-미터 읽기 및 기타 기능 테스트베드
// Luc Decroos (ON7DQ/KF0CR) 작성
// Daniel VE2BAP 수정 및 적용, 2018-12-01
#include <SoftwareSerial.h> // IC7000 통신용
#define BAUD_RATE 19200 // CI-V 속도
#define TRX_address (0x70) // HEX $70 = Icom IC-7000
//#define TRX_address ((byte)00) // $00: 아이컴 범용 주소 (모든 라디오 작동)

// 시리얼 연결
// RX = 아이컴 라디오 → 아두이노: 2번 핀, 4k7 저항 경유
// TX = 아두이노 → 아이컴 라디오: 7번 핀, 다이오드 1N4148 경유, 3.5mm 커넥터 팁에 10k 풀업 to Vcc(5V)
SoftwareSerial mySerial = SoftwareSerial(2, 7); // (RX, TX)
int readCounter; // 라디오에서 수신한 바이트 수 카운트
int sMeterVal1; // 신호 정보 담은 상위 BCD 바이트
int sMeterVal2; // 신호 정보 담은 하위 BCD 바이트
int sMeterOut = 11; // 외부 아날로그 S-미터 연결 핀

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW); // LED(13번) 강제 끄기
  pinMode(2, INPUT); // IC7000에서 CI-V 시리얼 통신
  pinMode(7, OUTPUT); // IC7000로 CI-V 시리얼 통신
  pinMode(sMeterOut, OUTPUT); // S-미터 출력 핀 설정
  mySerial.begin(BAUD_RATE);
  mySerial.listen(); // 소프트웨어 시리얼은 한 포트만 listen 가능
  while (mySerial.available()) mySerial.read(); // 버퍼 비우기
}

void loop() {
  // S-미터 값 읽고 표시
  mySerial.flush();
  // 시작 시퀀스: 라디오에 "S-미터 읽기" 명령 전송
  mySerial.write(0xFE);
  mySerial.write(0xFE);
  mySerial.write(TRX_address);
  mySerial.write(0xE0);
  mySerial.write(0x15);
  mySerial.write(0x02); // S-미터 읽기 명령 15 02
  mySerial.write(0xFD); // 종료 시퀀스
  delay(20);
  // 라디오에서 정보 읽기
  int nbChar = mySerial.available();
  if (nbChar > 0) {
    for (int readCounter = 0; readCounter < nbChar ; readCounter++) {
      byte byteRead = mySerial.read();
      if (readCounter == 6){
        sMeterVal1 = ( (byteRead/16*10) + (byteRead%16) ); // 첫 바이트: BCD → 10진수 변환
      }
      if (readCounter == 7){
        sMeterVal2 = ( (byteRead/16*10) + (byteRead%16) ); // 둘째 바이트: BCD → 10진수 변환
        analogWrite(sMeterOut, ((sMeterVal1 * 100) + sMeterVal2)); // S-미터 값 계산 후 출력 핀에 기록
        delay(20);
      }
    }
  }
}

커스텀 파트 및 인클로저

프로젝트 사진들 참조 (회로 기판, 케이스 등)

회로도

회로도 이미지 참조

제조공정

  1. 체외 제세동기: 역사, 설계, 제조
  2. 라디오 기술의 진화와 공학
  3. 부드러운 티슈: 로션이 편안함과 성능을 높이는 원리
  4. 자일링스, 5G 무선용 고성능·전력효율 하드 IP 솔루션 Zynq RFSoC DFE 출시
  5. Renesas·eProsima, RA MCU용 micro-ROS 포트 출시로 ROS 2 기반 로보틱스 구현
  6. Acceed IGS-9822DGP: 4개 SFP 포트 갖춘 12포트 기가비트 스위치 - 고성능 산업용 네트워크 솔루션
  7. 라즈베리 파이로 서버실 정확한 온도 모니터링하기
  8. E3.Series: 하이퍼링크된 외부 PDF로 프로젝트 문서화 간소화하기
  9. 스마트 블라인드: 아두이노와 태양광으로 자동 조명 제어
  10. 아두이노로 간단한 장애물 센서 만들기 - IR LED & 포토다이오드 튜토리얼