Driving 7-segment displays from the I2C bus...

Grogster

Senior Member
Hi all :)

Does anyone know of any I2C chips that can be used to control two or three 7-segment LED displays?

I know of the more normal method, but I am thinking of an add-on later, which would use the I2C bus, and the LED modules would be on a front panel, not part of the main circuit-board.

Will look at anything, but with the range of chips you can get to do things these days, not sure exactly where to start looking - hoping someone here might have already done this, and can point me to an approriate I2C slave chip.

I would need any controller chip to:

- Allow me to set the slave address
- Be able to drive at least two or more 7-segment displays

Any pointers?

EDIT: I will be using a 20X2 chip as the controller/I2C master device.
 

westaust55

Moderator
The MCP23017 is a 2-port / 16 IO i2c chip.
Not dedicated to 7-seg display driving but could drive 2 digits and has been well covered on this forum

Also consider the SAA1064 4 digit LED i2c driver. Sure it has been covered on this forum previously
 
Last edited:

hippy

Ex-Staff (retired)
I2C Drivers for 8 x 8 LED and the like should do the job plus there are dedicated I2C 7-seg drivers. Not sure what will allow you to set the address but you can probably find devices which are manufactured with a choice of address.

Google is your friend :)
 

SAborn

Senior Member
I have a bunch of SAA1064 4 digit LED i2c driver and 4 digit displays if you need.
They are a great chip to use and the 4 digit displays are all in one block.
Not sure on what i have left but at least 10-20 sets of them, how many you need???
 

Grogster

Senior Member
The MCP23017 is a 2-port / 16 IO i2c chip.
Not dedicated to 7-seg display driving but could drive 2 digits and has been well covered on this forum

Also consider the SAA1064 4 digit LED i2c driver. Sure it has been covered on this forum previously
I have 10x MCP23017 I bought for another idea which never happened. :)
I will dig out the datasheet for this device and have a read.
Annoying that I did not think of that, but then, sometimes, a decent prod is what we all need to remember things! :D

Ten past two in the morning here - very tired, see ya all tomorrow.
*yawn*
 

Grogster

Senior Member
I have a bunch of SAA1064 4 digit LED i2c driver and 4 digit displays if you need.
They are a great chip to use and the 4 digit displays are all in one block.
Not sure on what i have left but at least 10-20 sets of them, how many you need???
OK, not quite made it to bed...

Interested in your idea, as the chip is specifically designed to do what I want.
Also interested in your 4-digit displays - are these designed to pair up with the SAA1064 chip?

Is there any steep learning curve talking to it via I2C?
You obviously have used them...

Only looking for a couple of sets, but if I was to order at all, I normally get batches of 10, depending on cost, just to make the freight more worthwhile.

EDIT: Are the displays LED or LCD? If LCD, is it backlit? I need it to show up in a dark-ish cupboard...
 
Last edited:

SAborn

Senior Member
Hi Groggy,

I had a look and i only have 10 sets left, and dont want to part with all of them.
I can get any amount of led displays but unable to get any more drivers.

I made 2 pcb's, one for the display and one for the driver and linked them together, one on top of the other.

This makes it hard to cascade them end for end, but i only needed 1 display at a time.

They are easy to use.

The brightness is setable in program.

The colons are not part of the I2C and can be driven external.
With a red filter infront they are a bright clear display.

They were originally used in ovens for temperture so i am told.

Send me an email if you are interested.
 

Attachments

westaust55

Moderator
Is there any steep learning curve talking to it via I2C?
For most devices it is relatively easy to write the necessary i2c based program code.
SInce new to i2c have you read the AXE110 i2c tutorial.
Plenty of sample code on the forum.
Usually just a case of reading the datasheet for the device in question and writing the correct program lines to send the data to or read from the slave device.
 

westaust55

Moderator
@SABorn,

A good write-up. :)

you should consider putting that description along with some example code and maybe a circuit diagram in the Finished Projects area for future ease of access.
 

Grogster

Senior Member
SInce new to i2c have you read the AXE110 i2c tutorial.
Several times! :D
It makes more sense the more times I read it, but I am still learning, and I HAVE been able to successfully write to the 24LC256 EEPROM device as outlined in the other thread.

My main point of confusion is in the slave address.
Some devices allow you to set the address, others don't.
For those that do, it only seems to be the last 4-bits of the 8-bit address, so this is where I am getting just a LITTLE confused, in the assigning of the first four bits and how and why.

Example - EEPROM slave address of 0000, command is %10100000, which works.
What are/how do the %1010 bits work?

Will read the i2c tutorial again - I am understanding it more, the more I re-read it.
I'm 95% there - just a little confusion with the bits making up the address.

Clear as mud?
 
Last edited:

vshortt

Senior Member
Several times! :D
It makes more sense the more times I read it, but I am still learning, and I HAVE been able to successfully write to the 24LC256 EEPROM device as outlined in the other thread.

My main point of confusion is in the slave address.
Some devices allow you to set the address, others don't.
For those that do, it only seems to be the last 4-bits of the 8-bit address, so this is where I am getting just a LITTLE confused, in the assigning of the first four bits and how and why.

Example - EEPROM slave address of 0000, command is %10100000, which works.
What are/how do the %1010 bits work?

Will read the i2c tutorial again - I am understanding it more, the more I re-read it.
I'm 95% there - just a little confusion with the bits making up the address.

Clear as mud?
Those first four bits are hardwired in the i2c device (24LC256 in your example) - so the "what are they" part is just that - they are hardwired bits. the "how do they work" part is that they work just like the four last bits, only you can't change them. It's just good to know that you can't change those bits on the i2c device - this is really only important when you have more than one i2c device.

Also, keep in mind that many devices have more that one slave address. For example, many LED drivers have a single address for direclty addressing each chip, but they also have an "all call" address so that you can address all of the chips at the same time if you have more than one on the bus. i2c addresses can get confusing to manage if you have several lots of i2c devices strung together.
 
Top