● online
- ESR Meter Digital LCR-T4 Tester Transistor Diode M....
- LM35DZ Sensor Suhu - LM35....
- Kabel Jumper Arduino Dupont 20 cm Female to Male P....
- B0505S-1W 5V to 5V converter DC DC power module co....
- ESP32 ESP-32 Wireless Module ESP32-S ESP-WROOM-32 ....
- Dual Volt Amp Meter Digital Ampere Meter Voltmeter....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Female to F....
- Raspberry Pi 4 Model B 4GB Original UK E14 Raspi 4....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Membuat Running Text Menggunakan MAX7219 LED Matrix 32×8 Arduino
Siapa yang nggak kenal dengan running text? Running text merupakan sebuah teks berjalan pada sebuah papan yang berisi led-led yang disusun secara sistematis. Kegunaannya yaitu untuk untuk kebutuhan informasi seperti perkantoran, toko-toko, market dan sebagainya. Bukan teks berjalan saja bisa juga digunakan untuk yang lain seperti JWS, timer, papan skor, antrian dan masih banyak lagi.
Untuk kali ini kita akan belajar cara membuatnya menggunakan MAX7219 LED matrix 32×8 dan Arduino. Berikut ini beberapa komponen yang dibutuhkan :
- Arduino Uno R3, BELI
- MAX7219 LED matrix 32×8, BELI
- Kabel jumper, BELI
- Library MD_MAX72xx, download
- Library MD_Parola, download
Rangkaian

Keterangan :
- VCC dihubungkan ke 5V Arduino
- GND dihubungkan ke GND
- DIN dihubungkan ke pin 11
- CS dihubungkan ke pin 10
- CLK dihubungkan ke pin 13
Rangkai sesuai gambar dan keterangan gambar di atas. Selanjutnya silahkan masukkan library yang sudah di download.
Sketch Program
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// set to 1 if we are implementing the user interface pot, switch, etc
#define USE_UI_CONTROL 0
#if USE_UI_CONTROL
#include <MD_UISwitch.h>
#endif
// Turn on debug statements to the serial output
#define DEBUG 0
#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
// HARDWARE SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// SOFTWARE SPI
//MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
// Scrolling parameters
#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8; // change the effect
const uint8_t INVERT_SET = 9; // change the invert
const uint8_t SPEED_DEADBAND = 5;
#endif // USE_UI_CONTROL
uint8_t scrollSpeed = 40
; // default frame delay value
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 200; // in milliseconds
// Global message buffers shared by Serial and Scrolling functions
#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "WELCOME TO INDOMAKER.COM" };
bool newMessageAvailable = true;
#if USE_UI_CONTROL
MD_UISwitch_Digital uiDirection(DIRECTION_SET);
MD_UISwitch_Digital uiInvert(INVERT_SET);
void doUI(void)
{
// set the speed if it has changed
{
int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);
if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||
(speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
{
P.setSpeed(speed);
scrollSpeed = speed;
PRINT("\nChanged speed to ", P.getSpeed());
}
}
if (uiDirection.read() == MD_UISwitch::KEY_PRESS) // SCROLL DIRECTION
{
PRINTS("\nChanging scroll direction");
scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);
P.setTextEffect(scrollEffect, scrollEffect);
P.displayClear();
P.displayReset();
}
if (uiInvert.read() == MD_UISwitch::KEY_PRESS) // INVERT MODE
{
PRINTS("\nChanging invert mode");
P.setInvert(!P.getInvert());
}
}
#endif // USE_UI_CONTROL
void readSerial(void)
{
static char *cp = newMessage;
while (Serial.available())
{
*cp = (char)Serial.read();
if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE - 2)) // end of message character or full buffer
{
*cp = '\0'; // end the string
// restart the index for next filling spree and flag we have a message waiting
cp = newMessage;
newMessageAvailable = true;
}
else // move char pointer to next position
cp++;
}
}
void setup()
{
Serial.begin(57600);
Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");
#if USE_UI_CONTROL
uiDirection.begin();
uiInvert.begin();
pinMode(SPEED_IN, INPUT);
doUI();
#endif // USE_UI_CONTROL
P.begin();
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}
void loop()
{
#if USE_UI_CONTROL
doUI();
#endif // USE_UI_CONTROL
if (P.displayAnimate())
{
if (newMessageAvailable)
{
strcpy(curMessage, newMessage);
newMessageAvailable = false;
}
P.displayReset();
}
readSerial();
}
Upload sketch program di atas. Untuk merubah teksnya silahkan ubah pada kode di bawah ini.

