LED DOT MATRIX 64x16

Hello guys! I bought this matrix 16x64 here: http://pt.aliexpress.com/item/Indoor-F3-75-P4-75-Single-Red-color-LED-dot-matrix-module-304-76mm-64-16/1721794648.html

So I used this code: Miniature 64x16 LED Marquee Project - YouTube,

but I'm having a problem: instead of words the LEDs are off and the rest of the LEDs are lit; I would be grateful for help from someone!

Hi Dancopy, you seem to have posted a link to a video by mistake, instead of a link to the code. Try again.

Paul

Sorry Paul,
Here's the code that video,
thanks

shortened_Final_Code_A.ino (17.4 KB)

Try changing

      PORTB |= !((buffer[index]>>(7-i)) & 0x01) << (data_R1-8);  // top set of rows
      PORTB |= !((buffer[index+128]>>(7-i)) & 0x01) << (data_R2-8); // bottom set of rows

to

      PORTB |= !((~buffer[index]>>(7-i)) & 0x01) << (data_R1-8);  // top set of rows
      PORTB |= !((~buffer[index+128]>>(7-i)) & 0x01) << (data_R2-8); // bottom set of rows

Hello Paul! Note 10++ for you - said and done, it worked perfectly!
I do not want to bother you but I want to ask you these questions:
I have a great desire to do my own codes (sketches) but also have many difficulties in understanding; So I ask you: what is the principle for learning about the codes, especially those arrays as of this review, Led Dot Matrix 64x16 and also these RG Led Matrix?
If for their kindness and gentleness, you want to answer me, I would be very grateful!!
God bless you and all the members of this forum;

Dancopy:
what is the principle for learning about the codes, especially those arrays as of this review, Led Dot Matrix 64x16 and also these RG Led Matrix?

Dancopy, I don't understand your question, can you re-phrase?

ok; sorry
How can I learn more easily on codes (sketches) of these matrices as 64x16 and 32x16 RGY?
For example, this sign (~) you told me everything has changed in the code !! how can I know this? There are good books / ebooks that explain about it?
I am very grateful to you

Try this page.

Hello

I have buy the same 64x16 LED panel.

It's possible to make a timer min:sec;millis ?

Thank's for help me !

Hi Naudnaud,

Yes this is possible. You should start a new topic for this question.

Paul

Ok, thank's !

Hello

Thank's to Kaziewip for your program, it work perfectly !!

But i have a probleme with my LED Matrix.

My counter work well, but i have a lot of blinking artefact on the screen:

You know why ?

How to rewrite the code for displaying ASCII extended characters like "É" or "ã"?

Thank You.

Hi,

I'm working 117x24 led display. If anything could give any help with coding that will be great. I'm really having a hard with the coding.
for the rows i used decade counter, and shift register to drive the columns.

My question is How I modify your code to make work for a 117x24.

Plz in any way possible.

thnks in advance

jafleu - I would suggest that you post a clearly written question of your own in this section , rather than trying to get a response via prior threads. You may get more help. There is also Reddit Arduino where a lot of smart guys post. Good Luck with your project and Happy New Year

Hi, may be anybody can help me. My trouble in shoing text at led matrix. It shows in inverse mode, WHITE TEXT IN RED BACKGROUND but normally must RED TEXT IN WHITE BACKGROUND, have you any ideas?

p.s. i'm using LED matrix 16x64 and arduino nano and Dancopy's shortened_Final_Code_A.ino sketch

image for example

Naudnaud:
Hello

Thank's to Kaziewip for your program, it work perfectly !!

But i have a probleme with my LED Matrix.

My counter work well, but i have a lot of blinking artefact on the screen:

You know why ?

is it posible to get the code you used... please

Has anyone of you tried to port this to another microcontroller? For example an ESP8266?

In this case the direct PORT handling of PORTB would not work. I'm struggling to convert the core of the code to equivalent digitalWrite operations:

PORTB &=~(3<<(data_R1-8)); // data_R2 is LOW; data_R1 is LOW;
PORTB &=~(1<<(clockPin-8)); // digitalWrite(clockPin,LOW);
PORTB |= !((buffer[index]>>(7-i)) & 0x01) << (data_R1-8); // top set of rows
if (HEIGHT == 32) PORTB |= !((buffer[index+128]>>(7-i)) & 0x01) << (data_R2-8); // bottom set of rows
PORTB |= 1<<(clockPin-8); // digitalWrite(clockPin,HIGH);

I converted it to:

byte value = buffer[index];
digitalWrite(data_R2, LOW);
digitalWrite(data_R1, LOW);
digitalWrite(clockPin, LOW);
digitalWrite(data_R1, !((value>>(7-i)) & 0x01));
digitalWrite(clockPin, HIGH);

but it is not working. Does anyone know if a special timing is needed for this clock thing to work well and maybe an arduino direct port handling is faster or slower in the right way compared to a 32 bit microcontroller like the esp? When I added delayMicroseconds(10) in between it only got worse.

Regards, Marcus from Heidelberg

marcusbehrens:
but it is not working...it only got worse.

Marcus, if it was not working, how could it get worse? Such descriptions are useless to us, we cannot see what you can see. You must describe what happens precicely, or we won't be able to help.

The esp outputs are 3.3V. Does the display require 5V signals?

Perhaps you should try your digitalWrite() code on a 5V Arduino. This will slow down the refreshing of the display and make it flicker, but at least you can test your converted code before you try it on the esp.

Paul

Hi! this is exactly what I'm looking for.
I'm trying to do a GPRS data GET, and then print on the matrix.. but since I need VOID LOOP for each one.. it does not work.
Can you share your code please?
thanks

wysi:
Hi
Thank you petabyte and kaziewip for your interesting libraries.
I have my led 64x16 dot matrix from aliexpress.com
http://www.aliexpress.com/item/Indoor-F3-75-P4-75-Single-Red-color-LED-dot-matrix-module-304-76mm-64-16/1721794648.html

Based on petabyte's code I've created an timer/interrupt based version, which runs the matrix in background. In main loop I download data from internet with an ethernetshield an update it on the matrix in fixed time intervals.

Beside the matrix display mechanisme, which could in my opinion be improved, I'm not shure, how the current-limiting could be donne right:

  1. I search more data(sheets) of the matrix it selfe. (led peak current, and for how long the peak max shoud last)

  2. The colum drivers (shift register 74HC595) seem not to be the right thing for their job: max 35mA current per output, total max 70mA current output for the hole IC, 0.5W max Power disipation
    In multiplexing mode, there are much higher peak currents.
    http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

  3. The row drivers look much more stronger: p-chanel mosfet FDS4953: 5A contiuos current, 20A peak
    -> each row is only on for 1/16 time.
    Intelligent Power and Sensing Technologies | onsemi

  4. according to this website, i bought the matrix, it's driven 1/16 constant current. But how should the current be constant when in each row a different count of led's are shining?

  5. if one led consumts 10 to 20mA in constant current, it could be peak 100 to 200mA (16x multiplex) a normal led accepts max 10x times the constant current as peak.
    The whole matrix is on: 64x 100mA = 6.4A per row, always only one row on. -> 8 shift registers for the whole row: 6.4A/8 = 0.8A continous through ONE shift register. In my opinion something doesnt work right here.

Pleas correct me, if me suggestions are wrong.

conclusen: 1. the shift registers are too weak.
2. the current should be limited individually per row, according to the count of led's on in this row.