소개
MCP3xxx 아날로그 디지털 컨버터 (ADC) 입니다. SPI 인터페이스를 사용합니다.
호환모듈
타입 | ADC 출력 해상도 (비트) | 채널 |
---|---|---|
MCP3002 | 10 | 2 |
MCP3004 | 10 | 4 |
MCP3008 | 10 | 8 |
MCP3202 | 12 | 2 |
MCP3204 | 12 | 4 |
MCP3208 | 12 | 8 |
사양 (MCP3004)
- 입력 개수: 2, 4
- 분해능(비트): 10bit
- 입력 유형: 의사-차동, 단일 엔드
- A/D 컨버터 개수: 1
- 샘플링속도(초당): 200k
- 인터페이스: SPI
- 전압 – 공급, 아날로그: 2.7V ~ 5.5V
- 전압 – 공급, 디지털: 2.7V ~ 5.5V
- 동작온도: -40°C ~ 85°C
명령
INIT
모듈을 초기화합니다.
항목 | 타입 | 설명 |
---|---|---|
모듈선택 | WRITE | 모듈을 선택합니다. (MCP3002,MCP3004,MCP3008,MCP3202,MCP3204,MCP3208) |
READ_SINGLE
Single ended 채널의 값을 읽어옵니다.
항목 | 타입 | 설명 |
---|---|---|
채널 | WRITE | 읽어올 채널번호를 입력합니다. (0~1, MCP3x02 모듈 선택시 표시) |
채널 | WRITE | 읽어올 채널번호를 입력합니다. (0~3, MCP3x04 모듈 선택시 표시) |
채널 | WRITE | 읽어올 채널번호를 입력합니다. (0~7, MCP3x08 모듈 선택시 표시) |
값 | READ | 채널에서 읽어온 ADC값 입니다. |
READ_DIFF
Differential 채널의 값을 읽어옵니다.
항목 | 타입 | 설명 |
---|---|---|
채널 ¹ | WRITE | 읽어올 채널번호를 입력합니다. (0~1, MCP3x02 모듈 선택시 표시) |
채널 ¹ | WRITE | 읽어올 채널번호를 입력합니다. (0~3, MCP3x04 모듈 선택시 표시) |
채널 ¹ | WRITE | 읽어올 채널번호를 입력합니다. (0~7, MCP3x08 모듈 선택시 표시) |
값 | READ | 채널에서 읽어온 ADC값 입니다. |
¹ Differential 채널번호는 아래와 같습니다.
Channel | Diff IN+ | Diff IN- | MCP |
---|---|---|---|
0 | 0 | 1 | 3×02/3×04/3×08 |
1 | 1 | 0 | 3×02/3×04/3×08 |
2 | 2 | 3 | 3×04/3×08 |
3 | 3 | 2 | 3×04/3×08 |
4 | 4 | 5 | 3×08 |
5 | 5 | 4 | 3×08 |
6 | 6 | 7 | 3×08 |
7 | 7 | 6 | 3×08 |
MAX_VALUE
모듈의 출력가능한 최대값을 반환합니다.
항목 | 타입 | 설명 |
---|---|---|
최대값 | READ | 모듈의 출력가능한 최대값을 반환합니다. |
CHANNELS
모듈의 채널갯수를 반환합니다.
항목 | 타입 | 설명 |
---|---|---|
채널갯수 | READ | 모듈의 채널갯수를 반환합니다. |
예제
부품
부품 | 갯수 |
---|---|
MCP3004 | 1 |
포텐셔미터 (가변저항) | 1 |
연결
MCP3004 | 포텐셔미터 (가변저항) | GPIO |
---|---|---|
VCC ¹ | Pin 1 (왼쪽) | 3.3V |
Vref ¹ | | 3.3V |
GND | Pin 3 (오른쪽) | GND |
CLK ² | | 11 (SPI0 SCLK) |
Dout ² | | 9 (SPI0 MISO) |
Din ² | | 10 (SPI0 MOSI) |
CS ² | | 8 (SPI0 CE0) |
CH0 | Pin 2 (가운데) | |
¹ 반드시 3.3V에 연결해야합니다. 5V에 연결할 경우 라즈베리파이가 손상될 수 있습니다. Vref는 VCC보다 작거나 같아야 합니다.
² 하드웨어 SPI 핀 (GPIO 8, 9, 10, 11)에 연결합니다. 소프트웨어 (bit-bang) 인터페이스 사용시 임의의 핀을 사용할 수도 있습니다.
프로젝트
입력 전압
MCP3xxx 모듈의 VCC는 3.3V에 연결하고 Vref는 이보다 클 수 없으므로 마찬가지로 3.3V에 연결해야합니다. Vref는 아날로그 입력의 기준 전압이므로 MCP3xxx의 채널은 0~3.3V의 전압만 입력받을 수 있습니다. 3.3V 이상의 전압을 사용하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.
- 0~5V의 입력을 0~3.3V로 변환후에 연결
- ADS1x15 ADC 모듈 사용