Hi guys,
I have a selector switch with 4 toggles, 1 or 0.
I need to find the position of them and this is what I come up with. It works but I'm wondering if there is a fancier way of reaching the same solution.
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), LOW)) {
Channel = 1; //0000
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), HIGH)) {
Channel = 2; //0001
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), LOW)) {
Channel = 3; //0010
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), HIGH)) {
Channel = 4; //0011
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), LOW)) {
Channel = 5; //0100
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), HIGH)) {
Channel = 6; //0101
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), LOW)) {
Channel = 7; //0110
}
if((digitalRead(Selector1), LOW) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), HIGH)) {
Channel = 8; //0111
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), LOW)) {
Channel = 9; //1000
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), HIGH)) {
Channel = 10; //1001
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), LOW)) {
Channel = 11; //1010
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), LOW) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), HIGH)) {
Channel = 12; //1011
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), LOW)) {
Channel = 13; //1100
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), LOW) && (digitalRead(Selector4), HIGH)) {
Channel = 14; //1101
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), LOW)) {
Channel = 15; //1110
}
if((digitalRead(Selector1), HIGH) && (digitalRead(Selector2), HIGH) && (digitalRead(Selector3), HIGH) && (digitalRead(Selector4), HIGH)) {
Channel = 16; //1111
}