● online
- Max7219 Led Dot Matrix 32x8 Display Module For Ard....
- Kabel Jumper 20cm Dupont 20 cm Male to Male Pelang....
- LED 3mm Lampu LED 3 mm....
- Sensor Ultrasonik HC-SR04 HC SR04 Sensor Jarak Ult....
- Kabel Jumper Arduino Dupont 20 cm Female to Male P....
- Raspberry Pi 4 Model B 8GB Original UK E14 Raspi 4....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Female to F....
- RC Servo ARM Horn M3 Metal 25T MG995 MG946R MG996R....
- 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
Seperti yang kita ketahui, Raspberry Pi merupakan komputer mini yang powerful karena dengan ukurannya yang kecil tetapi bisa berfungsi layaknya... selengkapnya
IC AtMega328p pada Arduino Uno anda rusak? panas? atau anda ingin membuat sistem minimum sendiri? tenang solusinya adalah dengan... selengkapnya
Sedikit kembali ke awal pembelajaran, pembahasan kali ini diperuntukan untuk anda yang masih bingung untuk belajar Arduino dari mana.... selengkapnya
Untuk membuat sebuah perangkat otomatis (di artikel ini lampu LED) sebenarnya dapat menggunakan berbagai macam sensor misalnya sensor suhu,... selengkapnya
NodeMCU dikhususkan sebagai board yang dapat terhubung dengan jaringan internet (Wifi), jadi buat yang ingin belajar Internet of... selengkapnya
Sensor level A01 Series adalah perangkat yang digunakan untuk mengukur ketinggian permukaan benda padat atau cairan menggunakan gelombang ultrasonik. Sensor ini... selengkapnya
Pada artikel kali ini akan membahas tutorial mengakses sensor soil moisture pada Arduino. Nanti hasilnya akan ditampilkan dalam persen... selengkapnya
Oke Hallo semua pada kesempatan kali ini kita akan belajar mendeteksi kemiringan suatu benda. Sensor yang digunakan adalah tilt... selengkapnya
Sebagai seorang programmer tentu saja harus mempunyai kemampuan di bidang Bahasa pemograman karena landasan utama dalam membangun sebuah aplikasi... selengkapnya
Hallo pada artikel kali ini, saya akan memberikan cara menampilkan teks pada LCD dengan NodeMCU. Bagi anda yang sudah... selengkapnya
Support terus UKM indonesia dengan membeli produk-produk dalam negeri. Untuk kualitas tidak usah diragukan, udah kita tes QC dengan sangat… selengkapnya
Rp 8.500ESP-WROOM-32 is Powered by Espressif’s most advanced SoC, the ESP-WROOM-32 features high performance, a wide range of peripherals, Wi-Fi and… selengkapnya
Rp 38.400Kabel Jumper Dupont Pelangi 10 cm female to female 1 lembar = 40 kabel
Rp 9.000Description: TP5100 is a double switch buck 8.4V, single cell 4. 2V lithium battery charge management chip. Its ultra-compact QFN16… selengkapnya
Rp 10.600Item Deskripsi : This module performance is stable, measure the distance accurately. performance nearly the same as SRF05, SRF02 SRF05,… selengkapnya
Rp 13.900TECHNICAL SPECIFICATIONS: – Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz – 2GB LPDDR4-2400 SDRAM – 2.4… selengkapnya
Rp 940.000Spesifikasi: 50mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 75.000ESR meter/LCR meter dengan layar lebar lebih jelas dan mantap dan dengan tempat batre jd lebih rapih batre lebih aman… selengkapnya
Rp 131.000 Rp 134.000Spesifikasi: 20mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 219.000Menerima jasa cetak PCB FR2 (pertinax) / FR4 (double) single / double layer. Silahkan ke web kalkulator biaya cetak pcb… selengkapnya
Rp 1.000

Saat ini belum tersedia komentar.