This is an old revision of the document!
Table of Contents
CFMEGA2
Arduino Mega 호환 CPU모듈입니다. GPIO, 통신, ADC, NTC(온도)등 사용할 수 있도록 설계 되었습니다.
- I/O모듈은 오른쪽으로 결착해주세요.
- CPU모듈 하나에 최대 16개의 I/O모듈을 연결할 수 있습니다.
- CFMEGA2 왼쪽에는 CF-SHIELD 모듈 하나만 연결할 수 있습니다. (SHIELD ETHERNET)
시스템 사항
- MCU : Mega2560
- 프로그램 메모리 : 256KB
- SRAM 메모리 : 8KB
- EEPROM : 4KB
디바이스 사항
- 전원 전압 : DC 12~24V
- 전원 용량 선택: 연결된 I/O모듈에서 소비되는 전류량까지 모두 감당할 수 있는 전원용량으로 연결하세요. 연결한 모듈의 총갯수가 8개 이하면 24V, 1A의 SMPS가 적당하고, 총갯수가 8개 이상이면 24V, 2A 의 SMPS를 사용하세요.
- 통신 : RS232C x 2, RS485 x 1, I2C x 1
- GPIO : 8개 (PWM - 7개) 5V 입출력
- INT : 2개 (외부 인터럽 입력, 5V)
- ADC : 8개 (0~20mA - 4채널, 0~10VDC - 4채널)
- 사용자 프로그램 LED : 13=LED, 22=RUN, 23=ERROR
- 온도 : 1개 (NTC, 측정범위 -40~99℃, 오차 +/- 1도)
각 부의 설명
- QWIIC 란 ? 미국 Sparkfun사에서 판매중인 아두이노 I2C 주변장치 제품군입니다. 참고 링크
- QWIIC 사용시 주의사항 : I2C는 5V레벨의 소신호 통신방식이므로, 신호선이 제어반 바깥에 있는 장치와 연결할 수 없습니다. 최대 20cm안에서 사용하세요.
GPIO에 대하여
GPIO포트는 5V 입출력 또는 PWM출력용으로 쓸 수 있는 포트입니다. 실제로 일반 아두이노에 있는 I/O단자와 동일합니다. 단, 내부적으로 써지 차단용 TVS다이오드가 부착되어 있습니다. 참고 자료
전원 입력
DC jack과 터미널 블록중 한곳에 DC12~24V 사이의 전압을 넣어주세요. 연결한 총 I/O모듈 갯수에 따라 전원의 용량을 결정하세요. 5개 미만이라면 24V 1A 가 적당합니다. 그 이상이라면 더 큰 용량을 선택하세요.
RS485 (채널3)에 대하여
채널3에 할당되어 있는 RS485포트는 송수신 방향 자동 전환을 해주는 MAX13487칩을 채용한 포트입니다. 따라서 유저가 직접 송신/수신 처리를 해줄 필요가 없습니다. 참고 자료
팬홀 단자대 추천
- 팬홀이란? 삽입형 터미널 블록에 전선을 쉽게 결착할 수 있도록 도와주는 부품입니다.
- 본 제품 검은색 터미널블록에 사용하기 적당한 펜홀단자 품명과 구매처입니다. (품명:CE007512) 구매처 링크
예제 프로그램
- STATUS LED 점멸 : STATUS LED를 깜빡이게 하는 프로그램입니다.
const int StatusLED = 13; void setup() { pinMode(StatusLED, OUTPUT); } void loop() { digitalWrite(StatusLED, HIGH); delay(1000); digitalWrite(StatusLED, LOW); delay(1000); }
- ADC 아날로그 입력 : 전류 / 전압을 입력 받는 프로그램 입니다.
void setup() { Serial.begin(9600); } void loop() { int ADI_mA = analogRead(A0); int ADI_DCV = analogRead(A5); Serial.print(" ADC_mA = "); Serial.print(ADI_mA) ; Serial.print("\r\n" ); Serial.print(" ADC_DCV = "); Serial.print(ADI_DCV); Serial.print("\r\n" ); delay(200); }
- NTC 온도 : NTC온도 측정 프로그램입니다. (측정 범위 -40 ~ 99℃ / 오차 +/-1도)
- “CFMEGA.h” 라이브러리 등록후 사용
- ntcRead_a4() 명령으로 온도값 읽기
- NTC센서 별매 구매페이지 링크
int16_t ntcRead_a4(void);
#include "CFMEGA.h" void setup() { Serial.begin(9600); } void loop() { int NTC_a4 = ntcRead_a4(); Serial.print(" TEMP = "); Serial.print(NTC_a4) ; Serial.print("\r\n" ); delay(1000); }
- RS232 통신 : 채널 1번(Tx1, Rx1)의 Eco 통신 프로그램 입니다.
void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { if (Serial1.available() > 0) { char rx_Byte = Serial1.read(); Serial.print("I received: "); Serial.print(rx_Byte); Serial1.print(rx_Byte); } }
기술 지원 정책
고객님께서 개발 중이신 소스 코드는 기술 지원 대상에 포함되지 않습니다. 이는 저희가 해당 프로젝트에 직접 참여하지 않아 상세한 내용을 파악하기 어렵기 때문입니다. 이 점 양해 부탁드립니다.
제품이 이상이 있다고 판단되시는 경우, 제품 자체를 저희 회사로 보내주시기 바랍니다. 저희가 만든 소스와 지그로 테스트 한뒤 이상 유무를 판단해서 이상이 발견된 경우 조치해드리고 있습니다.
