Seven segment display basic questions

Discussion in 'General Electronics Chat' started by Jan Luthe, Nov 30, 2015.

  1. Jan Luthe

    Thread Starter Member

    Jan 10, 2015
    51
    0
    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
     
  2. nerdegutta

    Moderator

    Dec 15, 2009
    2,515
    785
    Have you tried to use Google and search for "TMS3459BNL" or something like that? If so what did you find?
     
  3. #12

    Expert

    Nov 30, 2010
    16,252
    6,751
    It's LED. It is multiplexing the segments. Check the datasheet for the ground pin.
     
    Jan Luthe likes this.
  4. Dodgydave

    Distinguished Member

    Jun 22, 2012
    4,969
    744
    Its a common Cathode led display, looks like its multiplexing at the mains half cycles from the mains transformer.
     
  5. Jan Luthe

    Thread Starter Member

    Jan 10, 2015
    51
    0
    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?
     
  6. Ephron9

    New Member

    Mar 29, 2016
    1
    0
    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;
    }
     
Loading...