16x16 Matrix - How to Control this?

I Bought this 16x16 Led Matrix:

And i have no idea how to Control this... :frowning:
Can any One help me please =(
On the product page is a reference to "LCD12864" gut i dont know what they mean... The lcd Module or the LCD12864 library
For me it makes no Sense....

Greets steffen

The page says:

Supply Voltage: DC 5V; Principle: Each row consists of 4~16 decoders by two 74HC138 + transistor drive; Each column cascade driven by the two 74HC59; LED in cross point will light on if row output high level and column output low level; Compatible w/ LCD12864 interfaces, plug and play.

Hi steffen,

r3booz:
I Bought this 16x16 Led Matrix... And i have no idea how to Control this... :(... For me it makes no Sense

So why did you buy it?

r3booz:
On the product page is a reference to "LCD12864" gut i dont know what they mean...

I doubt they know what they mean either.

You will have to figure out which connections have which functions. Do the connections have any labels printed next to them on the pcb?

Paul

"Principle: Each row consists of 4~16 decoders by two 74HC138 + transistor drive; Each column cascade driven by the two 74HC59; LED in cross point will light on if row output high level and column output low level;..."

That's got to be a clue!

How is that header labelled?

actually i dont buy this, i bought a LCD screen but this thing was shipped :roll_eyes:
thank you for your replays and sorry for my english im from germany :zipper_mouth_face:

it have GND and VCC with 5V and 8 Pins with this labels in this order:

D, C, B, A, G, DI (Data Input?), CLK (Clock?), LAT (Latency?)
and on the side 20 connections (holes for the pins i think) with no label.

hope it helps :drooling_face:

greets Steffen

I'm sure the HC59 is really HC595.
So you shift data into the 2 HC595s and then select which row is enabled with the HC138s.

Neither part is really rated for the current needed to drive LEDs. Guess you're only supposed to have 1 '595 output high while one '138 output is low. Are there current limit resistors on the left side? Or are those transistors?

On the left side are 2 ICs, 4 micro ICs (?) and 16 Transistors and on the right side 2 ICs (like on the left) and 4 micro ICs (?, like on the left) and on the back is nothing

greets Steffen

Going to have to provide more detail than that. How about a couple of clear, up close pictures? Crop before posting to no more than 1000 wide.

I think the "micro ICs" are resistor packages with 4 resistors in each package. The ones on the left are probably base resistors for what are probably pnp transistors, or pull-up/down resistors on gates of mosfets. The 4 resistor packages on the right are probably series resistors for the columns.

I think we could have a stab at a sketch for this now. Shift in 16 zero bits and latch them, set the row using A/B/C/D, shift in a 16 bit pattern and latch it, a short delay, then repeat for the next row.

Your product sounds like one I purchased, this is the message I received from seller

"Our product manager send me website about this product.Can you refer to it at first?The website as follows,please download it.

www.baaqii.com/promanage/manual/A1272.rar"

The program titles are in chinese, the programs are in English, section 2 contains two(2) pdf files cct diagram and board pinout.

Here are the pictures i will look for the reference thank you :slight_smile: :sweat_smile:

Ups :cold_sweat:

Yeah it works with the Mega just define the other Pins thank you :slight_smile:
now i must only understand how to define new letters xD

:grin:

Try this (obviously, change the pins to the ones you are using on the Arduino):

#define CLOCK 3
#define DATA 4
#define LATCH 5
#define ROWA 6
#define ROWB 7
#define ROWC 8
#define ROWD 9

unsigned int pattern[16] = {
  0b0010000001111100,
  0b0110000010000010,
  0b0010000000000010,
  0b0010000001111100,
  0b0010000010000000,
  0b0010000010000000,
  0b0111000011111110,
  0b0000000000000000,
  0b0111110000001100,
  0b1000001000010100,
  0b0000001000100100,
  0b0011110001000100,
  0b0000001010000100,
  0b1000001011111110,
  0b0111110000000100,
  0b0000000000000000};
  
void setup() {
  pinMode (CLOCK, OUTPUT);
  pinMode (DATA, OUTPUT);
  pinMode (LATCH, OUTPUT);
  pinMode (ROWA, OUTPUT);
  pinMode (ROWB, OUTPUT);
  pinMode (ROWC, OUTPUT);
  pinMode (ROWD, OUTPUT);
}

void loop() {
  for (byte i=0; i<16; i++) {
    digitalWrite(LATCH, LOW);
    shiftOut(DATA, CLOCK, MSBFIRST, 0);
    shiftOut(DATA, CLOCK, MSBFIRST, 0);
    digitalWrite(LATCH, HIGH);
    digitalWrite(ROWA, bitRead(i, 0));
    digitalWrite(ROWB, bitRead(i, 1));
    digitalWrite(ROWC, bitRead(i, 2));
    digitalWrite(ROWD, bitRead(i, 3));
    digitalWrite(LATCH, LOW);
    shiftOut(DATA, CLOCK, MSBFIRST, highByte(pattern[i]));
    shiftOut(DATA, CLOCK, MSBFIRST, lowByte(pattern[i]));
    digitalWrite(LATCH, HIGH);
    delay(1);
  }
}

PaulRB

The program doesn't work, what happens to pin labled 'G', where do you put it, if you had read my post and gone to the web site you would have seen programs that do work :-

#define CLOCK 8
#define DATA 7
#define LATCH 9
#define G 6
#define ROWA 5
#define ROWB 4
#define ROWC 3
#define ROWD 2

with 'G' defined this give a display that is hard to read the numbers displayed.