#include <MD_Parola.h>
#include <MD_MAX72xx.h>
//#include <max7219.h>
#include <SPI.h>
//tipe hardware adalah PAROLA
//tipe hardware FC16 hanya untuk satu device 8x8
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 8
#define CS_PIN 3
#define CLK_PIN 13
#define DATA_PIN 11
#define kiri 5
#define kanan 6
#define rem 7
MD_Parola display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
int i = 0;
int j = 0;
int k = 0;
void panah_kiri();
void panah_kanan();
void stop_blink();
void rem_blink();
textEffect_t textefek[]=
{
PA_PRINT,
PA_SCAN_HORIZ,
PA_SCROLL_LEFT,
PA_WIPE,
PA_SCROLL_UP_LEFT,
PA_SCROLL_UP,
PA_OPENING_CURSOR
};
void setup() {
pinMode(kiri, INPUT);
pinMode(kanan, INPUT);
pinMode(rem, INPUT);
display.begin();
display.setTextAlignment(PA_CENTER);
display.setPause(1000);
display.setSpeed(20);
display.displayClear();
}
void loop() {
/*
if(tampil.displayAnimate())
tampil.displayText("yarn break 1", PA_CENTER, 30, 5, PA_SCROLL_UP, PA_SCROLL_UP);
*/
int tombolkiri = digitalRead(kiri);
int tombolkanan = digitalRead(kanan);
int tombolrem = digitalRead(rem);
//
if (tombolkiri ==1 && tombolkanan ==1)
{
Hati2_blink();
}
if (tombolkiri == 1){
j++;
if(j==1){
display.displayClear();
display.print(" ");
}
panah_kiri();
k=0;
}else
if (tombolkanan==1){
j++;
if(j==1){
display.displayClear();
display.print(" ");
}
panah_kanan();
k=0;
}else
if (tombolrem==1){
Stop_blink();
}else
{
j=0;
k++;
if (k==1){
display.displayClear();
display.print(" ");
}
if(k>10){
k=2;
}
display.setTextAlignment(PA_CENTER);
display.setPause(1);
display.setSpeed(10);
if (display.displayAnimate())
{
i=2;
display.displayText("Selamat berkendara",display.getTextAlignment(),display.getSpeed(),display.getPause(),textefek[i],textefek[i]);
display.displayReset();
}
}
}
// untuk panah kiri
void panah_kiri(){
display.setTextAlignment(PA_CENTER);
display.setPause(0);
display.setSpeed(20);
if (display.displayAnimate()){
i=2;
display.displayText("mau belok kiri",display.getTextAlignment(),display.getSpeed(),display.getPause(),textefek[i],textefek[i]);
display.displayReset();
}
}
//untuk panah kanan
void panah_kanan(){
display.setTextAlignment(PA_CENTER);
display.setPause(0);
display.setSpeed(20);
if (display.displayAnimate()){
i=2;
display.displayText("mau belok kanan",display.getTextAlignment(),display.getSpeed(),display.getPause(),textefek[i],textefek[i]);
display.displayReset();
}
}
//untuk indikasi stop
void Stop_blink(){
display.print("<stop>");
delay(100);
display.print(" ");
delay(100);
}
//untuk indikasi hati-hati
void Hati2_blink(){
display.print("Hati-Hati");
delay(100);
display.print(" ");
delay(100);
}