int getAdc (u8 adcId, u8 adcCh)
adcId : ADC 모듈의 ID (0 부터 9 사이의 값) |
adcCh : 읽어올 채널 (1 부터 4 사이의 값) |
getAdc 는 RS-ADIN4 를 위한 함수입니다. adcId 는 AD 입력모듈 전면부에 있는 ID 라고 적힌 로터리스위치를 뜻합니다. AD 입력모듈에는 4 개의 입력채널이 있으며 이중 측정하고자 하는 채널을 adcCh 에 써줍니다. ID 번호가 틀린경우, 혹은 모듈과 통신중 에러가 발생한 경우에는 –1 을 리턴합니다.
2 번 DIP 스위치 | 출력값 | 예외의 값 |
---|---|---|
ON ( 0 ~ 10V ) | 0 부터 10,000 사이의 값 | 입력 open 시 310~ 320 사이값 (10 진수). 실제로도 310~320 사이 값이 나올수 있으므로,결과적으로 이 모드에선 입력오픈체크가 불가능. |
OFF (1 ~ 5V ) | 0 부터 10,000 사이의 값 | 0.8V 미만의 값일경우 11,111 (10 진수) 5.2V 이상의 값일 경우 55,555 (10 진수) 입력 open 시 11,111 (10 진수) |
RS-ADIN4 모델의 경우 채널당 샘플링시간은 30 밀리초입니다. 4 개 채널을 모두 샘플링하는데 걸리는 시간은 120 밀리초입니다. 따라서 120 밀리초보다 빠른 간격으로 getAdc 함수를 수행하는 것은 무의미한 일입니다. 같은 값만 계속 반환하게 됩니다.
RS-ADIN4 는 파워온후 120 밀리초 이후에 사용해야합니다.
#include "moacon500.h" void cmain(void) { int i; short j; clcdI2cInit(0); // 슬레이브 어드레스는 0 으로 합니다. clcdPower(1); // lcd 의 Power 를 On delay(100); // clcd 기동시간 대기 clcdCls(); clcdCsr(0); delay(900); // ADC 모듈 최초 샘플링시간 대기 comPower(1); // RS232 파워를 On 한뒤 여기서 5V 를 공급받습니다. while(1) { i = getAdc(2,1); clcdPrint(0,0,"ADC:%06d",i); delay(100); } }