Electronics > Projects, Designs, and Technical Stuff

Connecting 8x8 matrices to a 12x16 driver

<< < (4/4)

nick_d:
I like the cheap microcontroller idea. Naively you have an 8x24 display which would require 32 pins in order to light 24 leds at a time with a 1/8 duty cycle. However, I realized you could set up firstly an 8x8 matrix with one of your displays and 16 pins, then reuse this matrix by connecting the other display backwards and making use of tri state so as not to accidentally turn on display 2 while scanning display 1 and vice versa. How to connect the third one I am not sure, I think it would need another 8 pins? Thinking about this I decided to browse the Charlieplexing page on Wikipedia and this caught my eye:

--- Quote ---A balance between complexity and pin use can be achieved by Charlieplexing several pre-built multiplexed LED arrays together.[7]
--- End quote ---
There is even a citation so maybe read the cited source to get some ideas.
cheers, Nick

danners430:

--- Quote from: nick_d on February 07, 2019, 08:23:26 am ---I like the cheap microcontroller idea. Naively you have an 8x24 display which would require 32 pins in order to light 24 leds at a time with a 1/8 duty cycle. However, I realized you could set up firstly an 8x8 matrix with one of your displays and 16 pins, then reuse this matrix by connecting the other display backwards and making use of tri state so as not to accidentally turn on display 2 while scanning display 1 and vice versa. How to connect the third one I am not sure, I think it would need another 8 pins? Thinking about this I decided to browse the Charlieplexing page on Wikipedia and this caught my eye:

--- Quote ---A balance between complexity and pin use can be achieved by Charlieplexing several pre-built multiplexed LED arrays together.[7]
--- End quote ---
There is even a citation so maybe read the cited source to get some ideas.
cheers, Nick

--- End quote ---

I've had a read through it... and I'm not 100% sure how it works, even after having a read through the article and references... I've never really worked out Charlieplexing!!

With reference to the HT1632C, are there any decent libraries out there to get it working as expected? I've been struggling to work out how to properly drive it, and I'm tempted to abandon that idea right now xD

Failing a decent HT1632C library, I'm thinking I'll fall back on a nice, simple microcontroller... I'm thinking one of two options:
1. a Microchip PIC with sufficient pins to drive 8 PNP and 24 NPN transistors, and spare I/O for comms
2. a PICAXE (easier to program :D ) only driving the first 23 columns, since I wouldn't need the last column in everyday use, with the spare I/O pin used as an interrupt pin, which prompts the program to scan for a new serial input.

I'm not overly worried about data transfers temporarily stopping the matrix from working, since in the use-case I'm using them for (train describers on a model railway control panel) they would spend most of their time off anyway...

rhodges:

--- Quote ---With reference to the HT1632C, are there any decent libraries out there to get it working as expected?
--- End quote ---
:)
I think you have given me an idea for my next STM8 library.

Thanks for the idea :)

nick_d:
If you use a micro with the needed 32 pins, the problem goes away :) Some tips regarding the 8 PNP and 24 NPN:

- Use logic level FETs not bipolar. I did a design for my son using 2N7000s to drive an array of LEDs from my parts box and it worked very well. The reason to use FETs is you need no gate resistor.

- You don't need 32 transistors, only 8. Just drive the row outputs by transistor and the others from the PIC or similar output pin, if you use a resistor to set the brightness then you need 24 of those, but you can also use a micro with the appropriate current limiting to save parts (I do not really recommend this approach if the micro is a system controller but it may be appropriate if the micro is doing nothing but LEDs).

- You can also try without the 8 FETs, just driving the rows from your PIC. The danger here is brightness can vary depending on if you have say 1 LED turned on in the row vs 24. You may find this effect to be insignificant especially if you use the 24 brightness setting resistors. Or you could configure it for 8 LEDs at a time with 1/24 duty, it's a higher peak current but would not cause brightness variations if your output pins can pull low with 10x the current as they can pull high... I think this was the case with older PICs such as the 12C508.

- Since 8 x 2N7000 uses quite a bit of room, it would be a space saving to use an octal buffer in 74AC logic, such as 74AC541 from memory. This would do basically the same thing but in one 20 pin DIP IC package. A cool thing about this is they can latch, so you need only 24 pins in such case. The first 8 pins drive display 1 and occasionally the latch for just long enough to latch the data. The next 16 drive displays 2 and 3.

- You can use more or less latches depending on available pins. The easiest way though, is no doubt using a micro with 32 spare pins and sufficient drive capability to not need buffering at all.

cheers, Nick

danners430:
Hey guys, just a quick update:

I've decided to take the easy route and bought some HT1632C matrix controllers (£14 for 30!) - I'm just gonna use the Arduino libraries from Adafruit, and build my code on top of that - I'll also just use the chips from an Arduino board to keep it simple.

Since these matrices are so cheap, I'm also gonna use them for normal LEDs too - watch this space :-)

Sent from my ONEPLUS A3003 using Tapatalk

Navigation

[0] Message Index

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod