I am very new to Arduino and electronics in general. I would like to have a few suggestions about a small project I am trying to do to learn.
Basically I want to create my own LED Matrix (with its own circuit), say a 8x3 or any other size. I would like to control, using Arduino, every single LED of it, saying something like "light up LED A1, A6, B5".
Now I have a lot of questions, and you might be able to put me in the right direction:
- in a 8x3 matrix I have 24 leds, so what would be the best way to take control of all those leds? Maybe I have to use a demultiplexer?
- are there ways to control those leds reducing the number of digital outputs to use from Arduino? Maybe a combination of logical ports, something like a decoder?
- if I have a lot of leds, will Arduino be able to actually switch on all the leds or would I need to amplify the current using transistors (maybe)?
These are probably silly questions for you, but as I said I am very new to this world
Thanks for any suggestions/links/guides you might have for me!
You need to decide if you want to control the LEDs individually or if you want to multiplex them.
For individual control you can use a chain of shift registers, three will allow you to control 24 LEDs.
However, you might want to multiplex them, this shows you what is needed.
I too am new at Arduino and electronics. With the invaluable help of a few people on this forum I have managed to construct a 3 x 3 LED matrix which can be found on this forum at ;
You will find a circuit diagram attached to one of my posts in that thread called 3 X 3 MAT .png and also a photo and additional information of it on a word doc Note that I made a mistake when I constructed it and put the 2N2222 transistors where the 2N2907 should have been and visa versa but it still worked alright but as I said I am a beginner at all this and I cannot say that this will not damage your arduino, but I don't think so ( mine still works ok.) If I can help any more just respond to this thread and I'll do my best to help if I can.
Good luck Pedro. 8)
If the matrix is just for simple LED on/off and not individual LED fading then another simple way (hardware and software) would be to use a chip like the MAX7219. It low support component count (2x capacitors, 1x resistor) deals with all of the multiplexing for upto 64 LED's and has arduino libraries to control it. See Arduino Playground - HomePage The chip is not as cheap as shift registers but you can pick them up on eBay for a reasonable price.
MAX7221 for 8x8 matrix, or 8 digits, also.
Here’s one way for an 8x3 matrix.
Anodes can be driven by Arduino outputs, or by shift registers.
Cathode transistors (or transistor array such as ULN2803) can be driven by arduino, or shift register, or a high current shift register such as TPIC6B595 coud sink the cathode current directly.
Multiplexing is done in Arduino code:
Every 1mS, the cathodes are turned off, anodes are driven for the next column of data, and the next cathode is enabled.
Arduino then does whatever you have it do until the next mS interval comes up.
Anode data could be stored in an array for easy manipulation/updates, such as scrolling the data across the display.
Thanks for all your answers! I have a lot to read and try now
I'm sure I will have to ask you other suggestions!