Membuat Papan Score P10 2 Panel Menggunakan Arduino Uno Remote Wireless


 Pada percobaan kali ini saya akan membuat tutorial membuat Papan Score Digital Menggunakan Arduino Uno dan akan ditampilkan di Panel P10, untuk sensor yang digunakan untuk kendali wireless nya disini saya menggunakan Infrared Reciever yang biasa digunakan untuk Televisi, dan untuk remotenya saya menggunakan remote infrared yang universal biasa digunakan untuk car Mp3. 

Bagi Kalian Yang ingin Membuat atau mencoba percobaan kali ini kalian perlu menyiapkan bahan sebagai berikut: 

1. Modul P10 2 Buah
2. Arduino Uno 1 Buah
3. DMD Shield Uno 1 Buah Beli
4. Infrared Reciever 1 Buah
5. Kabel Secukupnya
6. Power Supply 5V
7. Remote Car Mp3 

Setelah semua bahan Siap rangkailah sesuai skematik dibawah ini:

Jika pengkabelan selesai dirangkai, kemudian buatlah program seperti dibawah ini:




================================== SOURCE CODE ==================================

#include "DMD3.h"
#include "bmz6x16.h"
#include "bmz5x7.h"
#include "bmz6x7.h"
#include "bmz4x6.h"
#include "bmz9.h"
#include "IRremote.h"
#define buzzer 12

DMD3 display (2,1);

int RECV_PIN = 14;

//RealPlayer
// ON/OFF = 1FE48B7
// REPEAT = 1FE58A7
// MUTE = 1FE7887
// PHOTO = 1FE807F
// MUSIC = 1FE40BF
// MOVIE =1FEC03F
// STOP = 1FE20DF
// UP = 1FEA05F
// PAUSE = 1FE609F
// LEFT = 1FEE01F
// ENTER = 1FE10EF
// RIGHT = 1FE906F
// DOWN = 1FED827
// V+ = 1FE30CF
// V- = 1FE00FF
// BACK = 1FEB04F
// NEXT = 1FEF00F
// PREV = 1FE708F
// FOR = 1FE9867


//CarMP3
//0 = FF6897
//1 = FF30CF
//2 = FF18E7
//3 = FF7A85
//4 = FF10EF
//5 = FF38C7
//6 = FF5AA5
//7 = FF42BD
//8 = FF4AB5
//9 = FF52AD
//CH- = FFA25D
//CH+ = FFE21D
//CH  = FF629D
// PREV = FF22DD
// NEXT = FF02FD
// PLAY = FFC23D
// - = FFE01F
// + = FFA857
// EQ = FF906F

int Kanan, Kiri;
int satuanKiri, satuanKanan, puluhanKiri, puluhanKanan;
int foulKiri, foulKanan;
int periode;
int nilaiKiri=00;
int nilaiKanan=00;
boolean st=0;
int kecerahan=50;

IRrecv irrecv(RECV_PIN);

decode_results results;

//Score
char dmdBuff1[10];
char dmdBuff2[10];
char dmdBuff3[10];
char dmdBuff4[10];
//Foul
char dmdBuff5[10];
char dmdBuff6[10];
//Periode
char dmdBuff7[10];
//Timer
char dmdBuff8[10];
char dmdBuff9[10];
void scan()
{
    display.refresh();
}

 
void setup() {
    Timer1.initialize(2000);
    Timer1.attachInterrupt(scan);
    Timer1.pwm(9,255);
    irrecv.enableIRIn();
    pinMode(A0, INPUT_PULLUP);
    pinMode(A1, INPUT_PULLUP);
    pinMode(A2, INPUT_PULLUP);
    pinMode(A3, INPUT_PULLUP);
    pinMode(A4, INPUT_PULLUP);
     pinMode(buzzer,OUTPUT);
   
    digitalWrite(buzzer,HIGH);
}

double prev=0,prev1=0;
long prev3=0,prev4=0;
int menit=0,detik=0,milidetik=0;
int setmenit=1;
long m,s,ms;
boolean p=0,flag=0;

void loop() {
  int mn,dt;
  Kiri=nilaiKiri;
  Kanan=nilaiKanan;

  satuanKiri=Kiri%10;
  puluhanKiri=Kiri/10;

  satuanKanan=Kanan%10;
  puluhanKanan=Kanan/10;
  
    if (irrecv.decode(&results)) {
      //Score
    if(results.value==0xFF10EF){ nilaiKiri++;delay(100);}// Tambah Score Kiri
    if(results.value==0xFF42BD){ nilaiKiri--;delay(100);}// Kurang Score Kiri
    if(results.value==0xFF5AA5){ nilaiKanan++;delay(100);}// Tambah Score Kanan
    if(results.value==0xFF52AD){ nilaiKanan--;delay(100);}//Kurang Score Kiri 

     //Foul
     if(results.value==0xFF6897){foulKiri++;delay(10);}
     if(results.value==0xFF30CF){foulKiri--;delay(10);}
     if(results.value==0xFF7A85){foulKanan++;delay(10);}
     if(results.value==0xFF18E7){foulKanan--;delay(10);}

     //Periode
     if(results.value==0xFF38C7){periode++;delay(10);}
     if(results.value==0xFF4AB5){periode--;delay(10);}

     //Timer
     if(results.value==0xFFA857){setmenit++;delay(10);}
     if(results.value==0xFFE01F){setmenit--;delay(10);}
     
     //Kecerahan
     if(results.value==0x1FEE01F){kecerahan++;delay(10);}
     if(results.value==0x1FE906F){kecerahan--;delay(10);}

     //Reset
     if(results.value==0xFF629D){
      setmenit = 00;
      nilaiKiri = 00;
      nilaiKanan = 00;
      foulKiri = 0;
      foulKanan = 0;
      periode = 0;
      st=0; 
      delay(10);}
     
     //Start
     if(results.value==0xFFC23D){
    if(st==0){ 
    }
    st=1;p=0;
      }
    if(results.value==0xFFB04F){ p=1;}// pause
    if(results.value==0xFF9867){ st=0;p=0;}// reset
    irrecv.resume(); // Receive the next value
    }
   if(setmenit>99)setmenit=0;
   if(setmenit<0 core="" if="" nilaikiri="" setmenit="99;"> 99) {
      nilaiKiri = 00;
    }

     if (nilaiKiri < 00) {
      nilaiKiri = 99;
    }
    
    if (nilaiKanan > 99) {
      nilaiKanan = 00;
    }

     if (nilaiKanan < 00) {
      nilaiKanan = 99;
    }

   //Foul
    if (foulKiri > 9) {
      foulKiri = 0;
    }

     if (foulKiri < 0) {
      foulKiri = 9;
    }
    
    if (foulKanan > 9) {
      foulKanan = 0;
    }

     if (foulKanan < 0) {
      foulKanan = 9;
    }

    //Periode
    if (periode > 9) {
      periode = 0;
    }

     if (periode < 0) {
      periode = 9;
    }

    //Timer
    if (menit > 99) {
      menit = 00;
    }

     if (menit < 00) {
      menit = 99;
    }

    //Kecerahan
    if (kecerahan > 255) {
     kecerahan = 0;
    }

     if (kecerahan < 0) {
      kecerahan = 255;
    }
 
    sprintf(dmdBuff1, "%.1d", puluhanKiri);
    sprintf(dmdBuff2, "%.1d", satuanKiri);
    sprintf(dmdBuff3, "%.1d", puluhanKanan);
    sprintf(dmdBuff4, "%.1d", satuanKanan);
  

    //Score
    display.setFont(bmz6x16);
    display.drawText(1, 0, dmdBuff1);
    display.drawText(9, 0, dmdBuff2);
    //display.drawText(25, 0, "0");
    //display.drawText(33, 0, "0");
    display.drawText(49, 0, dmdBuff3);
    display.drawText(57, 0, dmdBuff4);

    //Time
    sprintf(dmdBuff8, "%.2d", menit);
    sprintf(dmdBuff9, "%.2d", detik);
    display.setFont(bmz5x7);
    display.drawText(19, 0, dmdBuff8);
    display.drawText(30, 0, ":");
    display.drawText(34, 0, dmdBuff9);

    //Priode
    sprintf(dmdBuff7, "%.1d", periode);
    display.setFont(bmz6x7);
    display.drawText(29, 7, dmdBuff7);

    //Foul
    sprintf(dmdBuff5, "%.1d", foulKiri);
    sprintf(dmdBuff6, "%.1d", foulKanan);
    display.setFont(bmz4x6);
    display.drawText(22, 9, dmdBuff5);
    display.drawText(38, 9, dmdBuff6);

    
    display.drawLine(16,12,19,9);
    display.drawLine(16,12,19,15);
    display.drawLine(19,9,19,15);
    display.drawLine(18,10,18,14);
    display.drawCircle(17,12,0);

    display.drawLine(44,9,47,12);
    display.drawLine(44,15,47,12);
    display.drawLine(44,9,44,15);
    display.drawLine(45,10,45,14);
    display.drawCircle(46,12,0);
    
    if(st==0){
  prev=millis();
  menit=setmenit; 
  detik=0;
  milidetik=0; 
}
else{
  prev=millis();
  if (prev - prev1 >= 0) {
    if(p==0){
    milidetik--;
    if(milidetik<0 detik--="" detik="59;" if="" menit="" milidetik="99;">0)menit--;
      
      }  
    prev1 = prev;
    if(flag==1){
      if(milidetik>50)digitalWrite( buzzer, 1 );
      else {digitalWrite( buzzer, 0 );flag=0;}
      
    }
    }
  }
}
if(menit==0&&detik==0&&milidetik==0&&st==1) {
   
    digitalWrite(buzzer,LOW);
    waktuHabis();
    
    digitalWrite(buzzer,HIGH);
      setmenit = 00;
      //nilaiKiri = 00;
      //nilaiKanan = 00;
      //foulKiri = 0;
      //foulKanan = 0;
     // periode = 0;
      st=0;
   
}
}

void waktuHabis(){
    display.clear();
    display.setFont(bmz9);
    display.drawText(12,-1, "WAKTU");
    display.drawText(16,8, "HABIS");
    delay(1000);
    display.clear();
    delay(1000);
    display.drawText(12,-1, "WAKTU");
    display.drawText(16,8, "HABIS");
    delay(1000);
    display.clear();
    delay(1000);
    display.drawText(12,-1, "WAKTU");
    display.drawText(16,8, "HABIS");
    delay(1000);
    display.clear();
}

Setelah program jadi kemudian upload program tersebut ke Arduino. dan bagi yang belum mempunyai library Remote Disini , DMD3 Download Disini.

Selamat Mencoba.! dan silahkan dikembangkan lebih lanjut.


1 comment

Anonymous said...

They provide extensive variety|all kinds} of different fee and withdrawal choices from credit score and debit card choices to cryptocurrencies. Megaways from Big Time Gaming has turn out to be a extremely popular mechanic current years|in recent times|lately}. You have more probabilities of winning if there are more symbols on every reel. You can use wild symbols to switch any 카지노사이트 symbol or act as a joker. You may get an emblem of lemon on reels 1, three and 3, with a wild on reel 2. The wild will act as a lemon, supplying you with a three-of-a-kind win.

Dicky B_Mz. Powered by Blogger.