Mimic 10 position BCD thumbwheel

Greetings.

I'm attempting to connect an Arduino to a seven segment display controller to expands on it's capabilities. The controller board takes settings from between four and six, 10 position BCD thumbwheels. These settings are used to cause the display to flash at a certain number, and to also limit how high a number will be displayed. The switches work just fine, but I would like to be able to change these settings remotely.

So far I have tried plugging the digital pins on the Arduini directly to the Molex receptacles on the segment controller, then changing the pin mode, and digital write settings in various combinations, and I have had no luck. I have been working off of this data sheet for the thumbwheels: C&K Switches | Electronic Switches & Components Manufacturer
Information about the display controller is unavailable.

There is some sort of MCU on the segment controller board, so I imagine it has been programmed to check which pins are receiving voltage (or are grounded), then it interprets a value based on the BCD it reads.

I do not think the Arduino can outright replace the segment controller, as it's powering 476 LED's. If it is possible, I would be excited to get rid of the segment controller altogether. I'm just trying to see if this will work before I have to go and spend the time researching appropriate transistors, resistors, and LDO's.

Anyway, I'm drawing a blank on why I cannot get this to work. Am I not understanding how thumbwheels work, and this is an exercise in futility? Are the digital pins unsuitable for this task? Am I just missing something entirely?

Thank you for your insight! Any constructive help is appreciated!

as there are several..
U got details? e.g. function code?

So, to what are the thumbwheel commons connected? Are there diodes in series with the thumbwheels? You need to trace out the exact circuit between the thumbwheels and the MCU or any other components. At what voltage does the MCU operate?

If I - or most other people here - were setting up more than one thumbwheel for inputs - not that we would in this day and age - we would be multiplexing them to eight or ten ports (single inputs) on the MCU. In which case, for a 5V rail, you would need to use a 74HC4066 switch to emulate each thumbwheel.

