http://trikkuampuh.blogspot.com/. Contoh laman HTML
SELAMAT DATANG DI BLOG KAMI "NIKI TRIK KULO"

Cara Membuat Papan Skor Menggunakan Arduino + 2 Panel P10


 Kali ini saya akan membagikan bagaimana cara membuat Papan Score Digital Menggunakan Arduino Uno dan akan di tampilkan di Panel P10 Single Colour, Disini saya menggunakan 2 panel 1 Merah dan 1 Hijau guna membedakan warna skor dari kedua tim. Pada tutorial kali ini saya menggunakan sistem tombol untuk sistem kontrol Skor nya seperti yang terlihat pada gambar yang terdiri dari Up Down Skor Kiri, Up Down Skor kanan dan Reset.  Bagi kalian yang ingin membuat atau mencoba percobaan kali ini kalian perlu menyiapkan bahan sebagai berikut:

1. Panel P10 Single Color 2 Buah
2. Arduino Uno
3. DMD Uno Shield
4. Tombol 5 Buah
5. Kabel Secukupnya


Setelah bahan lengkap silahkan dirangkai sesuai skema rangkaian dibawah ini:

Jika Rangkaian sudah selesai Buatlah Programnya seperti di bawah ini:



================================== SOURCE CODE ==================================
#include "DMD3.h"
#include "bmz5x7.h"
#include "bmz10x16.h"
DMD3 display (2,1);

char dmdBuff1[10];
char dmdBuff2[10];
int UpKiri     = A0;
int DownKiri   = A1;
int UpKanan    = A2;
int DownKanan  = A3;
int Reset      = A4;

int SkorKiri = 0;
int SkorKanan = 0;

void scan()
{
    display.refresh();
}

void setup() {
    Timer1.initialize(2000);
    Timer1.attachInterrupt(scan);
    Timer1.pwm(9,100);

    pinMode(UpKiri,   INPUT_PULLUP);
    pinMode(DownKiri, INPUT_PULLUP);
    pinMode(UpKanan,INPUT_PULLUP);
    pinMode(DownKanan,   INPUT_PULLUP);
    pinMode(Reset, INPUT_PULLUP);
    Serial.begin(9600);
}

void loop() {
    
    //Display Kiri
    sprintf(dmdBuff1, "%.2d", SkorKiri);
    display.setFont(bmz10x16);
    display.drawText(2, 0, dmdBuff1);

    if(SkorKiri >= 99){
      SkorKiri = 0;
    }
    if(SkorKiri <= 00){
      SkorKiri = 0;
    }
    //Tombol Kiri
    if(digitalRead(UpKiri)==LOW){
      delay(200);
      SkorKiri++;
    }
    
   if(digitalRead(DownKiri)==LOW){
    delay(200);
      SkorKiri--;
    }
    
    //Display Kanan
    sprintf(dmdBuff2, "%.2d", SkorKanan);
    display.setFont(bmz10x16);
    display.drawText(41, 0, dmdBuff2);

    if(SkorKanan >= 99){
      SkorKanan = 0;
    }
    if(SkorKanan <= 00){
      SkorKanan = 0;
    }
    //Tpmbol Kanan
    if(digitalRead(UpKanan)==LOW){
      delay(200);
      SkorKanan++;
    }
    
    if(digitalRead(DownKanan)==LOW){
    delay(200);
      SkorKanan--;
    }
    
    //Reset Skor
     if(digitalRead(Reset)==LOW){
     delay(200);
      SkorKiri  =0;
      SkorKanan =0;
    }

    //VS
    display.setFont(bmz5x7);
    display.drawText(26, 0, "V");
    display.drawText(33, 0, "S");

    //Panah Kiri
    display.drawLine(25,12,28,9,1);
    display.drawLine(25,12,28,15,1);

    //Pananh Kanan
    display.drawLine(35,9,38,12,1);
    display.drawLine(35,15,38,12,1);
}


Lalu UpLoad program tersebut ke Board Arduino yang sudah siap dipakai, Dan jika kalian belum mempunyai Library DMD3 dan Font 10x16 Silahkan Download Disini

Selamat Mencoba.....!!!!!

Cara Membuat NTP Clock 7 Segment 4 Digit Menggunakan Wemos D1 Mini ESP8266



Pada percoba'an kali ini saya akan membuat tutorial bagaimana cara membuat Jam NTP 7 Segment Menggunakan Wemos D1 Mini ESP8266. Sebelum Lanjut saya akan menjelasakan apa itu NTP. 
Network Time Protocol
 (NTP) adalah sebuah protokol yang digunakan untuk pengsinkronan waktu di dalam sebuah jaringan bisa pada jaringan LAN (Local Area Network) maupun pada jaringan internet dan untuk sinkronisasi jam-jam sistem komputer di atas paket-switching, variabel-latency jaringan data. Proses sinkronisasi ini dilakukan didalam jalur komunikasi data yang biasanya menggunakan protokol komunikasi TCP/IP. Jadi Jam ini akan secara otomatis sinkron dengan server yang kita gunakan, jadi tidak membutuhkan modul RTC lagi sebagai penyinkron waktunya. Bagi Kalian Yang ingin Membuat atau mencoba percoba'an kali ini kalian perlu menyiapkan bahan sebagai berikut:

1. Modul 7 Segment
2. Wemos D1 Mini
3. Kabel USB
4. Kabel Jumper Secukupnya

Setelah bahan lengkap silahkan dirangkai sesuai Skema rangkaian di bawah ini:



Jika Rangkaian sudah selesai dirangkai, buatlah program seperti  di bawah ini:



================================== SOURCE CODE ==================================
#include "NTPClient.h"
#include "ESP8266WiFi.h"
#include "WiFiUdp.h"

#define LATCH D4
#define CLK D3
#define DATA D2
  
byte digit[10]= {0xFD, 0x31, 0xDB, 0x7B, 0x37, 0x6F, 0xEF, 0x39, 0xFF, 0x7F};//1,5+dot
byte digit1[10]= {0xFC, 0x30, 0xDA, 0x7A, 0x36, 0x6E, 0xEE, 0x38, 0xFE, 0x7E};//1,5 Normal

const char *ssid     = "xxxxxxxx"; //Wifi yang Kalian Gunakan
const char *password = "xxxxxxxx"; //Password Wifi yang Kalian Gunakan

const long utcOffsetInSeconds = 25200;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "asia.pool.ntp.org", utcOffsetInSeconds);

int hh, mm, ss;

void setup() {
  WiFi.begin(ssid, password);

  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    Serial.print ( "." );
  }

  timeClient.begin();
  pinMode(LATCH, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(DATA, OUTPUT);
}

void loop() {
 timeClient.update();
  hh = timeClient.getHours();
  mm = timeClient.getMinutes();
  ss = timeClient.getSeconds();
  Serial.print(daysOfTheWeek[timeClient.getDay()]);
  Serial.print(", ");
  Serial.print(hh);
  Serial.print(":");
  Serial.print(mm);
  Serial.print(":");
  Serial.println(ss);

    int m1,m2,h1,h2;       
     m1 = mm % 10/1;
     m2 = mm % 100/10;
     h1 = hh   % 10/1;
     h2 = hh   % 100/10;
     
      digitalWrite(LATCH, LOW);
      shiftOut(DATA, CLK, MSBFIRST, ~digit[m1]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit[m2]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit[h1]);  
      shiftOut(DATA, CLK, MSBFIRST, ~digit[h2]);  
      digitalWrite(LATCH, HIGH);
      delay(500);
      digitalWrite(LATCH, LOW);
      shiftOut(DATA, CLK, MSBFIRST, ~digit1[m1]);  
      shiftOut(DATA, CLK, MSBFIRST, ~digit1[m2]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit1[h1]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit1[h2]); 
      digitalWrite(LATCH, HIGH);
      delay(500);
}


Lalu UpLoad Program Tersebut Ke Wemos D1 Mini Dengan Kabel USB yang sudah disediakan.

Selamat Mencoba.....!!!!!!

Cara Membuat NTP Clock Dengan panel P10 Menggunakan Wemos D1 Mini ESP8266


 Pada percobaan kali ini saya akan membuat tutorial bagaimana cara membuat Jam NTP P10 Menggunakan Wemos D1 Mini ESP8266. Sebelum Lanjut saya akan menjelasakan apa itu NTP. Network Time Protocol (NTP) adalah sebuah protokol yang digunakan untuk pengsinkronan waktu di dalam sebuah jaringan bisa pada jaringan LAN (Local Area Network) maupun pada jaringan internet dan untuk sinkronisasi jam-jam sistem komputer di atas paket-switching, variabel-latency jaringan data. 
Proses sinkronisasi ini dilakukan didalam jalur komunikasi data yang biasanya menggunakan protokol komunikasi TCP/IP. Jadi Jam ini akan secara otomatis sinkron dengan server yang kita gunakan, jadi tidak membutuhkan modul RTC lagi sebagai penyinkron waktunya. Bagi Kalian Yang ingin Membuat atau mencoba percoba'an kali ini kalian perlu menyiapkan bahan sebagai berikut: 

1. Modul P10 4 Buah
2. Wemos D1 Mini 
3. Kabel USB 
4. Kabel Jumper Secukupnya
5. Power Supplay 5V 20A 

Setelah bahan lengkap silahkan dirangkai sesuai Skema rangkaian di bawah ini:

Jika Rangkaian sudah selesai dirangkai, buatlah program seperti  di bawah ini:




================================== SOURCE CODE ==================================
#include "NTPClient.h"
#include "ESP8266WiFi.h"
#include "WiFiUdp.h"
#include "HJS589.h"

#include "fonts/Mono5x7.h"
#include "fonts/bmz15x32.h"
#include "fonts/bmz10x16.h"
#include "fonts/angka6x13.h"
#include "fonts/TimesNewRoman12.h"

// SETUP DMD HJS589
#define DispS_WIDE 4 
#define DispS_HIGH 1
HJS589 Disp(DispS_WIDE, DispS_HIGH);  // Jumlah Panel P10 yang digunakan (KOLOM,BARIS)

// HJS589 P10 FUNGSI TAMBAHAN UNTUK NODEMCU ESP8266

void ICACHE_RAM_ATTR refresh() { 
  
  Disp.refresh();
  timer0_write(ESP.getCycleCount() + 80000);  

}

void Disp_init() {
  
  Disp.start();
  noInterrupts();
  timer0_isr_init();
  timer0_attachInterrupt(refresh);
  interrupts();
  Disp.clear();
  
}

const char *ssid     = "xxxxxxxx";
const char *password = "xxxxxxxx";

const long utcOffsetInSeconds = 25200;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "asia.pool.ntp.org", utcOffsetInSeconds);

int hh, mm, ss;

void setup() {
  WiFi.begin(ssid, password);

  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    Serial.print ( "." );
  }

  timeClient.begin();
  //DMD
  Disp_init();
  
  Disp.setBrightness(50);
  Disp.setFont(Mono5x7);
  Disp.drawText(0,  0,"Connecting.");
  delay(500);
  Disp.drawText(0,  0,"Connecting..");
  delay(500);
  Disp.drawText(0,  0,"Connecting...");
  delay(500);
  Disp.drawText(0,  0,"Connecting....!");
  delay(500);
  Disp.clear();
}

void loop() {
 timeClient.update();
  hh = timeClient.getHours();
  mm = timeClient.getMinutes();
  ss = timeClient.getSeconds();
  Serial.print(daysOfTheWeek[timeClient.getDay()]);
  Serial.print(", ");
  Serial.print(hh);
  Serial.print(":");
  Serial.print(mm);
  Serial.print(":");
  Serial.println(ss);
    char  BuffH1[20];
    char  BuffH2[20];
    char  BuffM1[20];
    char  BuffM2[20];
    char  BuffD1[20];
    char  BuffD2[20];
    int s1,s2,m1,m2,h1,h2;
     s1 = ss % 10/1;        
     s2 = ss % 100/10;        
     m1 = mm % 10/1;
     m2 = mm % 100/10;
     h1 = hh   % 10/1;
     h2 = hh   % 100/10;
     
    sprintf(BuffD1, "%.1d", s1);
    sprintf(BuffD2, "%.1d", s2);
    sprintf(BuffM1, "%.1d", m1);
    sprintf(BuffM2, "%.1d", m2);
    sprintf(BuffH1, "%.1d", h1);
    sprintf(BuffH2, "%.1d", h2);
    
    Disp.setFont(bmz10x16);
  
    Disp.drawText(20,  0, BuffH2);
    Disp.drawText(32, 0, BuffH1);
    Disp.drawText(53, 0, BuffM2);
    Disp.drawText(65, 0, BuffM1);
    Disp.drawText(86, 0, BuffD2);
    Disp.drawText(98, 0, BuffD1);

    Disp.drawCircle(47,3,2);
    Disp.drawCircle(47,12,2);
    Disp.drawCircle(80,3,2);
    Disp.drawCircle(80,12,2);
    Disp.drawCircle(47,3,1);
    Disp.drawCircle(47,12,1);
    Disp.drawCircle(80,3,1);
    Disp.drawCircle(80,12,1);
    Disp.drawCircle(47,3,0);
    Disp.drawCircle(47,12,0);
    Disp.drawCircle(80,3,0);
    Disp.drawCircle(80,12,0);

    Disp.drawLine(0,0,0,15,1);
    Disp.drawLine(15,0,15,15,1);
    Disp.drawLine(0,0,15,0,1);
    Disp.drawLine(0,15,15,15,1);

    Disp.drawLine(2,2,4,4,1);
    Disp.drawLine(4,2,2,4,1);
    
    Disp.drawLine(11,2,13,4,1);
    Disp.drawLine(13,2,11,4,1);

    Disp.drawLine(2,11,4,13,1);
    Disp.drawLine(4,11,2,13,1);
   
    Disp.drawLine(11,11,13,13,1);
    Disp.drawLine(13,11,11,13,1);

    Disp.drawLine(6,6,9,9,1);
    Disp.drawLine(6,9,9,6,1);
    
    
    Disp.drawLine(112,0,112,15,1);
    Disp.drawLine(127,0,127,15,1);
    Disp.drawLine(112,0,127,0,1);
    Disp.drawLine(112,15,127,15,1);

    Disp.drawLine(114,2,116,4,1);
    Disp.drawLine(116,2,114,4,1);

    Disp.drawLine(123,2,125,4,1);
    Disp.drawLine(125,2,123,4,1);
    
    Disp.drawLine(114,11,116,13,1);
    Disp.drawLine(116,11,114,13,1);

    Disp.drawLine(123,11,125,13,1);
    Disp.drawLine(125,11,123,13,1);

    Disp.drawLine(118,6,121,9,1);
    Disp.drawLine(118,9,121,6,1);
}



Lalu UpLoad Program Tersebut Ke Wemos D1 Mini Dengan Kabel USB yang sudah disediakan. 
Bagi Yang Belum Mempunyai Library HJS589 dan NTPClient Silahkan Download.

Selamat Mencoba......!!!!!


Flag Counter