loading

There are some ways how to store this kind of matrix in the Arduino code.

Like this:

byte image[] = {
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 1, 1, 0, 0, 0,
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 0, 1, 0, 0, 0,
    0, 0, 0, 1, 1, 1, 0, 0
}

or this:

byte image[] = {
    0b00001000,
    0b00011000,
    0b00001000,
    0b00001000,
    0b00001000,
    0b00001000,
    0b00001000,
    0b00011100
}

but what if you going to make an animation from a large number of frames?

Step 1: LED Matrix Editor

LED Matrix Editor - the online tool for animating your matrix.

It looks very simple, but it has some handy features:

  • Online, free and safe. No additional software required.
  • Toggle LEDs using a mouse
  • Toggle a whole row or column by clicking the appropriate matrix's index
  • Shift the matrix Up, Down, Left or Right via the single click
  • Invert or Clear matrix
  • Collect matrices in the bottom pane and then reorder them using the Drag-and-Drop
  • Update images as well as insert new or delete existing
  • Save images as a C code for Arduino
  • Use browsing history and save images as a link or bookmark, so you never lost your creations

Step 2: LED Matrix Arduino Code

Make your animation and then put generated code into the your Arduino project:

Like here:

#include <LedControl.h>

const int DIN_PIN = 7; const int CS_PIN = 6; const int CLK_PIN = 5;

const uint64_t IMAGES[] = { 0x3e2222223e3e0808, 0x3e22223e3e2a0808, 0x3e223e3e2a2a0808, 0xbe3e3e2a2a2a0808, 0xbe223e3e2a2a0808, 0xbe22223e3e2a0808, 0xbe2222223e3e0808, 0xbe22223e3e2a0808, 0xbe223e3e2a2a0808, 0xbebe3e2a2a2a0808, 0xbea23e3e2a2a0808, 0xbea2223e3e2a0808, 0xbea222223e3e0808, 0xbea2223e3e2a0808, 0xbea23e3e2a2a0808, 0xbebebe2a2a2a0808, 0xbea2be3e2a2a0808, 0xbea2a23e3e2a0808, 0xbea2a2223e3e0808, 0xbea2a23e3e2a0808, 0xbea2be3e2a2a0808, 0xbebebeaa2a2a0808, 0xbea2bebe2a2a0808, 0xbea2a2be3e2a0808, 0xbea2a2a23e3e0808, 0xbea2a2be3e2a0808, 0xbea2bebe2a2a0808, 0xbebebeaaaa2a0808, 0xbea2bebeaa2a0808, 0xbea2a2bebe2a0808, 0xbea2a2a2be3e0808, 0xbea2a2bebe2a0808, 0xbea2bebeaa2a0808, 0xbebebeaaaaaa0808, 0xbea2bebeaaaa0808, 0xbea2a2bebeaa0808, 0xbea2a2a2bebe0808, 0xbea2a2a2a2be1c08, 0xbea2a2a2a2a21c1c, 0xbea2a2a2a222001c, 0xbea2a2a22222001c, 0xbea2a2222222001c, 0xbea222222222001c, 0xbe2222222222001c, 0x3e2222222222001c, 0x3e2222222222001c, 0x3e22222222221c1c, 0x3e222222223e1c08 }; const int IMAGES_LEN = sizeof(IMAGES) / sizeof(uint64_t);

LedControl display = LedControl(DIN_PIN, CLK_PIN, CS_PIN);

void setup() { display.clearDisplay(0); display.shutdown(0, false); display.setIntensity(0, 10); }

void displayImage(uint64_t image) { for (int i = 0; i < 8; i++) { byte row = (image >> i * 8) & 0xFF; for (int j = 0; j < 8; j++) { display.setLed(0, i, j, bitRead(row, j)); } } }

int i = 0;

void loop() { displayImage(IMAGES[i]); if (++i >= IMAGES_LEN ) { i = 0; } delay(100); }

Step 3: LED Matrix Animation

Then connect Arduino and Matrix, upload code and have fun :-)

<p>Hi, </p><p>I just added option to save images as arrays of bytes.</p><p>So now the generated code should be compatible with all Arduinos.</p><p>Best regards</p>
<p>Any chance of adding a &quot;play animation&quot; option that plays all the frames in your browser so that you can check how it looks animated (i.e. your motor frames)?</p>
<p>hello</p><p>very nice, this appli is awesome.</p><p>thanks a lot</p><p>i ve tested with byte, it work very good.</p><p>the new icon you juste added are very nice (font) too.</p><p>But if we want to use them it will be long to delete the unnecesasry icon.</p><p>it s not possible to mixe icon from a link to an other.</p>
<p>Hello, <br>I saw that you had proposed a version 8 bits. Is this still planned ? This would be compatible with all versions of Arduino . It would be perfect for us. <br>But I do not know if you have the opportunity to do that. <br>In any case thank you to you.</p><p>Best regards</p><p>Thanks for all !</p>
<p>Just updated <a href="http://xantorohara.github.io/led-matrix-editor/#" rel="nofollow">it</a>.</p><p>New design, predefined fonts, links to related articles...</p>
<p>Thanks for your new version of LED Matrix Editor... </p><p>It's very fun project !</p><p>Best regards and thanks again !</p>
<p>Hi, guys</p><p>Thanks for your comments.</p><p>I see that some of you are experiencing problems with uint64_t data type.</p><p>If you want, I'll add the option to represent every image as a 8-byte array (so the both forms will be available).</p><p>What you think?</p>
<p>hi,</p><p>it s a good idea and </p><p>it will be very nice</p>
<p>Implemented.</p><p>Also I put code sample here:</p><p><em><a href="http://xantorohara.blogspot.com/2015/09/arduino-led-matrix-state-as-array-of.html" rel="nofollow">http://xantorohara.blogspot.com/2015/09/arduino-led-matrix-state-as-array-of.html</a></em></p>
<p>really nice</p><p>thanks for the job.</p><p>i will try this soon.</p>
Hello, <br>good job but i have a little problem with Arduino 1.05-r2 and this example ... <br>The number 0x------ is too long ! <br>problem with uint64_t... <br>Best regards
Hi, <br><br>Could you try the current version of the Arduino IDE (Arduino 1.6.5)?<br>It has a lot of improvements and updated AVR-GCC compiler.<br><br>It has 64-bit integer type:<br>typedef unsigned long long int uint64_t;<br><br>defined in this file:<br>&quot;C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\stdint.h&quot;<br><br><br>Let me know if it'll work or not for you.<br>
It's Arduino 1.05. i can't used Arduino 1.6.5 because i work with Arddublock plug'in. But i can see in the AVR-GCC.<br>Thanks !<br>Best regards !<br><br>
<p>Hello</p><p>i've add the lib : ledcontrol</p><p>but arduino don t compile.</p><p>i have a bug on first line after : const uint64_t IMAGES[]</p><p>he said : integer constant is too large for long type.</p><p>should i add an other lib and witch one ?</p><p>it will be great if it compile.</p>
Hi, karlt1<br><br>Which version of the Arduino IDE do you have?<br>I' using Arduino 1.6.5...<br><br>Maybe you have a -mint8 option enabled in your compiler?<br>
<p>Nice Project! It'll save me a bunch of time. Thanks so much.</p>
<p>really nice</p><p>i like this project.</p><p>thank you </p>
<p>Nice design.</p>

About This Instructable

5,710views

76favorites

License:

More by xantorohara:LED Matrix Editor 
Add instructable to: