三选八的原理其实比较简单,模型更加简单,一个最简单的模型就是一个3bit的二进制。
电路的搭建比较容易,为了测试我还增加了一个LED灯,主控使用的Arduino。
电路十分简单,只是做一个简单的示意。
我先进行了两个通道的控制测试,比较简单的方法就是在第1路输出以及第2路输出之间进行拉低的切换。代码:
void setup()
{
// put your setup code here, to run once:
pinMode(8, OUTPUT); // A1
pinMode(9, OUTPUT); // A2
pinMode(10, OUTPUT); // A3
}
void loop()
{
// put your main code here, to run repeatedly:
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(1000);
}
以上代码,能够看到1、2控制下的LED等的闪烁。这样,基本上已经可以说明问题,不过,为了能够避开偶然性,增加第3路的测试代码:
void setup()
{
// put your setup code here, to run once:
pinMode(8, OUTPUT); // A1
pinMode(9, OUTPUT); // A2
pinMode(10, OUTPUT); // A3
}
void loop()
{
// put your main code here, to run repeatedly:
// digitalWrite(8, LOW);
// digitalWrite(9, LOW);
// digitalWrite(10, LOW);
// delay(1000);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
delay(1000);
}
再次测试,效果如期待一致。