CD74HC4067 模块的使用
CD74HC4067 作用是选通一路对十六路模拟信号,更详细的说,根据芯片上 S0-S3 四个不同管脚的组合,让SIG管脚和C0-C15导通。因此,最常见的用法是用来测试模拟信号。比如,ArduinoUno上面只有6个模拟输入,用一个CD74HC4067可以多扩展出来16个,于是可以支持6+16-1=21个模拟引脚。这个芯片的使用方法非常简单,例如: S0-S3 分别是 0 0 0 0时,SIG就和 C0是导通的。因此,这里我做一个实验,将一些电阻串联起来,分别接在C1 C3 C5 C9 C11 上面,然后测量换算每个Pin的电压.//Mux control pins
int s0 = 7;
int s1 = 6;
int s2 = 5;
int s3 = 4;
//Mux in "SIG" pin
int SIG_pin = 0;
void setup()
{
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(9600);
}
void loop()
{
int v;
//Loop through and read all 16 values
//Reports back Value at channel 6 is: 346
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 / 1024);
}
Serial.println(" ");
delay(3000);
}
int readMux(int channel)
{
int controlPin[] = {s0, s1, s2, s3};
int muxChannel =
{
{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, muxChannel);
}
//read the value at the SIG pin
int val = analogRead(SIG_pin);
//return the value
return val;
}
最终运行结果如下: 同时我使用万用表测量,两者相差在 0.02V左右,证明还是非常准确的. 除了当作模拟的扩展之外,这个芯片还可以用来控制 LED。在电路的世界里,即便最简单的芯片都可以玩出让人匪夷所思的效果。参考:1. http://bildr.org/2011/02/cd74hc4067-arduino/#2. http://www.tigoe.com/pcomp/code/arduinowiring/540/
不错 这个扩展还可以 楼主您好,请问这个模块的内阻是多少?可以用该模块来拓展引脚制作电压表吗? 李长安 发表于 2019-4-18 21:36
楼主您好,请问这个模块的内阻是多少?可以用该模块来拓展引脚制作电压表吗? ...
不知道,建议你去找一下 datasheet
我觉得可以用来做电压表 Zoologist 发表于 2019-4-18 21:45
不知道,建议你去找一下 datasheet
我觉得可以用来做电压表
好的,谢谢您! 我想问下练好电路后还要在程序写你上面的程序对吗,谢谢 剑出鞘1214 发表于 2019-5-15 15:09
我想问下练好电路后还要在程序写你上面的程序对吗,谢谢
是的 就是这样的,硬件软件需要配合起来 楼主您好,咱这个有电阻么?不知道要不要接电阻。 nongminbobo 发表于 2019-6-23 10:23
楼主您好,咱这个有电阻么?不知道要不要接电阻。
你说什么电阻? Zoologist 发表于 2019-6-24 08:16
你说什么电阻?
额,我也不知道怎么描述这个事情;
或者您这个示例有接线图么?代码我已经看到了,大概能看懂,但是这个芯片不会接,或者您可以加我QQ么?我的QQ409814558,我想请教点问题,如果有机会我会把我的疑问和您的回答都备份到论坛中。