I figured (not knowing too much about electronics) that since the pin configuration of the matrix was the same, this wouldn't require too much require too much fiddling to get the White Matrix to work.
Here's what happens when I swap out the Green Matrix for the White Matrix on my breadboard: All of the LEDs on the White Matrix power on immediately when the power to the Arduino is turned on. When I start to send data to the max7219, the next Green array driven by the second max7219 displays the appropriate image, but in the White Matrix all of the LEDs remain on, but their brightness seems to dim slightly with the data changes. None of the LEDs ever turn off.
I have read that the max7219 cannot drive some higher-power White LEDs because of voltage requirement, but since all of the White Matrix seems to power up, I'm not sure that is the problem.
I'm using a 10k resistor between pin 16 and the power on the max7219. I have a 1uF capacitor between the power and ground. I have tried some higher resistors to no effect.
how do you have the white ones wired-- the same as the green ones? Have a look at the schematic diagrams on the datasheet pages, as the LED polarity is reversed on the white LEDs. The white LEDs also have a forward voltage drop of 3V, while the green ones are about 2V, so you will need to change the current set (ISet) resistor for the MAX chips driving the white array.
According to the data sheets, The White Matrix has the same pin configuration as the green.
The White Matrix is a Cathode Row/Anode Column configuration, while the Green Matrix is a Common Cathode configuration. I'm not exactly sure what the differences between the two are. (???)
If the polarity of the White LEDs is reversed, does that mean that the wiring should be reversed in some way?
I tried raising the resistor from 10k to 100k with a few steps between, but nothing about the way the White Matrix behaves has changed.
it just so happens that I have one anode row/cathode column configuration of the same matrix (sent as a sample).
The datasheet for that matrix shows the same polarity and pin configuration, in fact, it's the same gif as the Green Matrix:
very interesting. What happens if you put both displays in a breadboard and hook up position 1,1 with 5V supplied through a 330R resistor? I would try that, as you will know the pinouts are the same, and could substitute to get the correct resistor value for the desired brightness. With that you can calculate the required LED current, and in turn the required Iset value for the MAX7219.
BTW, looking at page 4 of the MAX data sheet, the ISet resistor value has to go down for more current, rather than up. I would be careful though, since according tot he graph at 3V out, the 10K is making the chip source 44ma.... not sure how that all adds up in the long run. Try a 20K pot in series with a 10K resistor on ISet, that way you can just visually find the value you want.
Well, turns out that the Matrix I thought was an Anode Row/Cathode Column was mismarked, it's actually a Cathode Row/Anode Column. So I just switched the polarity on the breadboard and it works fine.
Thanks, Daniel. I just wish I hadn't etched the boards already.
I really like the trick of using a potentiometer to arrive at the right resistance. Dialing it back and forth, I can see that there's a point were there's even brightness across the Matrix.
Is there a trick for figuring out what the resistance is exactly once I've found that sweet spot?
that's great that you figured it out. For the resistor value, I would just use a multimeter to check the resistance. If you measure
the voltage across the resistor and its resistance, then the current will be I= V/R.
D
PS:
I just wish I hadn't etched the boards already.
IF you make them round and add a little varnish, them make attractive beer coasters.
Hi! I am biginer but I want to drive with arduino uno 3 (or more) max7912 on 3 (or more) home made white matrix. I want to display scrolling text, clock with DS1307 (I have this one), temperature with analogic or digital input, PWM and intensity control, animation. Remote control or switches. Somebody can help me with a functional code? Please!!!