Hi I wrote a multiplexing scheme for an uno using a 16 pin 7 segment display. As seen below, I have defined each of the 40 possible conditions using functions. I would then like to display a four digit variable by calling these functions. For example if the variable is 1337 then I would call functions: fourone, threethree, twothree, one seven. What statement allows me to identify the fourth digit and then call function fourone?
Here is my test code that runs through all the numbers
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
///////////////////////////////////// clear
void zzz() {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}
///////////////////////////////////// zero
void onezero(){
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void twozero(){
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void threezero(){
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void fourzero(){
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
///////////////////////////////////// one
void oneone() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void twoone() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void threeone() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void fourone() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
///////////////////////////////////// two
void onetwo() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
}
void twotwo() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
}
void threetwo() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
}
void fourtwo() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// three
void onethree() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(8, LOW);
}
void twothree() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(8, LOW);
}
void threethree() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(8, LOW);
}
void fourthree() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// four
void onefour() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void twofour() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void threefour() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void fourfour() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// five
void onefive() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void twofive() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void threefive() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void fourfive() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// six
void onesix() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void twosix() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void threesix() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void foursix() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// seven
void oneseven() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void twoseven() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void threeseven() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
void fourseven() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
///////////////////////////////////// eight
void oneeight() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void twoeight() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void threeeight() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void foureight() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
///////////////////////////////////// nine
void onenine() {
zzz();
digitalWrite(9, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void twonine() {
zzz();
digitalWrite(10, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void threenine() {
zzz();
digitalWrite(11, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
void fournine() {
zzz();
digitalWrite(12, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
/////////////////////////////////////
void loop() {
delay (500);
onezero();
delay (500);
twozero();
delay (500);
threezero();
delay (500);
fourzero();
delay (500);
oneone();
delay (500);
twoone();
delay (500);
threeone();
delay (500);
fourone();
delay (500);
onetwo();
delay (500);
twotwo();
delay (500);
threetwo();
delay (500);
fourtwo();
delay (500);
onethree();
delay (500);
twothree();
delay (500);
threethree();
delay (500);
fourthree();
delay (500);
onefour();
delay (500);
twofour();
delay (500);
threefour();
delay (500);
fourfour();
delay (500);
onefive();
delay (500);
twofive();
delay (500);
threefive();
delay (500);
fourfive();
delay (500);
onesix();
delay (500);
twosix();
delay (500);
threesix();
delay (500);
foursix();
delay (500);
oneseven();
delay (500);
twoseven();
delay (500);
threeseven();
delay (500);
fourseven();
delay (500);
oneeight();
delay (500);
twoeight();
delay (500);
threeeight();
delay (500);
foureight();
delay (500);
onenine();
delay (500);
twonine();
delay (500);
threenine();
delay (500);
fournine();
}