ESP32 用CD74HC4067使用一路ADC 采集16路模擬信號


https://www.jianshu.com/p/1f82f99e55c2

 這個芯片的使用方法非常簡單,例如: S0-S3 分別是 0 0 0 0時,SIG就和 C0是導通的。

CD74HC4067 作用是選通一路對十六路模擬信號,就像一個單刀多擲開關,根據芯片上 S0-S3 四個不同管腳的組合,讓SIG管腳和C0-C15導通(每次只能連接一個),它適用於數字和模擬信號,可以只用5針最多連接16傳感器系統,也可以用它來管理多個設備。

 

CD74HC4067接口板就像一個單刀多擲開關 -SIG引腳通過地址選擇引腳(S0-S3)與CH0~CH15之一進行連通。它適用於數字和模擬信號。我們只需連接4個數字輸出芯片的地址選擇引腳(S0-S3),並發送欲連接的通道地址(每次只能連接一個)。這使我們可以連接最多只用5針16傳感器系統,
也可以用它來管理多個設備。例如,可以用它來連接16台設備的

 

//測量換算每個Pin的電壓
int s0 = 34;
int s1 = 35;
int s2 = 32;
int s3 = 33;
int SIG_pin = 25;
void setup() {
  // put your setup code here, to run once:
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);

  digitalWrite(s0, LOW);
  digitalWrite(s1, LOW);
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  Serial.begin(115200);

}

void loop() {
  // put your main code here, to run repeatedly:
  int v;
  for (int i = 0; i < 16; i ++)
  {
    Serial.print("Value at channel ");
    Serial.print(i);
    Serial.print(" is : ");
    v = readMux(i);
    Serial.println(v * 5.0 / 4096);
  }
  Serial.println(" ");
  delay(3000);

}
int readMux(int channel)
{
  int controlPin[] = {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
  };

  //loop through the 4 sig
  for (int i = 0; i < 4; i ++)
  {
    digitalWrite(controlPin[i], muxChannel[channel][i]);
  }

  //read the value at the SIG pin
  int val = analogRead(SIG_pin);

  //return the value
  return val;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM