ESP8266只有一路ADC引脚,但是在实际应用中常常是不够用得,比如智能寻线小车就常常需要4个甚至更多的模拟输入引脚。如何解决这个问题呢,CD74HC4067就给了我们一个解决这个问题的简单方法。
CD74HC4067 作用是选通一路对十六路信号(数字信号或模拟信号),就像一个单刀多掷开关,根据芯片上 S0-S3 四个不同管脚的组合,让SIG管脚和C0-C15导通(每次只能连接一个),它适用于数字和模拟信号,可以只用5针最多连接16传感器系统(其中4针负责16路模拟信号中的哪一路通过,另一路负责将输入的模拟信号传送到单片机。)。由于具有这样的功能,所以CD74HC4067也被叫做模拟信号多路复用器,意思是16路模拟信号,都通过一路模拟输入引脚将模拟数据传送到单片机。在这里我们可以利用它来扩展ESP8266的ADC引脚不足的问题。
S0-S3的组合方式与对应得通道左边是组合方式右边是对应得通道:
{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
用法:如果单片机需要读取第15通道的信号,就给S0-S4这四个管脚分别输出1,1,1,1也就是每个管脚都是高电平。这时从ADC读出的信号就是第15通道输入的模拟信号。以此类推如果要读取14通道的模拟信号,就给这四个管脚输出0,1,1,1也就是低电平、高电平、高电平、高电平。
当然你可能并不需要16路信号。仔细看以上的S0-S4组合可以看出,只需要接S0-S2,不接S3也就是使其保持低电平,通过S0-S2组合就可以输入8路模拟信号了。