ICStation sent us a 8 Character, 7 Segment Display driven by a MAX7219. There’s no documentation for this display, but a bit of googling found a library and a sample sketch that activated 4 of the 8 characters.
The module has 5 connections, VCC (5v), GND, DIN (pin 12), CS (pin 10), and CLK (pin 11). The last 3 pins are arbitrary, so you can use any 3 digital outputs, just change the code appropriately.
The library is available at http://playground.arduino.cc/uploads/Main/LedControl.zip
Become the Maker you were born to be. Try Arduino Academy for FREE!
Full details on using the MAX7219 and 7 segment displays can be found at http://playground.arduino.cc//Main/LedControl and my customized sketch that activates all 8 segments can be found below:
//We always have to include the library
#include “LedControl.h”
/*
Now we need a LedControl to work with.
pin 12 is connected to the DataIn
pin 11 is connected to the CLK
pin 10 is connected to LOAD
We have only a single MAX72XX.
*/
LedControl lc=LedControl(12,11,10,1);
/* we always wait a bit between updates of the display */
unsigned long delaytime=250;
void setup() {
/*
The MAX72XX is in power-saving mode on startup,
we have to do a wakeup call
*/
lc.shutdown(0,false);
/* Set the brightness to a medium values */
lc.setIntensity(0,8);
/* and clear the display */
lc.clearDisplay(0);
}
/*
This method will display the characters for the
word “Arduino” one after the other on digit 0.
*/
void writeArduinoOn7Segment() {
lc.setChar(0,0,’a’,false);
delay(delaytime);
lc.setRow(0,0,0×05);
delay(delaytime);
lc.setChar(0,0,’d’,false);
delay(delaytime);
lc.setRow(0,0,0x1c);
delay(delaytime);
lc.setRow(0,0,B00010000);
delay(delaytime);
lc.setRow(0,0,0×15);
delay(delaytime);
lc.setRow(0,0,0x1D);
delay(delaytime);
lc.clearDisplay(0);
delay(delaytime);
}
/*
This method will scroll all the hexa-decimal
numbers and letters on the display. You will need at least
four 7-Segment digits. otherwise it won’t really look that good.
*/
void scrollDigits() {
for(int i=0;i<13 i=”” p=””> lc.setDigit(0,7,i,false);
lc.setDigit(0,6,i+1,false);
lc.setDigit(0,5,i+2,false);
lc.setDigit(0,4,i+3,false);
lc.setDigit(0,3,i+4,false);
lc.setDigit(0,2,i+5,false);
lc.setDigit(0,1,i+6,false);
lc.setDigit(0,0,i+7,false);
delay(delaytime);
}
lc.clearDisplay(0);
delay(delaytime);
}
void loop() {
writeArduinoOn7Segment();
scrollDigits();
}