Question

I'm using an Arduino Due, and 4x MAX7219 ICs to control a 16x16 matrix of LEDs. It works great, but there is just one LED that remains on (on row 0 col 15), even if I clear my display, or even manually turn it off.

I use the LED control library found on the Arduino playground.

How do I turn that one off?

Was it helpful?

Solution 3

Ow forgot to post the answer. apparently when you connect the led wrong it remains on, so that was the problem :D

so if your led remains on, check if it's connected right xD

OTHER TIPS

After a quick look the MAX7219 is controlled by an SPI bus. It is difficult for me to explain how a chip correctly communicating on the bus would give you this issue. If the whole quarter panel did not work then it would be different.

I would bet it is a wiring issue (I hate to say that because it is not helpful).

LedControl(int dataPin, int clkPin, int csPin, int numDevices);
LedControl(int ?, int ?, int ?, int 4);

Just checking the numDevices should be 4.

The first thing I would do is to replace the MAX7219 chips. If you have any backups I would swap them for the none working one. If you don't have backups switch a working one with the broken one.

The two question I have are:

  1. Does the Arduino "think" the LED is on?

  2. Does the MAX7219 think the LED is on

To answer the first question, I would edit the .h file for the LedControl class. I would make the array call status[64] public so you could view it in your client code.

byte status[64];

Move line 52 below 67. Now you can access the status array in your main code. It should look something like:

LedControl lc=LedControl(12,11,10,1);
for(int i; i <8 ; i++)
    Serial.println(lc.status[8*3+i])

It will be more difficult to answer the second question.

The reason might be to do with the Arduino Due only accept 3.3v and the MAX7219 require 5v so that might be the problem you are running into you need to google 5v logic to 3.3v logic

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top