int latchpin = 13; // connect to pin 1 on MIC2981
int clockpin = 12; // connect to pin 3 on MIC2981
int datapin = 11; // connect to pin 2 on MIC2981
int oen = 10; // output enable, connect to pin
int xx; // used to define Letter
int yy; // used define row of Letter
int rRow[8] = {0, 1, 2, 3, 4, 5, 6, 7}; // red columns of 8x8 display, connected to these pins on arduino
int gRow[8] = {14, 15, 16, 17, 18, 19, 8, 9}; // green columns on this 8x8 display, connected to these ins on arduino
// define all Letters here
#define A {B00111100,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010,B01000010}
#define B {B01111100,B01000010,B01000010,B01111100,B01000010,B01000010,B01000010,B01111100}
#define C {B00111110,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B00111110}
#define D {B01111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B01111100}
#define E {B01111110,B01000000,B01000000,B01111100,B01000000,B01000000,B01000000,B01111110}
#define F {B01111110,B01000000,B01000000,B01111100,B01000000,B01000000,B01000000,B01000000}
#define G {B00111100,B01000010,B01000010,B01000000,B01000111,B01000010,B01000010,B00111100}
#define H {B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010,B01000010}
#define I {B00111000,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000,B00111000}
#define J {B00011100,B00001000,B00001000,B00001000,B00001000,B01001000,B01001000,B00110000}
#define K {B01000100,B01001000,B01010000,B01100000,B01010000,B01001000,B01000100,B01000010}
#define L {B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01111110}
#define M {B01000100,B10101010,B10010010,B10010010,B10000010,B10000010,B10000010,B10000010}
#define N {B01000010,B01100010,B01010010,B01001010,B01001010,B01001010,B01000110,B01000010}
#define O {B00111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100}
#define P {B00111100,B01000010,B01000010,B01000010,B01111100,B01000000,B01000000,B01000000}
#define Q {B00111100,B01000010,B01000010,B01000010,B01001010,B01000100,B00111010,B00000000}
#define R {B00111100,B01000010,B01000010,B01000010,B01111100,B01000100,B01000010,B01000010}
#define S {B00111100,B01000010,B01000000,B01000000,B00111100,B00000010,B01000010,B00111100}
#define T {B11111110,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define U {B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100}
#define V {B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00100100,B00011000}
#define W {B10000010,B10000010,B10000010,B10000010,B10010010,B10010010,B10101010,B01000100}
#define X {B01000010,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B01000010}
#define Y {B10000010,B01000100,B00101000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define Z {B01111110,B00000010,B00000100,B00001000,B00010000,B00100000,B01000000,B01111110}
#define a {B00000000,B00000000,B00000000,B00111000,B01000100,B01000101,B01000101,B00111010}
#define b {B00000000,B00100000,B00100000,B00100000,B00111100,B00100010,B00100010,B00111100}
#define c {B00000000,B00000000,B00000000,B00111100,B01000000,B01000000,B01000000,B00111100}
#define d {B00000000,B00000100,B00000100,B00000100,B00111100,B01000100,B01000100,B00111100}
#define e {B00000000,B00000000,B00111000,B01000100,B01000100,B01111000,B01000000,B00111100}
#define f {B00011000,B00100100,B00100000,B00100000,B01110000,B00100000,B00100000,B00100000}
#define g {B00011100,B00100010,B00100010,B00011110,B00000010,B00000010,B00010010,B00001100}
#define h {B01000000,B01000000,B01000000,B01000000,B01111000,B01000100,B01000100,B01000100}
#define i {B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define j {B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B01010000,B00110000}
#define k {B00000000,B00000000,B01001000,B01010000,B01100000,B01100000,B01010000,B01001000}
#define l {B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000}
#define m {B00000000,B00000000,B00110100,B01001010,B01001010,B01001010,B01001010,B01001010}
#define n {B00000000,B00000000,B01111000,B01000100,B01000100,B01000100,B01000100,B01000100}
#define o {B00000000,B00000000,B00000000,B00011100,B00100010,B00100010,B00100010,B00011100}
#define p {B00000000,B00000000,B00011100,B00100010,B00100010,B00111100,B00100000,B00100000}
#define q {B00000000,B00111000,B01000100,B01000100,B00111100,B00000100,B00000100,B00000100}
#define r {B00000000,B00000000,B00111000,B01000000,B01000000,B01000000,B01000000,B01000000}
#define s {B00000000,B00111000,B01000100,B01000000,B00111000,B00000100,B01000100,B00111000}
#define t {B00100000,B00100000,B00100000,B01111000,B00100000,B00100000,B00100010,B00011100}
#define u {B00000000,B00000000,B00000000,B01000100,B01000100,B01000100,B01000100,B00111000}
#define v {B00000000,B00000000,B01000100,B01000100,B01000100,B01000100,B00101000,B00010000}
#define w {B00000000,B00000000,B00000000,B01000100,B01000100,B01010100,B01010100,B00101000}
#define x {B00000000,B00000000,B00000000,B00000000,B00100100,B00011000,B00011000,B00100100}
#define y {B00000000,B01000100,B01000100,B00111100,B00000100,B00000100,B00000100,B00111000}
#define z {B00000000,B00000000,B00000000,B01111100,B00001000,B00010000,B00100000,B01111100}
#define _ {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}
#define num_0 {B00111100,B01000110,B01001010,B01001010,B01001010,B01010010,B01100010,B00111100}
#define num_1 {B00001000,B00011000,B00001000,B00001000,B00001000,B00001000,B00001000,B00011100}
#define num_2 {B00111100,B01000010,B00000100,B00001000,B00010000,B00100000,B01000000,B01111110}
#define num_3 {B01111110,B00000010,B00000010,B00011100,B00000010,B00000010,B01000010,B00111100}
#define num_4 {B00000100,B00001100,B00010100,B00100100,B01000100,B01111110,B00000100,B00000100}
#define num_5 {B01111110,B01000000,B01000000,B00111100,B00000010,B00000010,B00000010,B01111100}
#define num_6 {B00111100,B01000000,B01000000,B01111100,B01000010,B01000010,B01000010,B00111100}
#define num_7 {B01111110,B00000010,B00000100,B00001000,B00010000,B00010000,B00010000,B00010000}
#define num_8 {B00111100,B01000010,B01000010,B00111100,B01000010,B01000010,B01000010,B00111100}
#define num_9 {B00111100,B01000010,B01000010,B01000010,B00111110,B00000010,B00000010,B00111100}
#define times {B00000000,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B00000000}
const int numLetters = 13; // number of Letters you want to display
byte Letters[numLetters][8]={,H,E,L,L,O,,W,O,R,L,D,_}; // order of Letters (array with numLetters across, 8 down)
void setup()
{
pinMode(latchpin, OUTPUT); // defining outputs
pinMode(clockpin, OUTPUT);
pinMode(datapin, OUTPUT);
pinMode(oen, OUTPUT);
pinMode(rRow[0], OUTPUT);
pinMode(rRow[1], OUTPUT);
pinMode(rRow[2], OUTPUT);
pinMode(rRow[3], OUTPUT);
pinMode(rRow[4], OUTPUT);
pinMode(rRow[5], OUTPUT);
pinMode(rRow[6], OUTPUT);
pinMode(rRow[7], OUTPUT);
pinMode(gRow[0], OUTPUT);
pinMode(gRow[1], OUTPUT);
pinMode(gRow[2], OUTPUT);
pinMode(gRow[3], OUTPUT);
pinMode(gRow[4], OUTPUT);
pinMode(gRow[5], OUTPUT);
pinMode(gRow[6], OUTPUT);
pinMode(gRow[7], OUTPUT);
}
void loop()
{
for (int xx=0; xx<numLetters-1; xx++) // loops over the Letters
{
for (int zz=0; zz<8; zz++) // shifts Letters over one byte per loop
{
for (int tt=0; tt<7; tt++) // determines how fast you want your message to scroll horizontally
{
for (int yy=0; yy<8; yy++) // scans the rows
{
byte currentLetter = Letters[xx][yy]; // these two bytes make later formulas easier to write
byte nextLetter = Letters[xx+1][yy];
digitalWrite(rRow[yy], HIGH); // turn on current row, change colors by using gRow or rRow
digitalWrite(latchpin, LOW);
shiftOut(datapin, clockpin, MSBFIRST, ((currentLetter<<zz)+(nextLetter>>8-zz))); // send row data to HEF4794
digitalWrite(latchpin, HIGH);
digitalWrite(oen, HIGH); // light up LEDs
delay(1);
digitalWrite(oen, LOW); // turn off LEDs
digitalWrite(rRow[yy], LOW); // turn off current row, change colors using gRow or rRow
}
delay(1);
}
}
}
}
Unfortunately, my webcam video is deciding to not work, so I can't upload a video of it 