● online
- USB To RS485 High Speed Converter RS-485 RS 485 Ad....
- Kabel Jumper 10cm Dupont Pelangi 10 cm Female to M....
- RC Servo ARM Horn M3 Metal 25T MG995 MG946R MG996R....
- Dimmer AC 4000W 220 Volt 4000 Watt 220V + Casing A....
- Raspberry Pi Pico Microcontroller Board....
- Arduino Mega 2560 R3 - ATMEGA2560 Clone - CH340....
- Relay Module 1 Channel Modul Relay 5V 10A 1 Channe....
- ESP32 ESP-32 Wireless Module ESP32-S ESP-WROOM-32 ....
- 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
Apa itu relay? Relay merupakan sebuah saklar yang dikendalikan dengan aliran arus listrik. Pada relay terdapat 2 bagian utama... selengkapnya
Sensor suara merupakan sensor yang dapat mengubah besaran suara menjadi besaran listrik dimana nilai diperoleh dari besarnya gelombang suara... selengkapnya
Pulse sensor merupakan sensor yang berfungsi untuk mengukur banyaknya detak jantung dengan satuan menit atau BPM (Beats Per Minutes). Pada... selengkapnya
Sensor Inframerah atau infrared (IR) adalah sensor yang dapat mendeteksi hambatan menggunakan cahaya inframerah yang dipantulkan. Sensor ini memiliki... selengkapnya
Tidak jauh-jauh dari shield ESP-01 lagi, kali ini akan membahas module shield untuk relay. Cukup praktis dan hemat size... selengkapnya
Pada komponen tertentu dibutuhkan sebuah library agar komponen tersebut dapat berjalan sebagaimana mestinya. Apa itu library? library adalah sekumpulan... selengkapnya
Sensor DS18b20 merupakan sebuah sensor untuk mendeteksi suhu ruangan, namun bisa juga untuk suhu air tergantung dari jenis... selengkapnya
I2C merupakan sebuah modul komunikasi serial dua arah yang berfungsi untuk mengirim dan menerima data. Keduanya adalah SCL (Serial... selengkapnya
Telegram? ya dengan fitur robot chat di telegram kita bisa mengontrol device dengan mudah dan praktis. Misal kita kelupaan... selengkapnya
Alat dan Bahan Sensor Inframerah MLX90614 Arduino nano beli Deskripsi Secara internal, MLX90614 terdiri dari dua perangkat yakni... selengkapnya
This is a set of transmitter and receiver in one of the photoelectric sensor. Detection distance can be adjusted according… selengkapnya
Rp 37.500Temperature and humidity transmitter SHT20 sensor industrial grade high precision temperature and humidity monitoring Modbus RS485 (MD02) MODBUS debugging assistant… selengkapnya
Rp 96.800Micro SD Card Shield For WeMos D1 Mini TF WiFi ESP8266 Compatible SD Wireless Module For Arduino For WeMos D1… selengkapnya
Rp 8.900ESR 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.000Tang Crimping Press Skun Ratchet YTH SN-48B Model YTH SN-48B FOR NON INSULATED TERMINAL YTH SN-48B dengan mata Press 0.5… selengkapnya
Rp 150.000TECHNICAL SPECIFICATIONS: – Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz – 2GB LPDDR4-2400 SDRAM – 2.4… selengkapnya
Rp 1.200.000Penurun tegangan DC-DC ekonomis yang bisa distel tegangan output nya. Cocok untuk pemasangan variasi mobil dan sepeda motor, dijadikan charger… selengkapnya
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.600Bosan dengan modul arduino yang kalian punya, saatnya mencoba modul programmer yang lain yah ini dia RASPBERRY PI 4 COMPUTER… selengkapnya
Rp 1.570.000
Saat ini belum tersedia komentar.