Electronic – arduino – MAX7219 Arduino Issue with 7 Segment display

7segmentdisplayarduino

I have followed the tutorial here MAX7219

Now when i wire it up to a 4 Digit 7 Segment display, and run any code changing the display I get all the segments on all digits lit up

#include "LedControl.h" //  need the library
LedControl lc=LedControl(12,11,10,1); // lc is our object
// pin 12 is connected to the MAX7219 pin 1
// pin 11 is connected to the CLK pin 13
// pin 10 is connected to LOAD pin 12
// 1 as we are only using 1 MAX7219
void setup()
{
  // the zero refers to the MAX7219 number, it is zero for 1 chip
  lc.shutdown(0,false);// turn off power saving, enables display
  lc.setIntensity(0,8);// sets brightness (0~15 possible values)
  lc.clearDisplay(0);// clear screen
}
void loop()
{
  lc.setDigit(0,0,'0',false);
  delay(1000);
  lc.setDigit(0,0,'7',false);
  delay(1000);
}

The above code should clear the display so that all segments are off and change the 1st digit to a '0' then a '7' and loop.

No matter how I change the code this does not happen they just all stay lit up, I have even rewired a few times and tried a different IC.

Has anyone had any experience with this setup or these chips. I have read that 2 capacitors between the +5v and GND help so added them 10uF (Electrolytic) and 100nF. No yet still no change.

Any help or ideas would be great, I don't have a logic analyser to debug (Getting one at christmas!).

Thanks, Hughesy

Best Answer

+1 - you need a common-cathode display; and you don't need the apostrophes around the 7 or 0, for example you just use:

lc.setDigit(0,0,0,false);

Have written up a fair bit about the MAX7219 here.