Here is a Arduino project I have been working on for building a clock type thing. I ported the alphabet to it minus 6 charitors. Here is the latest code.
// Pin enables
char segs[20][8]=
{
{1,1,1,0,1,1,1,0}, //A 0
{0,0,1,1,1,1,1,0}, //B 1
{1,0,0,1,1,1,0,0}, //C 2
{0,1,1,1,1,0,1,0}, //d 3
{1,0,0,1,1,1,1,0}, //E 4
{1,0,0,0,1,1,1,0}, //F 5
{1,1,1,1,0,1,1,0}, //g 6
{0,1,1,0,1,1,1,0}, //H 7
{0,0,0,0,1,1,0,0}, //I 8
{0,1,1,1,1,0,0,0}, //J 9
//k
{0,0,0,1,1,1,0,0}, //L 10
//m
{0,0,1,0,1,0,1,0}, //n 11
{1,1,1,1,1,1,0,0}, //O 12
{1,1,0,0,1,1,1,0}, //P 13
{1,1,1,0,0,1,1,0}, //q 14
{0,0,0,0,1,0,1,0}, //r 15
{1,0,1,1,0,1,1,0}, //S 16
{0,0,0,1,1,1,1,0}, //t 17
{0,0,1,1,1,0,0,0}, //u 18
//v
//w
//x
{0,1,1,1,0,1,1,0} //y 19
//z
};
void setup()
{
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void sevenSegWrite(byte digit) //Loop that retreves data from array
{
byte pin = 0;
for (byte segCount = 0; segCount < 8; ++segCount) {
digitalWrite(pin, segs[digit][segCount]);
++pin;
}
}
void loop()
{
PORTB |= _BV(PORTB0); //Pin HIGH
PORTB |= _BV(PORTB1);
PORTB |= _BV(PORTB2);
PORTB &= ~_BV(PORTB3); //Pin LOW
sevenSegWrite(2); //Wright char
delay(1);
PORTB |= _BV(PORTB0); //Multiplxed digit
PORTB |= _BV(PORTB1);
PORTB &= ~_BV(PORTB2);
PORTB |= _BV(PORTB3);
sevenSegWrite(18);
delay(1);
PORTB |= _BV(PORTB0);
PORTB &= ~_BV(PORTB1);
PORTB |= _BV(PORTB2);
PORTB |= _BV(PORTB3);
sevenSegWrite(11);
delay(1);
PORTB &= ~_BV(PORTB0);
PORTB |= _BV(PORTB1);
PORTB |= _BV(PORTB2);
PORTB |= _BV(PORTB3);
sevenSegWrite(17);
delay(1);
}
Have fun working out what it is saying and also suggested improvements and refinements are welcome. I also would like to thank Ash Evens and Vin Narwani for helping with the current software development.