Cukup sekian pembahasan kali ini, semoga berhasil.
Membuat Running Text Menggunakan MAX7219 LED Matrix 32×8 Arduino
Siapa yang kenal dengan modul SIM? dengan modul ini kita bisa berkomunikasi dengan SIM GSM baik untuk mengirim... selengkapnya
Sensor suara merupakan sensor yang dapat mengubah besaran suara menjadi besaran listrik dimana nilai diperoleh dari besarnya gelombang suara... selengkapnya
Kalau kamu baru mulai belajar Arduino, percobaan pertama yang paling wajib dicoba adalah menyalakan LED. Percobaan ini kelihatannya simpel, tapi... selengkapnya
Pada pembahasan sebelumnya kita sudah pernah membahas tentang penggunaan relay silahkan yang belum bisa lihat di sini. Pada artikel... selengkapnya
Keypad 4×4 berfungsi sebagai penghubung antara perangkat (mesin) elektronik dengan manusia atau dikenal dengan istilah Human Machine Interface (HMI). Papan... selengkapnya
Water level merupakan sensor yang berfungsi untuk mendeteksi ketinggian air dengan output analog kemudian diolah menggunakan mikrokontroler. Cara kerja... selengkapnya
Sensor PIR (HC-SR501) digunakan untuk mendeteksi pergerakan yang ada di depannya. Sensor PIR (HC-SR501) terbuat dari bahan pyroelectric yang... selengkapnya
Oke kali ini saatnya kita mulai running ke mesin CNC router engaraving langsung. Sebelumnya apakah anda sudah mempersiapkan bahan-bahanya?... selengkapnya
Sensor ultrasonik merupakan sensor yang dapat mendeteksi suatu benda yang ada di depannya dengan jarak tertentu. Prinsip kerja dari... selengkapnya
Mari kita belajar lagi, kali ini membahas sensor LDR. Dimana sensor ini nilainya akan berubah menyesuaikan cahaya yang diterima... selengkapnya
POTENSIOMETER LINEAR MONO 10K ohm
Rp 1.900Spesifikasi : – 16×2 – Warna Biru – Tegangan kerja : 5v Digunakan untuk keperluan display project seperti Arduino, Raspberry,… selengkapnya
Rp 17.000This is a set of transmitter and receiver in one of the photoelectric sensor. Detection distance can be adjusted according… selengkapnya
Rp 37.500Kabel Jumper Dupont Pelangi 30cm female to Female 1 lembar = 40 kabel
Rp 13.500Kabel jumper Dupont untuk jumper Arduino atau Raspeberry Pi 20 cm Female to female 1 lembar = 40 kabel
Rp 11.300Modul sensor tegangan AC bolak balik 1 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 21.000Specifications: Operating voltage: DC3-5V Operating current: less than 20mA Sensor Type: Analog Detection Area: 40mmx16mm Production process: FR4 double-sided HASL… selengkapnya
Rp 3.000Kinerja Produk: Warnanya coklat (amber), Goldfinger tape sticky baik, patuh, suhu tinggi, pelarut, tidak ada rembesan timah dan tidak ada… selengkapnya
Rp 11.900Spesifikasi: 20mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 219.000Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.000

Saat ini belum tersedia komentar.