Variable = Adin(Channel)
Variable : 결과가 저장될 정수형 변수 |
Channel : AD입력 채널 (I/O 포트번호가 아님) |
입력중인 아날로그 값을 읽어서 지정한 변수에 저장합니다.
Const Device = CB280 '이 예제프로그램은 CB280에서 실행가능합니다. Dim A As Integer Input 24 'CB280의 경우 24번포트가 AD채널0번입니다. Wait 500 Do A = Adin(0) '0번 채널에서 A/D변환을 해서 변수 A에 저장합니다. Debug Dec A,Cr '결과를 Debug창에 표시합니다. Wait 500 Loop
코어모듈의 모델별로 AD입력채널 포트가 다릅니다. 이 표에서 나열한 A/D는 모두 10비트 AD입니다. 결과값은 0부터 1023사이의 값이 됩니다.
채널 | CB210 | CB220 CB320 | CB280 CB380 | CB290 | CT1721C | CB405 CB400 | CB405RT |
---|---|---|---|---|---|---|---|
0 | I/O 16 | I/O 0 | I/O 24 | I/O 8 | I/O 0 | I/O 16 | I/O 16 |
1 | I/O 17 | I/O 1 | I/O 25 | I/O 9 | I/O 1 | I/O 17 | I/O 17 |
2 | I/O 18 | I/O 2 | I/O 26 | I/O 10 | I/O 2 | I/O 18 | I/O 18 |
3 | I/O 19 | I/O 3 | I/O 27 | I/O 11 | I/O 3 | I/O 19 | I/O 19 |
4 | I/O 20 | I/O 4 | I/O 28 | I/O 12 | I/O 4 | I/O 20 | I/O 20 |
5 | I/O 21 | I/O 5 | I/O 29 | I/O 13 | I/O 5 | I/O 21 | I/O 21 |
6 | I/O 6 | I/O 30 | I/O 14 | I/O 6 | I/O 22 | I/O 22 | |
7 | I/O 7 | I/O 31 | I/O 15 | I/O 7 | I/O 23 | I/O 23 | |
8 | I/O 32 | ||||||
9 | I/O 33 | ||||||
10 | I/O 34 | ||||||
11 | I/O 35 | ||||||
12 | I/O 36 | ||||||
13 | I/O 37 | ||||||
14 | I/O 38 | ||||||
15 | I/O 39 |
CB405RT는 추가적으로 16비트 AD 8채널이 내장되어 있습니다.
핀번호 (I/O포트번호가 아님) | 채널 |
---|---|
45 | 0 |
46 | 1 |
47 | 2 |
48 | 3 |
49 | 4 |
50 | 5 |
51 | 6 |
52 | 7 |
다음은 CB405RT에서 16비트 AD입력을 받아 Debug터미널에 표시하는 예제프로그램입니다.
CB405RT에서는 Adin대신 Hadin함수를 사용합니다.
#include "CB405RT" Dim A As Integer Wait 500 Do A = HAdin(0) '0번 채널에서 A/D변환을 해서 변수 A에 저장합니다. Debug Dec A,Cr '결과를 Debug창에 표시합니다. Wait 500 Loop
코어모듈의 AD변환기는 추가적인 LPF 및 프로텍션 회로가 필요합니다. 코어모듈에 직접 센서를 연결할 경우 예상치않은 결과값이 입력되거나, 정전기 유입등으로 인해 코어모듈이 파손될 수 있습니다. AD입력 보호회로와 LPF(노이즈 제거회로)를 추가하신뒤 사용하시기 바랍니다.
일부 MSB시리즈 (예: MSB612RA-DC)에서는 A/D입력 기능을 갖추고 있으며, 내부에 LPF와 보호회로가 들어있습니다. 따라서, 곧바로 센서등과 연결할 수 있습니다. MSB612RA-DC모델의 경우 0~3채널은 0~20mA입력, 4~7채널은 0~10VDC입력입니다. 다음은 MSB6124A-DC모델에서의 AD사용 예제 프로그램입니다.
#Include “MSB6XX” Dim A As Integer Wait 500 Do A=Adin(0) ' 0~20mA입력을 받아서 A에 결과값을 저장합니다. Debug Goxy,5,3 Debug dec5 A Delay 200 Loop