P10 is a series of dot matrix displays with a LED pitch of 10mm. It comes in a standard-sized single display screen and consists of a 16×32 led array. Each LED in this display can be individually controlled. By controlling specific LEDs we can display text, shapes, and graphics as required. We can chain these displays together(both vertically and horizontally) to create a display of any desired height and length. They run on a 5V voltage supply at 20W power supply. They can be controlled using ATMEGA 2560, and ESP8266 controllers.
How to get started with the P10 using Arduino IDE?
- Connecting the display to ATMEGA 2560/Arduino UNO
- Once connected, open the Arduino IDE go to: tools> manage libraries> (type) DMD2 in the search box
The option of DMD2 pops up which we need to install. Once the library is installed, we can get started with implementing the code for the display.
- Now we go to File> examples> DMD2 in custom libraries, and we can see there are different examples based on the application.
We will try executing the code for AllDrawingOperations as shown in the image above.
- The code displayed above has been modified according to the number of displays we are using. Now let’s try to understand what’s happening in the code.
- The first two lines are including the libraries to get the p10 working, namely the SPI and DMD2. The following line is containing the font to be used in the display.
- SoftDMD is the function used to give input as to how many displays are being used, in the ideal case it is set to 1×1 display which is a 16×32 LED dot matrix display.
- In our case, it is a 12×1 display you can view the change in the code displayed on the right side of the screen.
- In the void setup, we set the brightness of the screen from 0-255, font style and size, and draw certain shapes/graphical structures.
- All the primitive figures such as numbers, boxes, circles, and lines are displayed according to the coordinates. The result is displayed below.
- There are certain aspects to keep in mind when working with these displays.
- The DMD2 is a beta version of the original DMD library( link). The main difference between them is that the DMD2 uses a software-based SPI communication driving any pin to be used as an SPI interface. The DMD library used the hardware SPI pin to be driven being an efficient mechanism comparatively and doesn’t affect functions like marquee scrolling or scrolling in general.
- The second important to keep in mind is know the original DMD2 library works fine for 7 screens, beyond that it crashes. There are a couple of changes that need to be done within the library to make it work, I have attached the link to show where It has to be changed: DMDFRAME.