Go Down

Topic: hardware used to test continuity of a 50 pin connector? (Read 2 times) previous topic - next topic


I am just thinking of the best way to use an arduino uno to test the continuity of a 50 pin connector. It could look like a metal box with two large 50 pin connectors on the top, a pushbutton and a 2X16 line lcd. I could plug the cable into each of the connectors and the arduino would test the continuity of each of the 50 pins one after the other when the pushbutton is pressed. Possibly noting on the lcd which pins are opens. It's been a while since I've built a project so if you could give me some direction on what type of  shift registers or multiplexers would be the best way to go with or maybe some other option.



If you just want continuity, then you can join them all at one end, and then you only need a one-to-50 at the other end. But you probably want to know about shorts, too.
type of  shift registers or multiplexers
So just use the little search box (top right on every page) on this forum for "shift registers" or "muliplexers" and you get plenty of ideas from others who have done it before and already written about it. If you have specific question ask them in the LED and Multiplexing section

As for the project in general : Yes, enough 1-to-8 multiplexers to get your 100 lines, and a simple program with two nested loops (to test every-one-against-every-other wire should do it. Hint: You set all pins to HIGH on the one side of the cable, except one to LOW. Then you probe for the LOW one on the input side. By using the internal pullup resistor no more parts are needed. (I did a 15 minute program for working out a weird thumbwheel switch I picked up as junk. It only had 8 leads, so I did not need a shiftregister). Your program only needs to write the unexpected result, and you can save the LCD by using the Serial/USB/computer (unless you wnat a standalone test box)


Thanks for the feedback Msquare,
I have a few 74HC164 cascade able shift registers that I would like to use on this project. I was thing of using these on the driving end of the cable. Position one would be high, a clock pulse would then just make position 2 high... for each of the 50 pins, one after the other. Then I needs to somehow have the receiver side know that only one wire should be seen high at the correct location on each clock pulse. Giving an error if the correct wire is not high when it should be or a crossover is detected. It could be a few logic chips that would give the arduino a binary number to see but that may not detect crossovers.

Any thoughts would be appreciated,


You put a 1 in the driver shift regs and have 50 bits of MUX for the input, say using 4067s or 4051s. Then

Code: [Select]
digitalWrite(shiftRegDataPin, HIGH);  // set a 1 bit for shift regs
digitalWrite(shiftRegClockPin, HIGH); // clock it out
digitalWrite(shiftRegClockPin, LOW);
digitalWrite(shiftRegDataPin, LOW);  // set a 0 bit for shift regs

for (int i = 0; i < 50; i++) {

    setMuxAddr (i - 1); // have to handle special case when i == 0
    if (digitalRead (muxPin) == HIGH)
    setMuxAddr (i);   // you'll have to write a func to do this
    if (digitalRead (muxPin) == LOW)
    setMuxAddr (i + 1); // have to handle special case when i == 49
    if (digitalRead (muxPin) == HIGH)

digitalWrite(shiftRegClockPin, HIGH); // move the 1 bit to the next wire
digitalWrite(shiftRegClockPin, LOW);

That's the general idea.

Rob Gray aka the GRAYnomad www.robgray.com


have anyone successfully build the hardware using arduino uno??. some info please....

Go Up