#include <MD_Parola.h>  //deklarasi penggunaan library Parola
#include <SPI.h>        //deklarasi penggunaan library SPI

/*  Ketik atau hapus '//' sesuai dengan tipe Dot Matrix yg digunakan */
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW //pendefinisian tipe Generic

// Pendefinisian jumlah modul yg digunakan dan pin CS (Chip Select)
#define MAX_DEVICES 8 //pendefinisian total modul yg dikaskade
#define CLK_PIN    13 //pin CLK terhubung ke pin 13 pd Arduino
#define DATA_PIN   11 //pin DATA_PIN terhubung ke pin 11 pd Arduino
#define CS_PIN     10 //pin CS terhubung ke pin 10 pd Arduino

//Membuat nama Class 'layar' lalu dikaitkan dengan library MD_Parola
//MD_Parola layar = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
MD_Parola layar=MD_Parola(HARDWARE_TYPE,DATA_PIN,CLK_PIN,CS_PIN,MAX_DEVICES);

#define PB 7          //tombol PB terhubung ke pin 7 pada Arduino
#define Buz 4         //buzzer ke terhubung pin 4 pada Arduino

//membuat fungsi baru bernama 'nextCode' utk hentikan program
void nextCode() {
  while(digitalRead(PB) == HIGH){ } //tunggu hingga PB ditekan
  while(digitalRead(PB) == LOW)     //tunggu hingga PB dilepas
  { tone(Buz, 440); delay(20); }    //eksekusi selama PB ditekan
  noTone(Buz);                      //matikan buzzer
}

void setup() {
  pinMode(PB, INPUT);         //set pin PB sbg input
  pinMode(PB, INPUT_PULLUP);  //aktifkan resistor pull-up internal  
  layar.begin();              //inisialisasi dot matrix
  layar.setIntensity(0);      //set intensitas 
  layar.displayClear();       //matikan seluruh dot 
}

void loop() {
  nextCode();                     //tunggu tombol ditekan
  layar.setTextAlignment(PA_LEFT);//set ke posisi kiri
  layar.print("Hello");           //tampilkan 'Hello'
  nextCode();
  layar.setTextAlignment(PA_CENTER);//set ke posisi tengah
  layar.print("Hello");             //tampilkan 'Hello'
  nextCode();
  layar.setTextAlignment(PA_RIGHT);//set ke posisi kanan
  layar.print("Hello");            //tampilkan 'Hello'
  nextCode();
  layar.setTextAlignment(PA_CENTER);//set ke posisi tengah
  layar.setInvert(true);            //set mode invert
  layar.print("Hello");     
  nextCode();
  layar.setInvert(false);         //matikan mode invert
  layar.print("Hello");           //tampilkan 'Hello'
  nextCode();
  layar.displayClear();   //hapus penulisan pada Dot Matrix
  nextCode();
  layar.print("Hello");           //tampilkan 'Hello'
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
matrix1:V+
matrix1:GND
matrix1:DIN
matrix1:CS
matrix1:CLK
matrix1:V+.2
matrix1:GND.2
matrix1:DOUT
matrix1:CS.2
matrix1:CLK.2
gnd1:GND
bz1:1
bz1:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
gnd2:GND
matrix2:V+
matrix2:GND
matrix2:DIN
matrix2:CS
matrix2:CLK
matrix2:V+.2
matrix2:GND.2
matrix2:DOUT
matrix2:CS.2
matrix2:CLK.2