Everybody is familiar with LED Matrixes. They consist of, as the name implies, LED’s. For example, the Matrix I am going to use in this project is an 8×8 Matrix, which means it has 8 columns and 8 rows of LED’s, and it looks like this:
I want to thank PCBGOGO for making this tutorial possible. They manufactured the PCB’s I am going to use for this project, but more details about that later.
To have a better understanding of how such LED Matrix works, here is its’ inner circuit:
As you can see, the anodes of the LED’s form the rows, while the cathodes form the columns. By sending a signal to a row and column we can light up an LED in the Matrix. To do this by hand would be quite a chore because the goal of this project is to show some scrolling text on the Matrix.
Controlling the LED Matrixes with an Integrated Circuit(IC): MAX7219
To make our lives easier, we can use an IC which is design to do the chore of sending the corresponding signals for the LED’s. The IC I will use for this project is called MAX7219. If you are an electronics beginner, who already grasped the basics of Arduino and electronics, and want to tinker more around such circuits, here is your perfect place to start off.
Before getting further into the project, I want to present my idea and explain to you why I even made this tutorial. I had some of those 8×8 Matrixes laying around and I could not find a use for them. So, I ordered the IC’s to control them, and came up with this schematic:
Description of the schematic
Now it may look a bit confusing but let me explain the functioning principle. The labels on the left side (1,2,3,4,5) represent the supply (VCC which is normally 5V and GND) and also the interface of the IC which it uses to communicate with a microcontroller, in order to get the text that will be displayed and to set the working parameters. This interface is a SPI Bus system. If you are not familiar with this interface, let me explain it.
In a nutshell, you have 2 data wires, MOSI and MISO. MOSI represents Master Output. This is the data we are writing from our microcontroller. (µC à Master, IC for LED Matrix –> Slave). MISO represents Master Input. This connection assures that the microcontroller is reading data from the IC. For this project, we only need to send data to the controller IC, for displaying text. There is no data we are reading back from the IC, so we only use MOSI (in this case DIN). The other pins, CS and CLK are basically the Chip Select and Clock pins.
The Chip Select wire is helping the microcontroller selecting the correct IC when transferring the text since we are using many of those IC’s, each one must communicate with the microcontroller. The Clock pin is basically where the working clock is latched to.
Now, in order to supply enough current for multiple LED Matrixes, I recommend using an external 5V supply, since one LED Matrix is drawing around 150 mA of current, which the microcontroller (Arduino in this case) can output. But here I am using 4 Matrixes, which draw in total around 500 mA, which the Arduino surely cannot deliver. Just do not forget to connect GND of your external supply with GND of the Arduino.
Now we refer to the LED Matrix in combination with the IC and the complementary components as a module.
This is basically the same circuit as shown before, but I just added the Arduino to the mix. Notice that when you want to connect more of this Matrixes in series, you have to connect the DOUT pin of the first module to the DIN pin of the second, then its DOUT pin with DIN of the third and so on.
Designing the PCB’s
Now in order to keep everything as small as possible, I designed a PCB where a controller IC will be connected to a LED Matrix. The PCB design looks like this:
Finally, I want to thank PCBGOGO again, for carrying out the PCB’s for me. They also made this tutorial possible. If you need your project to look more professional, don’t hesitate to upload your Gerber files to PCBGOGO. They manufacture high-quality PCB’s for cheap prices, so don’t hesitate!
Unboxing and Components Assembling Video of PCB Boards :
Project Demonstration ⭐⭐⭐⭐⭐:
Download Source Code For Arduino IDE :
Electronicslovers Remarks about PCBGOGO
- Very good price.
- 100% guaranteed quality or rebirth.
- Good delivery time: 3 days by DHL.
- Online purchase order.
- Technical support, in case someone responds. Regarding the design, you can use any platform that allows you to generate the Gerber file, maybe in the next tutorials you will do it from KiCAD, Eagle will use it some years ago but for now, I will try to use an Open source.