This project uses the MikroElectronica 8x8 LED Click to create the dot matrix animations. Any one of the four different animations is selectable via the buttons on the CleO50 display. The Mikroe 8x8 LED Click is connected the CleO IO hardware.
This project uses the following component(s) -
The Setup() routine sets up the CleO50 display and configures the MAX7219 LED driver on the 8x8 Click to "no decode" operation as shown in the below code snippet -
The loop() routine monitors the touch events until a particular animation button is selected. Each animation is an independent state which loops continuously until the user selects a new animation. The currently selected button is rendered as a "flat" button. The setjump() and longjump() functions are used to return to the loop() if a touch event is detected in any of the animation states.
Bitmaps for all the images displayed on the 8x8 LED matrix are stored as arrays in the Arduino program memory to save SRAM. Each bitmap is 8 bytes in length, with each bit corresponding to a LED in the matrix. For example, the bitmap for a Pacman image is shown below -
const uint8_t PROGMEM pacman =
Similarly fonts are also stored in the program memory, each character requires 8 bytes of storage. For example the letter 'X' looks like this: