Tutorial Penggunaan Display MAX7219 dengan Arduino nano dan uno

Kegunaan MAX7219

MAX7219 adalah driver LED yang dirancang untuk mengontrol display 7-segment dan LED matrix (8×8) secara efisien. Chip ini banyak digunakan dalam proyek elektronik karena kemampuannya menghemat pin mikrokontroler (seperti Arduino) dengan komunikasi SPI.

Berikut beberapa kegunaan utama MAX7219:


1. Mengontrol 7-Segment Display

MAX7219 dapat mengendalikan hingga 8 digit 7-segment (common cathode) dengan mudah.
Aplikasi:

  • Jam digital
  • Penampil suhu/kelembaban
  • Counter (produksi, parkir, dll)
  • Voltmeter/Ampermeter digital

2. Mengendalikan LED Matrix 8×8

MAX7219 bisa digunakan untuk membuat:

  • Animasi sederhana (smiley, hati, dll)
  • Teks berjalan (scrolling text)
  • Game retro (Snake, Pong)
  • Status sistem (visualisasi sensor)

3. Mendukung Daisy-Chaining (Multiple Display)

MAX7219 bisa dihubungkan secara seri (daisy-chain) untuk mengontrol banyak modul dengan 3 pin Arduino saja.
Contoh:

  • Papan skor (scoreboard)
  • Tampilan informasi besar (stasiun, bandara)

Koneksi:

  • DOUT modul 1 → DIN modul 2
  • Set LedControl(11,13,10, **2**) untuk 2 display.

5. Pengaturan Kecerahan (Brightness Control)

MAX7219 memiliki 16 level kecerahan yang bisa diatur via software


6. Kompatibilitas dengan Berbagai Mikrokontroler

  • Arduino (Uno, Nano, Mega)
  • ESP8266/ESP32 (IoT projects)
  • Raspberry Pi (dengan library Python)

7. Aplikasi Industri & Edukasi

  • Alat ukur digital (multimeter, timer)
  • Panel kontrol mesin
  • Media pembelajaran elektronik

Keunggulan MAX7219:

✅ Mudah digunakan (hanya butuh library LedControl)
✅ Komunikasi SPI (cepat dan stabil)
✅ Dukungan multi-display (daisy-chaining)
✅ Hemat daya (shutdown mode tersedi

Cara Kerja MAX7219

MAX7219 adalah driver LED yang berfungsi sebagai antarmuka antara mikrokontroler (seperti Arduino) dan display 7-segment atau LED matrix (8×8). Chip ini menggunakan komunikasi SPI untuk menerima data dan mengatur nyala/mati LED secara efisien.

berikut penjelasan cara kerjanya

Blok Diagram MAX7219

Komponen utama:

  • Shift Register → Menyimpan data yang dikirim secara serial.
  • Decode Logic → Mengubah data biner ke format 7-segment (jika digunakan).
  • Digit Drivers → Mengontrol nyala/mati tiap digit (7-segment) atau baris/kolom (LED matrix).
  • Brightness Control → Mengatur intensitas cahaya LED via PWM.

Cara MAX7219 Mengontrol Display

a. Komunikasi SPI dengan Mikrokontroler

MAX7219 menggunakan 3 pin utama:

Proses pengiriman data:

  1. Mikrokontroler mengirim 16-bit data (2 byte) secara serial.
    • Byte 1: Alamat register (misal, 0x01 untuk Digit 1).
    • Byte 2: Data yang akan ditampilkan (misal, 0x05 untuk angka 5).
  2. MAX7219 menyimpan data di register internal.
  3. LED dinyalakan sesuai data.

b. Contoh Data untuk 7-Segment

Jika ingin menampilkan angka “3” di digit pertama:

Multiplexing & PWM untuk Kecerahan

  • Multiplexing: MAX7219 menyalakan satu baris/digit pada satu waktu, tetapi berganti sangat cepat (≥800Hz) sehingga mata manusia melihatnya menyala terus.
  • PWM (Pulse Width Modulation): Kecerahan diatur dengan mengubah duty cycle sinyal (0-15 level).

5. Mode Pengoperasian MAX7219

MAX7219 memiliki beberapa register kontrol:

Alamat RegisterFungsi
0x0X (1-8)Data digit 1-8 (7-segment) / baris 1-8 (LED matrix)
0x09Decode Mode (mengaktifkan decode BCD untuk 7-segment)
0x0AIntensity (kecerahan, 0x00-0x0F)
0x0BScan Limit (berapa digit/baris yang aktif)
0x0CShutdown (0 = mati, 1 = nyala)
0x0FDisplay Test (0 = normal, 1 = test semua LED)

Kesimpulan

MAX7219 bekerja dengan:

  1. Menerima data serial dari mikrokontroler.
  2. Menyimpan data di register internal.
  3. Mengatur nyala/mati LED via multiplexing & PWM.
  4. Mendukung 7-segment dan LED matrix.
  • text berisi teks yang berupa char * (char array)
  • align untuk posisi perataan text, ada tiga yaitu:
    • PA_LEFT
    • PA_CENTER
    • PA_RIGHT
  • speed untuk kecepatan animasi atau pergantian frame
  • pause untuk waktu jeda antara mulai animasi dan akhir animasi
  • effectIn untuk efek animasi masuk/mulai dan effectOut untuk efek animasi keluar/berakhir. Untuk mode animasi ini ada beberapa pilihan yaitu:
    • PA_NO_EFFECT
    • PA_PRINT
    • PA_SCROLL_UP
    • PA_SCROLL_DOWN
    • PA_SCROLL_LEFT
    • PA_SCROLL_RIGHT
    • PA_SPRITE
    • PA_SLICE
    • PA_MESH
    • PA_FADE
    • PA_DISSOLVE
    • PA_BLINDS
    • PA_RANDOM
    • PA_WIPE
    • PA_WIPE_CURSOR
    • PA_SCAN_HORIZ
    • PA_SCAN_HORIZX
    • PA_SCAN_VERT
    • PA_SCAN_VERTX
    • PA_OPENING
    • PA_OPENING_CURSOR
    • PA_CLOSING
    • PA_CLOSING_CURSOR
    • PA_SCROLL_UP_LEFT
    • PA_SCROLL_UP_RIGHT
    • PA_SCROLL_DOWN_LEFT
    • PA_SCROLL_DOWN_RIGHT
    • PA_GROW_UP
    • PA_GROW_DOWN

Library

Untuk memudahkan kita dalam mengoperasikan led matrix ini, kita memerlukan dua library yaitu MD_Parola dan MD_MAX72XX. Cara mendownload library nya bisa buka di arduino ide

Wiring diagram menggunakan arduino nano

Pin MAX7219Fungsi
DIN (Data In)Menerima data serial dari Arduino (pin D11).
CLK (Clock)Sinyal clock untuk sinkronisasi data (pin D13).
CS (Chip Select)Mengaktifkan chip saat data dikirim (pin D3).

Jika sudah disambungkan semua pada arduino langkah selanjutnya coding dengan code dibawah ini

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3

MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Setup for software SPI:
// #define DATA_PIN 2
// #define CLK_PIN 4
// MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup() {
  
  myDisplay.begin();
  //UNTUK MENGATUR INTESITAS CAHAYA
  myDisplay.setIntensity(15);
//umtuk mengatur kecepatan 
  myDisplay.setSpeed(11000);
 // myDisplay.displayClear();
  myDisplay.displayText("TEMINS STORE BUKA 08:00 TUTUP 21:00", PA_RIGHT, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  
}
void loop() {
  if (myDisplay.displayAnimate()) {
  myDisplay.displayReset();
  }
}

jika sudah mengisi code pada arduino nano program akan berjalan ke kiri jika kamu mau mengganti arah nya bise menggunakan berikut

  • PA_NO_EFFECT
  • PA_PRINT
  • PA_SCROLL_UP
  • PA_SCROLL_DOWN
  • PA_SCROLL_LEFT
  • PA_SCROLL_RIGHT
  • PA_SPRITE
  • PA_SLICE
  • PA_MESH
  • PA_FADE
  • PA_DISSOLVE
  • PA_BLINDS
  • PA_RANDOM
  • PA_WIPE
  • PA_WIPE_CURSOR
  • PA_SCAN_HORIZ
  • PA_SCAN_HORIZX
  • PA_SCAN_VERT
  • PA_SCAN_VERTX
  • PA_OPENING
  • PA_OPENING_CURSOR
  • PA_CLOSING
  • PA_CLOSING_CURSOR
  • PA_SCROLL_UP_LEFT
  • PA_SCROLL_UP_RIGHT
  • PA_SCROLL_DOWN_LEFT
  • PA_SCROLL_DOWN_RIGHT
  • PA_GROW_UP
  • PA_GROW_DOWN

myDisplay.displayText(“TEMINS STORE BUKA 08:00 TUTUP 21:00”, PA_RIGHT, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);

program yang diganti adalah program yang diatas yang seperti kami contohkan

WIRING DIAGRAM MENGGUNAKAN ARDUINO UNO

ARDUINO UNODOT MATRIX 4×1
5VVCC
GNDGND
13CLK
11DIN
10CS

Jika sudah melakukan penyambungan kepada max dan arduino uno langkah selanjutnya code arduino seperti dibawah ini

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4

#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

int display = 0;

void setup(void)
{
  P.begin();
}

void loop(void)
{
  if (P.displayAnimate()) {
    P.displayReset();
    switch (display) {
      case 0:
        P.displayText(" temins store ", PA_CENTER, 60, 0,PA_SCROLL_LEFT , PA_SCROLL_LEFT);
        display++;
    }
  }
}

Jika ingin mengganti efct pada max,lakukan cara seperti diatas

Kesimpulan tentang Display MAX7219:

Display MAX7219 adalah modul driver LED yang efisien dan populer untuk mengontrol matriks LED 7-segmen atau dot matrix. Berikut beberapa poin penting tentangnya:

  1. Kemudahkan Kontrol LED
    • MAX7219 memungkinkan kontrol beberapa digit LED atau matriks LED dengan antarmuka SPI yang sederhana, mengurangi jumlah pin microcontroller yang digunakan.
  2. Fleksibilitas Penggunaan
    • Dapat mengatur kecerahan (brightness), memindai digit secara otomatis, dan mendukung cascading (penghubungan beberapa modul secara seri).
  3. Kompatibilitas Tinggi
    • Banyak digunakan dengan Arduino, ESP8266, ESP32, dan microcontroller lainnya karena library yang tersedia (seperti LedControl dan MD_Parola).
  4. Aplikasi Luas
    • Cocok untuk proyek seperti jam digital, info display, animasi teks, atau sensor monitoring.
  5. Keterbatasan
    • Memiliki resolusi terbatas (biasanya 8×8 per modul), sehingga untuk tampilan lebih besar diperlukan cascading.

Kesimpulan Akhir:
MAX7219 adalah solusi hemat daya dan praktis untuk proyek berbasis LED, terutama bagi pemula maupun advanced users yang membutuhkan tampilan sederhana dengan kontrol mudah. Dengan dukungan library yang baik, modul ini tetap relevan untuk berbagai aplikasi elektronik.

Leave a Reply

Your email address will not be published. Required fields are marked *