Seven segment display basic questions

Thread Starter

Jan Luthe

Joined Jan 10, 2015
72
I am just playing around with this so keep it simple. I want to desolder display and hook up my 'manual control'. Attached is working display:
1) Is this an LCD one?
2) How can I dertermine which one is the 'common' and whether - or +. I tried measuring however the voltage is constantly fluctuating (maybe it is 'flashing' to get brighter light)
3) Any basic suggestions on how to determine - or + and what is common and what DC voltage to apply?DSCF8049.JPG DSCF8050.JPG
 

Thread Starter

Jan Luthe

Joined Jan 10, 2015
72
It's LED. It is multiplexing the segments. Check the datasheet for the ground pin.
Thanks for the data sheets. I tried looking for a 4 digit display with 26 pins but can't find one. (Sanyo, TCL-1008P, 94HB, 502). The 4 digit 7 segment display has 26 pins, one which doesn't go anywhere. It is a '12 hr' display. Would each pin 'control" 1 LED. Is there more 'electronics' behind the display or possibly just some of the LEDs interconnected?
 

Ephron9

Joined Mar 29, 2016
1
I have the same display that I desoldered from my old clockradio. The common cathodes are pin 1 and 2. Pins 5 thru 23 (except 11) are anodes. LED segments that share the same anode are connected to different cathodes. I have written an arduino function and tested the two rightmost digits in the display. I'm a self learned hobby enthusiast so I'm not sure the code is kosher, but it works. It goes like this:

int displayNumber(int t,int e){ //e is the rightmost digit and t is next to it
byte plexOne; //Segments to PIN 1
byte plexTwo; //Segments to PIN 2
switch (t) {
case 0:
plexOne = B111; // these represent segments connected from PIN 16-18 to PIN 1
plexTwo = B1011; // these represent segments connected from PIN 16-19 to PIN 2
break;
case 1:
plexOne = B011;
plexTwo = B0000;
break;
case 2:
plexOne = B110;
plexTwo = B0111;
break;
case 3:
plexOne = B111;
plexTwo = B0110;
break;
case 4:
plexOne = B011;
plexTwo = B1100;
break;
case 5:
plexOne = B101;
plexTwo = B1110;
break;
case 6:
plexOne = B101;
plexTwo = B1111;
break;
case 7:
plexOne = B111;
plexTwo = B0000;
break;
case 8:
plexOne = B111;
plexTwo = B1111;
break;
case 9:
plexOne = B111;
plexTwo = B1110;
break;
default:
plexOne = B000;
plexTwo = B0000;
break;
}

// make room for next digit
plexOne = plexOne << 4;
plexTwo = plexTwo << 3;

switch (e) {
case 0:
plexOne += B1011;
plexTwo += B111;
break;
case 1:
plexOne += B0000;
plexTwo += B110;
break;
case 2:
plexOne += B1110;
plexTwo += B101;
break;
case 3:
plexOne += B0110;
plexTwo += B111;
break;
case 4:
plexOne += B0101;
plexTwo += B110;
break;
case 5:
plexOne += B0111;
plexTwo += B011;
break;
case 6:
plexOne += B1111;
plexTwo += B011;
break;
case 7:
plexOne += B0000;
plexTwo += B111;
break;
case 8:
plexOne += B1111;
plexTwo += B111;
break;
case 9:
plexOne += B0111;
plexTwo += B111;
break;
default:
plexOne += B0000;
plexTwo += B000;
break;
}

// Put them together into one integer and return it
int multiplex = plexTwo;
multiplex = multiplex << 7;
multiplex += plexOne;
return multiplex;
}
 
Top