{Of course, we wouldn't do that anyway to read thumbwheels, we would use a shift register - as you should do to control the 74HC4066s.}

Hello everyone.

Thank you for your responses! I apologize for the delay, but I was distracted with the Reno Air Races!

As for code, this is my misguided attempt:

/*
  1 - 4
  2 - 2
  3 - 1
  4 - C
  5 - 8
*/
/*
  1=8
  2=c
  3=1
  4=2
  5=4
*/
/*
  ones 22,23,24,25,26
  when looking at back of plug (can see metal tab)
  1 - 25
  2 - 24
  3 - 23
  4 - 22
  5 - 26
*/
/* tens 30,31,32,33,24
  1 - 33
  2 - 32
  3 - 31
  4 - 30
  5 - 34
*/
/* vio ones 36,37,38,39,40
  1 - 39
  2 - 38
  3 - 37
  4 - 36
  5 - 40
*/
/* vio tens 42,43,44,45,46
  1 - 4 - 45
  2 - 2 - 44
  3 - 1 - 43
  4 - c - 42
  5 - 8 - 46
*/
/*
  C,1,2,4,8
  0,0,0,0,0 == 0
  0,1,0,0,0 == 1
  0,0,1,0,0 == 2
  0,1,1,0,0 == 3
  0,0,0,1,0 == 4
  0,1,0,1,0 == 5
  0,0,1,1,0 == 6
  0,1,1,1,0 == 7
  0,0,0,0,1 == 8
  0,1,0,0,1 == 9
*/

int ones[5] = {22,23,24,25,26}; // A,B,C,D inputs
int tens[5] = {30,31,32,33,34}; // A,B,C,D inputs
//int tens[5] = {33,32,31,30,34};
int vioones[5] = {36,37,38,39,40}; // A,B,C,D inputs
//int viotens[5] = {42,43,44,45,46}; // A,B,C,D inputs
int viotens[5] = {42,43,44,45,46}; // A,B,C,D inputs
//int viotens[5] = {45,44,43,42,46};
int vioonesa[4] = {39,38,37,36}; // A,B,C,D inputs
int viotensa[4] = {45,44,43,42}; // A,B,C,D inputs
byte BCD[10][5] ={
  {0,0,0,0,0},
  {0,1,0,0,0},
  {0,0,1,0,0},
  {0,1,1,0,0},
  {0,0,0,1,0},
  {0,1,0,1,0},
  {0,0,1,1,0},
  {0,1,1,1,0},
  {0,0,0,0,1},
  {0,1,0,0,1}
}; //BCD code

char BCDb[10][4] ={
  {LOW,LOW,LOW,LOW},
  {HIGH,LOW,LOW,LOW},
  {LOW,HIGH,LOW,LOW},
  {HIGH,HIGH,LOW,LOW},
  {LOW,LOW,HIGH,LOW},
  {HIGH,LOW,HIGH,LOW},
  {LOW,HIGH,HIGH,LOW},
  {HIGH,HIGH,HIGH,LOW},
  {LOW,LOW,LOW,HIGH},
  {HIGH,LOW,LOW,HIGH}
}; //BCD code

byte BCDa[10][4] ={
  {0,0,0,0},
  {0,0,0,1},
  {0,0,1,0},
  {0,0,1,1},
  {0,1,0,0},
  {0,1,0,1},
  {0,1,1,0},
  {0,1,1,1},
  {1,0,0,0},
  {1,0,0,1}
}; //BCD code

void setup() {
  Serial.begin(9600);
  
  for (int a = 0; a < 5; a++) {
    /*
    Serial.println(a);
    Serial.print(ones[a]);
    Serial.print(vioones[a]);
    Serial.print(" ");
    Serial.print(BCD[1][a]);
    Serial.println();
    */
    pinMode(ones[a],OUTPUT);
    pinMode(tens[a],OUTPUT);
    pinMode(vioones[a],OUTPUT);
    pinMode(viotens[a],OUTPUT);
  }
  delay(100);
  
  Serial.begin(9600);
  Serial1.begin(9600);
  Serial.println("begin");

//all low == zero
 for (int c = 0; c < 5; c++) {

      digitalWrite(ones[c], LOW);
      digitalWrite(tens[c],LOW);
      Serial.print(c);
      Serial.println(tens[c]);
      digitalWrite(vioones[c],LOW);
      digitalWrite(viotens[c],LOW);
 }
/*
  0 - c - 42
  1 - 1 - 43
  2 - 2 - 44
  3 - 4 - 45
  4 - 8 - 46
*/
//digitalWrite(48,LOW);
//digitalWrite(49,LOW);
digitalWrite(tens[1],HIGH);
digitalWrite(tens[4],HIGH);
//digitalWrite(viotens[1],LOW);
digitalWrite(ones[4],HIGH);
digitalWrite(vioones[4],HIGH);
digitalWrite(viotens[0],HIGH);
//digitalWrite(viotens[1],HIGH);

  Serial.println("set");
}

void loop() {
  for (int c = 0; c < 4; c++) {
      /*
      digitalWrite(ones[c], BCD[0][c]);
      digitalWrite(tens[c],BCD[3][c]);
      digitalWrite(vioonesa[c],BCD[0][c]);
      digitalWrite(viotensa[c],BCD[5][c]);
      */
      /*
      analogWrite(ones[c], BCD[0][c]);
      analogWrite(tens[c],BCD[3][c]);
      analogWrite(vioones[c],BCD[0][c]);
      analogWrite(viotens[c],BCD[2][c]);
      */
    }

}

I am currently unable to determine how the control board is mapped, but I will be sure to check when I get back home!

I have also tracked down a unit that has the thumbwheel switches in place. I plan on checking it out, to see exactly what thumbwheel switch they are using, and see if having the correct data sheet will help at all. I know they're using C&K brand BCD 10 position switches, but I'm still not 100% certain which exact model they are using.

Thanks again for the assistance! I will post more information when I come to it.

And I apologize in advance for the horrible code. I just copied/pasted what I have been messing around with. There are an unnecessarily large number of comments in there that I was switching around trying to test code faster.