16채널 ADC MUX 모듈

16채널 ADC MUX 모듈

  • Mux Configuration : 1
  • Channels (#) : 1
  • VCC (Min) : 2  V
  • VCC (Max) : 6V
  • Voltage (Nom) : 3.3 ~ 5V

 

핀 번호

핀명기능
C15Analog INPUT 15
C14Analog INPUT 14
C13Analog INPUT 13
C12Analog INPUT 12
C11Analog INPUT 11
C10Analog INPUT 10
C9Analog INPUT 9
C8Analog INPUT 8
C7Analog INPUT 7
C6Analog INPUT 6
C5Analog INPUT 5
C4Analog INPUT 4
C3Analog INPUT 3
C2Analog INPUT 2
C1Analog INPUT 1
C0Analog INPUT 0
SIGAnalog Signal
S3Select 3
S2Select 2
S1Select 1
S0Select 0
ENEnable
VCCPOWER
GNDGROUND

 

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 에서 구매하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다