Introduction: 7 Bi-color LED Matrix Scrolling Text Display
Here, we show how a 7 Bi-color 8x8 LED Matrix Scrolling Text Display is built, in which messages and commands can be sent to it via Bluetooth using an Android Smart Phone. Logically, any devices capable of sending text messages via Bluetooth may be adapted to work with the display.
To build this project, basic electronics component soldering skills and some knowledge on using the Arduino or Arduino based micro-controllers are required.
The reason for building a 7 LED Matrices long display is that it is quite adequate for ease of reading scrolling text and also because the largest tinted acrylic sheet easily available in Hobby or Art shops is 18 inches by 12 inches, which is just the right length for making the enclosure for the display as each LED matrix is around 60mm x 60mm in size.
You may view the following YouTube video to see what we are building.
Step 1: LED Matrix Driver Module Assembly
The display is built using seven of the Bi-color (Red and Green) LED Matrix Driver Module kits from jolliFactory. Each of these modules uses two MAX7219 Display Driver ICs to drive a Bi-color LED Matrix. These ICs are excellent because they take a lot of work off the micro-controller and simplify the wiring and logic design. Moreover, there is a ready-made Arduino library for this IC. You can daisy-chain up to four of these Bi-color LED Matrices using only three output pins on the micro-controller for the interface. As our display is made up of seven Bi-color LED Matrices, we need an additional three output pins on the micro-controller to interface with the other three daisy-chained LED Matrices.
You can find this Bi-color LED Matrix Driver Module kit from here with information on the assembly of the kit.
This kit comes with all through-hole components and someone with basic soldering skills should be able to assemble it without much difficulty.
You may view the following YouTube video on the assembly of the Bi-color LED Matrix Driver Module kit.
The following are some of the projects built using this Bi-color LED Matrix Driver module which you may want to check out:
- Instructable to build an Arduino based Bi-color LED Matrix Tetris Game
- Instructable to build an Arduino based Bi-color LED Matrix Snake Game
- Instructable to build Voice Input Arduino Bi-color LED Matrix Scrolling Text Display
- instructable to build an Arduino based Bi-color LED Matrix Audio Spectrum Visualizer
Step 2: Wiring
After all the kits are completed, they are connected together with the micro-controller as shown below (LED Matrices not installed for better view). Note the header for J3 is modified for the fourth LED Matrix Driver module from the right such that only VCC and GND are connected to the fifth module. This is because the first four daisy-chained modules from the right shall be driven by 3 output pins (Digital pins 2, 3 & 4) from the micro-controller and the last three daisy-chained modules shall be driven by another 3 output pins (Digital pins 5, 6 & 7).
Here, we use the chipKit UNO32 micro-controller board which is based on the popular Arduino Open Source hardware platform to drive the display. However, you may instead use any suitable Arduino boards if slower scrolling speed is acceptable to you. The chipKit UNO32 board is much more capable of producing faster and better scrolling text effect than Arduino boards of around the same price range.
We use a HC-07 Bluetooth Wireless Serial Port Module connected to the TX and RX pin of the micro-controller for Bluetooth communications between the display and the Android Smart Phone. This Bluetooth Wireless Serial Port Module is not expensive, easy to work with and quite easily available from online shops. You may instead use any Bluetooth Wireless Serial Port Modules you are familiar with.
Note the use of 10Kohms pull-down resistors on the DATA IN, CLK and LOAD input pins. When power is first applied to the micro-controller or when they are reset, their I/O lines float. The MAX7219 can see this as valid data and display garbage until the micro-controller gains control. The pull-down resistors prevent these problems.
Step 3: Arduino Sketch
Thankfully, there is an excellent library that has been specifically written for the MAX7219 which greatly simplifies the sketch – the LedControl library. You will need to download and install the library.
See the following link for more information about this library and to download the library.
*** Do note that all the examples that come with the library cater to single color LED Matrix driven by a single MAX7219 IC each and needs to be adapted for use with our Bi-color LED Matrix Driver Modules which is using 2 MAX7219 ICs for each module. Otherwise, there may be some form of 'ghosting' on the displays and may be mistaken to be a hardware issue.
You may also want to check out the original LedControl documentation for more detail.
The micro-controller needs to be loaded with the Arduino sketch to run the display.
Download the Arduino sketch below which is used for this project. You may amend and enhance the sketch to suit your project.
** Note that before downloading sketch to the micro-controller, the connections to the TX and RX pins for the HC-07 Bluetooth Wireless Serial Port Module must be removed for the download to be successful.
Step 4: Testing the Display
Install the free Bluetooth spp pro Apps onto your Android Smart Phone, power up the display and establish Bluetooth communications between them. Then set up the Bluetooth spp pro Apps buttons for sending messages and commands accordingly.
See some examples of how we set up the configurable 'ClickMe' buttons for testing below:
Btn name: RED
Send val: (100)Scrolling . . .
Btn name: GREEN
Send val: (200)Scrolling . . .
Btn name: ORANGE
Send val: (300)Scrolling . . .
Btn name: RED*
Send val: (100)*
Btn name: GREEN*
Send val: (200)*
Btn name: ORANGE*
Send val: (300)*
Btn name: Speed Up
Send val: (00>)*
Btn name: Speed Down
Send val: (00<)*
Btn name: Dimmer
Send val: (0<0)*
Btn name: Brighter
Send val: (0>0)*
Btn name: jolliFactory
Send val: Powered by jolliFactory
Test the display by clicking on the buttons to send messages and commands to the display.
If you do not have a Bluetooth Wireless Serial Port Module connected, you may test the display by sending messages and commands via the Arduino's Serial Monitor.
Step 5: Display Enclosure
We will not delve into the details on building the display enclosure here. We used a 2mm thick blue tinted acrylic strip for the display front protective cover which is bent using a self-made strip heater and another black opaque acrylic strip for the back cover. The LED Matrix Driver Modules are secured with ¾ inch stand-offs to the back cover and we managed to place the micro-controller and Bluetooth wireless Serial Port Module below them. The result is a compact 7 LED Matrix Scrolling Text Display controlled via Bluetooth.
Step 6: A Shorter Scrolling Text Display
Thinking of building a shorter Scrolling Text Display? As the display is make up of chain-able Bi-color LED Matrix Driver Modules, it is quite easy to adapt this project to build a longer or shorter display.
You may view the following YouTube video to see how a Scrolling Text Display is built using only 4 of these Bi-color LED Matrix Modules and mounted directly onto an a chipKit UNO32 Arduino footprint compatible board. No interconnecting wires is required for this project and commands and messages are sent from the micro-controller via Serial Monitor.
Step 7: Newer Instructable to Build Another Scrolling Text Display
We have another newer instructable to build an Arduino Bluetooth 7 Bi-color LED Matrix long Scrolling Text Display that uses the Arduino hardware SPI lines for instruction and data transfer to the display which offers more impressive text scrolling effect. You may check it out here.