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.
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
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.
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.
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
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:
I search more data(sheets) of the matrix it selfe. (led peak current, and for how long the peak max shoud last)
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
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?
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.
That dropbox file is gone and all other programs are only for Arduino UNO which does nothing on MEGA. There is 2 fails I can see by quick look (#include <pgmspace.h> and const byte data_R2=11;) but I can' find any good solution to make it work.
I'm able to run "rotation" in canton-electronics but it's incredibly slow (0,3s for one scroll) and I can't do any other code in main loop because the display turns off on that other tasks.
;tldr: Is there any solution how to make that UNO program work on MEGA?
EDIT: I did it. Key is correct pin names. For details just take both files and compare them (and remove <Arduino.h> from Eclipse
So, for search engines: 64x16 led matrix display for Arduino Mega 2560
Hi everyone, I have just acquired one of these displays and am using Kaziewicz/canton-electonics code as a starting point for a message board. I have it working but am struggling to understand how the code works. I am stuck on trying to get the full two rows to display the text. I understand that you fill the reserved memory and then the interrupt routine pushes the memory map out to the display. The difficulty I am having is when I add "font = 2" on line 256 only the top 8 pixels of the 16 pixel high text is displayed on the lower row and nothing is displayed on the top row.
on the line: drawChar(120,8,message[count%(sizeof(message)-1)],0,false);
Play with the second number "8". use only 0,8,16,32... That is in what Y line you want the text to appear.
Fantastic, just the tip I needed, changing the line as you suggest caused some activity in the right most cell, but it did not scroll. Following this tip lead me to change :
I changed the 2nd parameter from 8 to 0 to correspond to the change on the drawchar as you suggested.
It now works beautifully.
Thank You !!
Now on to the next challenge to control the display to display and hold individual lines of text according to an external stimulation ( a push button) and a line break character as the delimiter in the text. Perhaps a comma or other character delimited.
How to extend the ASCII table to other languages? I don't understand how to translate between the ASCII tables I find on the internet, and the one that appears in the nice code sketch of Kaziewicz and others.
How can I simplify the code of Kaziewicz, or complicate the code of cannon to display a constant message, without "running text". I mean that I like the option of just entering the message in the code and it appears "right away".
Many thanks to all the members of the forum. I don't know would I do without the nice code pieces I find here.
With the help of all here I have managed to drive the 64x16 display by WIFI from a serial string in a terminal in a Linux box (Raspberry Pi) or Mac OSX.
The Arduino receives serial data and displays 8 characters on the top half as a static display and then a string that scrolls along the bottom half.
This can be fed from a serial program but I now use and ESP8266 to receive the data by WIFI from a box on my LAN.
This is very crude since I program by copy - paste - pray. (Thanks!)
EDIT - now multimode
Two lines of fixed 8x8 characters
Top line of fixed 8x8 characters - bottom line scrolling
One line of scrolling 16x8 characters
One line of fixed 16x8 characters
Glad you think it possible - thanks - but interrupt timers are new to me....
I see lines like digitalWrite(en_74138, HIGH); but see no obvious delay statement before a digitalWrite(en_74138, LOW);
I am wondering if the prescaler is the variable to modify?
I aim to have the Arduino read a pot on the analog pin then change the brightness - or perhaps use an ambient light detector.
These display are very good value and almost do the job.
Pasting links seems to be working fine for me, and I'm using an android phone! So please try harder.
To dim your display, there will have to be some significant code changes. Currently, the interrupt occurs one per scan row. To dim, two interrupts per scan row will be needed. One to send out the new data and switch on the display, and the second to simply switch off the display. The gap between these two interrupts will determine the brightness. If the gap is short, the display will be dim. If it is almost the full length of the scan period, the display will be bright.
Your code is not easy to read. It's not indented and the lines wrap, so it looks a mess. But even so, something about it seems odd to me. I don't understand what pin R2 is for, and I wonder if it is in fact not needed for your display. Maybe your code was written for a bi-colour display?