Questions tagged [max7219]

Refers to the MAX7219 chip, a multiplexing LED driver. Use this tag for discussing the MAX7219 chip.

The MAX7219 chip is designed to drive an 8x8 LED display quite simply. It automatically and rapidly turns on display segments by progressively activating a row in the display, with a certain pattern for each column. It then moves onto the next row, repeating rapidly so that all of the rows and columns appear to be on at once (or at least, as many as are wanted).

The rows are activated at around 800 Hz, which provides a flicker-free display. The output is also current-limited, avoiding the need for current-limiting resistors for the LEDs. The actual current is set by a single "current-set" resistor.

Suitable displays

Typically two different sorts of displays can be driven. One is an 8x8 "matrix" like this:

8x8 matrix

The MAX7219 chip is visible in the above photo, below the LED matrix.

The second type is a 7-segment display (the 8th row being the decimal place) like this:

7-segment display

In this case the MAX7219 chip is mounted on the back of the circuit board.


Communication

The Arduino controls the MAX7219 by using SPI, or just shifting bits out.

Data is sent using the following signals:

  • MOSI (Master Out, Slave In) from the Arduino to the Din (Data In) pin
  • SCK (Serial Clock) from the Arduino to the CLK (clock) pin
  • SS (Slave Select) from the Arduino to the LOAD pin
  • +5 V
  • Gnd

Interfacing with the 7-segment displays is easy, because the MAX7219 has inbuilt patterns for the standard digits (0-9, plus a few others like "H", "E", "L", "P", space, and "-") - that is, 16 standard characters. You can choose to use your own patterns if you want to display things like hexadecimal numbers.

To drive the 8x8 matrix a program would typically include a 8x8 font in the form of a table of appropriate bit patterns, usually stored in PROGMEM to save wasting RAM.


Daisy-chaining

The chip also has a Dout pin (data out), so that multiple chips can be daisy-chained. If more than 8 bits are clocked in, they start appearing on the Dout pin, which can be connected to the Din (data in) pin if the next chip in the chain.

In this way multiple displays can be connected up, making it possible to display whole sentences. For example:

Multiple 8x8 displays


References

41 questions
4
votes
2 answers

MAX7219 powered on via digital pin set to HIGH is not working good (I < 25mA)

I'm using 7-segment 8-digits MAX7219 eBuy module in my battery-supplied ATMega168P project to output some readings. MAX7219 in powerdown mode draws ~150uA (as stated in the datasheet) which is too much for me, because the rest of the circuit draws…
finnan
  • 302
  • 1
  • 2
  • 8
4
votes
1 answer

Fading the brightness of LEDs using MAX7219 and PWM

I am doing a project with bi-color led matrix 8x8 and MAX7219 as the LED driver. I want to implement a fading effect on the LEDs, like mixing the two colors by varying the individual duty cycles. My idea is the use of the Iset parameter; I would…
3
votes
1 answer

Problem with displaying true RMS of the main voltage using Arduino Uno and MAX7219

I want to display the true RMS of the main voltage using an Arduino and a MAX7219. At first, I used of circuit #1 (the following circuit) and the True RMS library. The circuit could successfully return the true RMS and print it on the Serial Monitor…
soheil
  • 59
  • 7
3
votes
1 answer

MAX7219 with Arduino UNO - LED control doesn't work

I'm very new to Arduino and this is my first project, so I may misunderstand something simple. As a hardware I'm using 4 MAX7219 connected to Arduino UNO and a single diod for tests. As a software I have Waoyda's LedControl 1.06 for MAX72XX. It…
JustLogin
  • 141
  • 5
2
votes
1 answer

DHT11's data on MAX7219 reads 0

I want print data from a DHT11 (temperature and humidity) on a MAX7219 LED display but it only shows 0. Serial monitor, on the other hand, shows both humidity and temperature which means that my circuit works just fine and there's something wrong…
Andrew Coz
  • 53
  • 4
2
votes
2 answers

DS3231 Clock project shows right date but wrong day

Heeya Guys! Today I created a project with the help of instructables site. I followed the on screen steps and everything. Uploaded the sketch and it works like a charm, but there's one problem. Everything works correctly but not the "Day", i.e as of…
2
votes
0 answers

Arduinino & Max7219

I'm using a MAX7219 and 6 (six) seven segment displays I used my own board and two purchased on ebay - no difference in operation. MOSI, and CLK are correct and verified with my scope (Tektronics) CS (chip select) is pin 22 (for no particular…
2
votes
1 answer

Arduino Uno powers off when circuit plugged in to +5V and GND pins

I have a max7219 driving an 8 digit 7 segment LED array with forward current of 20mA and typical forward voltage of 1.85V. I'm trying to power this through my arduino UNO (which itself is drawing power from USB), and have the max7219 chip's +5V and…
Ty Hayes
  • 121
  • 1
  • 4
1
vote
0 answers

dht11 data on ESP32 NTP clock (updated)

I'm trying to get my ESP32 internet clock to show temperature and humidity data from a dht11 sensor on a MAX7219 display but my code seems to have some issues. After verifying the code there are no errors, however instead of showing time,temperature…
Drew
  • 11
  • 2
1
vote
0 answers

How to create 2 individual daisy chains using the MAX7219 Module and Mega2560

I am using MAX7219 8 digit 7 segment displays with Arduino Mega2560. Now, I have to physically space out the displays far from each other. Hence, after a certain distance the displays on the far end start flickering. So, can we setup 2 individual…
Soumarya
  • 21
  • 1
1
vote
2 answers

Removing spaces between characters in MD_Parola

I'm using ESP8266 and Max7219 module (8*32) and MD_Parola library. To create my own font, at first I used of MDParolaFontEditor and created the following fonts. I edited file MD_MAX72xx_font.cpp using Arduino IDE and saved them as 150 and 151. I…
soheil
  • 59
  • 7
1
vote
0 answers

ESP8266 NODEMCU V3 web server with MAX7219 and DS3231 RTC

I am using ESP8266 NodeMCU with MAX7219 and a DS3231 teal time clock. I want to display the time and some text. The display is made of 4 FC16 modules which are made of 4 8x8 MAX7219 led matrix modules so it would be a 32x32 led matrix diplay divided…
Rehoboam
  • 27
  • 7
1
vote
1 answer

Arduino Nano, DS3231 RTC clock module and 4 cascaded FC-16 led matrix modules

Like I said in the title, I am using a DS3231 real time clock module and 4 cascaded FC-16 modules(they are basically MAX7219 led matrices based modules). My goal is to display a timetable, a schedule for a classroom on the matrices. The purpose of…
1
vote
1 answer

Making a timer accurate to 1 millisecond possible? Using MAX7219 LED

I'm using the Max7219 (8 digits, 7bits) led display to try and make a timer. I have downloaded an example code from the following site to set the led digits: https://www.brainy-bits.com/arduino-countdown-timer-using-the-max7219-display/ However the…
Lightsout
  • 177
  • 5
  • 13
1
vote
0 answers

MAX7219 only displaying on first digit

I'm trying to display a scrolling number on my MAX7219 display using the LedControl library, but can only ever get the first digit (digit 0) updating. When I reference digits 1-7 the 7 segments don't light up. This also happens even with the example…
Tanenthor
  • 141
  • 5
1
2 3