d.i.y smart rgb matrix 8x16
With the integration of NodeMCU, the LED matrix can display scrolling messages, animation, music spectrum analyzer . . . . . . When it is connected to an Ethernet PLC system, it can be used as a small screen to display weather information from the Internet or any process value.
So let\'s take a look at my video below and follow my instructions to start by building our own rgb led matrix.
Electronic components and tools can be purchased from ebay with links as follows: 1.
Electronic components: 2.
The tool RGB matrix panel with 128 x rgb led is arranged in 8 rows and 16 columns, including: controlling a single color of the common anode rgb led, you set its column height and the corresponding color line is low.
We know that the brightness of the LED can be controlled by turning it on and off very quickly.
To do this, pulse width modulation (PWM)
Usually selected by using the PWM pin on the Arduino, except for B. A.
M is another way to achieve the same thing. For B. A.
M, you can check in my instructions: follow the next step to look at my Led matrix board and drive board components in detail.
There are a lot of ways to weld the led matrix, I will share my tips and make an led matrix like a compact shield for the prototype board :-
Decided to buy the RGB Led size and type: For me I used the normal anode type with the size 5mm.
There are many ways to weld the led matrix, and the ultimate goal is to connect all the anode pins of the led to the columns and cathode pins (
Red, green, bluein rows. -
Arrange the LEDs in the prototype board in a symmetrical form. -
Then, take the R, G, B pins of the first row of the first LED, bend down to other LEDs, and weld the pins in contact with each other. -
Do the same with 2nd lines until 8 lines are completed. -
To complete a row of Led matrices, we need to check each led because at this time, it is easy to fix if there is any damaged led or short circuit between the anode/cathode pins. -
For led matrix columns, I also bend the anode pins and attach them like I do with the cathode pins.
In order to obtain the isolation gap between the anode and the cathode pin, we filled the ABS circular plastic pipe when bending the led pin. -
On the vertical and horizontal end of the prototype, I connect the anode and all the R, G, B pins to the long pin male head for later connection to the Led driver board. -
Test the RGB led again. -
Complete the drive board of the matrix board, including: columns (layer)scanning (
Transistor A1013)Line scan (
74 hc595 uln803)
The Led matrix is a shield that can be inserted into the top of the drive board. -BLANK PIN (ENABLE)-----> 3 (PD2)-LATCH PIN -----------------> 2 (PD3)-CLOCK PIN (SCK)----------> 13 -DATA PIN (MOSI)------------> 11 -D4 (PD4)connect to A0. -D5 (PD5)connect to A1. -D6 (PD6)connect to A2. -D7 (PD7)connect to A3.
Note: 74 hc138 has an effective low output, which means that the chip sets the selected PIN to low and the other pins to high.
Here is the truth table for this combination: Note: the back of the picture above is the version 1st I tested with Arduino Uno with some male titles. -
Welding DC Master Jack for Arduino Nano power supply and master connector. -
Install the Arduino Nano on the prototype board.
I also have room for further expansion for NodeMCU.
This nodeMCU communicates with the Arduino Nano through the I2C protocol, and it is pre-connected. -
Clean the circuit board, check again all RGB led on the matrix board, and check continuity with multimeter.
Then, connect the Led matrix with the drive board.
Here are the final results I have achieved.
To develop this project, with the existing hardware configuration, I can make this RGB led matrix smarter through SPI, I2C and Ethernet interfaces.
The test picture I used PLC is as follows.
You can view the interface between NodeMCU and PLC S7-
My theme: MPU-300
According to the schematic diagram above, 6050 on the drive board (
Download the Fritzing file here). I used MPU-
6050, when we rotate the Led matrix, calculate the angle with the filter.
For the Kalman Filter library, you can refer to the address: I think it works very accurately when reading the value from MPU
6050 through this filter.
Automatic Arduino code
Rotate the RGB matrix on my GitHub: note that there are 2 lines in the following sub-routine.
After reading the value from MPU-
6050, AngleX will be in the following range :-
Based on this, 180 to 180 and I determine the text orientation shown on the Led matrix.
My first test video is as follows: Thanks for watching! ! !