Seven Segment display driver library published!

I've just about finished the first draft of my seven segment LCD/LED display driver. I decided to write my own having not been able to find anything similar on the internet.

I hope someone finds it useful or at least gives me a pointer as to whether the coding is any good!

I've uploaded it to google code:

http://code.google.com/p/arduino-seven-segment/

Welcome to the Arduino 7 Segment display library which provides easy control of 7 segment LCD and LED displays using a minimum of 2 digital outputs! The library only works with parallel displays, where each segment on the display has a single corresponding pin to control it. For example, if your screen can display 8888 but has less than 7 + 7 + 7 + 7 = 28 pins on the back, then this library is probably not for you. Additionally, if your display has a serial or SPI interface then this is also not for you.

This library can also be used to control LEDs which are not part of a 7 segment display. However, if you want to do this, there is a much better library that implements a variety of features, including PWM for LED brightness, visit Google Code Archive - Long-term storage for Google Code Project Hosting.

In order to control many LCD/LED segments using an Arduino (a typical 4 digit display has 32 segments) a display driver is required. These are integrated circuits which receive a serial input and only require a clock source, data, +5v and ground, with the AY0438 LCD driver requiring an additional Load input.

The supported display drivers are very basic in operation and simply remember the status of a data pin (high or low) every time the clock pin changes from high to low. The correct choice of driver will depend on whether you have an LED or LCD screen and how many outputs you require. It is also worth noting that you may cascade 2 AY0438 chips to give you control of up 64 LCD segments! The following display drivers are currently supported:

M5450 (LED, 34 outputs)
M5451 (LED, 35 outputs)
MM5452 (LCD, 32 outputs)
MM5453 (LCD, 33 outputs)
AY0438 (LCD, 32 outputs)

The AY0438 LCD driver can drive a standard 4 digit LCD screen perfectly. A typical 4 digit LCD display should be able to display 8.8.:8.8 - a digit, decimal point, a digit, decimal point and/or colon, digit, decimal point and a digit.

It may be possible for the other display drivers to duplex or multiplex but this is currently not implemented.

Thanks for posting your library. I'll check it out.