목차
16채널 ADC MUX 모듈

- Mux Configuration : 1
- Channels (#) : 1
- VCC (Min) : 2 V
- VCC (Max) : 6V
- Voltage (Nom) : 3.3 ~ 5V
핀 번호
| 핀명 | 기능 |
|---|---|
| C15 | Analog INPUT 15 |
| C14 | Analog INPUT 14 |
| C13 | Analog INPUT 13 |
| C12 | Analog INPUT 12 |
| C11 | Analog INPUT 11 |
| C10 | Analog INPUT 10 |
| C9 | Analog INPUT 9 |
| C8 | Analog INPUT 8 |
| C7 | Analog INPUT 7 |
| C6 | Analog INPUT 6 |
| C5 | Analog INPUT 5 |
| C4 | Analog INPUT 4 |
| C3 | Analog INPUT 3 |
| C2 | Analog INPUT 2 |
| C1 | Analog INPUT 1 |
| C0 | Analog INPUT 0 |
| SIG | Analog Signal |
| S3 | Select 3 |
| S2 | Select 2 |
| S1 | Select 1 |
| S0 | Select 0 |
| EN | Enable |
| VCC | POWER |
| GND | GROUND |
Arduino UNO R3 예제
핀 연결
UNO R3 와 16채널 ADC MUX 를 다음과 같이 연결합니다.
| 번호 | 16채널 ADC MUX | Arduino UNO R3 | COLOR |
|---|---|---|---|
| 1 | SIG | A0 | WHITE |
| 2 | S3 | A1 | ORANGE |
| 3 | S2 | A2 | YELLOW |
| 4 | S1 | A3 | GREEN |
| 5 | S0 | A4 | BLUE |
| 6 | EN | A5 | GRAY |
| 7 | VCC | 5V | RED |
| 8 | GND | GND | BLACK |

소스코드
최신 소스코드는 [파일]=>[예제]=> [WhiteAT UNO]=>[ADC16_MUX] 에 있으며
라이브러리는 아두이노 개발환경 (https://docs.whiteat.com/?page_id=5449)을 참조하세요
/*
UNO 와 16채널 ADC MUX 모듈로 16개의 ADC 를 읽는 예제입니다.
개별 부품
.UNO R3 : https://kit128.com/goods/view?no=337
.16채널 ADC 모듈 : https://kit128.com/goods/view?no=260
출처: http://whiteat.com/Arduino
*/
int pinSIG = A0; // 16채널 ADC 모듈 SIG 에 연결할 핀
int sensorValue = 0; // 읽어온 ADC 값
//ADC MUX 컨트롤 핀
int pinEN = A5;
int s0 = A4;
int s1 = A3;
int s2 = A2;
int s3 = A1;
int controlPin[4] = {A4, A3, A2, A1}; // s0, s1, s2, s3
int muxChannel[16][4]={
{0,0,0,0}, //channel 0
{1,0,0,0}, //channel 1
{0,1,0,0}, //channel 2
{1,1,0,0}, //channel 3
{0,0,1,0}, //channel 4
{1,0,1,0}, //channel 5
{0,1,1,0}, //channel 6
{1,1,1,0}, //channel 7
{0,0,0,1}, //channel 8
{1,0,0,1}, //channel 9
{0,1,0,1}, //channel 10
{1,1,0,1}, //channel 11
{0,0,1,1}, //channel 12
{1,0,1,1}, //channel 13
{0,1,1,1}, //channel 14
{1,1,1,1} //channel 15
};
void setup()
{
Serial.begin(115200);
Serial.println("Arduino Examples - ADC 16 channel MUX Test");
Serial.println(" https://docs.whiteat.com/?p=3770");
pinMode(pinEN, OUTPUT); digitalWrite(pinEN,LOW);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
}
void loop()
{
for(int i = 0; i < 16; i ++)
{
Serial.print("C"); Serial.print(i); Serial.print(":");
Serial.print(readADCMux(i));Serial.print(", ");
}
Serial.println();
delay(1000);
}
int readADCMux(int _ch)
{
// 4개 컨트롤핀 (s0,s1,s2,s3) 핀 설정
for(int i = 0; i < 4; i ++){
digitalWrite(controlPin[i], muxChannel[_ch][i]);
}
// SIG pin 읽기
return analogRead(pinSIG);
}

결과
C0 ~ C15까지 총16개의 ADC 을 보여줍니다.

제품 구매
16채널 ADC MUX 는 https://kit128.com/goods/view?no=260 에서 구매하실 수 있습니다.
