Saturday, October 29, 2022

GAMBAR MASJID P10 1 PANEL DENGAN NANO

 /* JUDUL : PROGRAM JAM DIGITAL P10 1 PANEL DENGAN NANO & RTC 3231

 * COPY RIGHT : BELAJAR TEHNOLOGI JAMAN NOW

 * PUBLISH : 13 MAR 2022

 * EMAIL   : aplikasihebatstudio@gmail.com

 * 

 * NANO - P10

 * ----------

 * PIN YANG DISAMBUNG

 * Arduino              P-10

 * D6          ->      A

 * D7          ->      B

 * D8          ->      SCLK

 * D9          ->      OE (ENABLE)

 * D11         ->      DATA

 * D13         ->      CLK

 * GND         ->      GND


RTC 3231

--------

 * GND        >>      Pin GND

 * VCC        >>      Pin 5V

 * SDA        >>      Pin SDA  (A4)

 * SCL        >>      Pin SCL (A5)

 * SQW        >>      tidak dihubungkan

 * 32K        >>      tidak dihubungkan


*/



#include <Wire.h> 

#include "RTClib.h" 

#include "DMD.h"        

#include "TimerOne.h"

#include "SystemFont5x7.h"

#include "angka6x13.h"

#include "angka_2.h"


#define DISPLAYS_ACROSS 1

#define DISPLAYS_DOWN 1


/***** P10 DISPLAY SETTING ***********************************/

DMD dmd( DISPLAYS_ACROSS , DISPLAYS_DOWN);


RTC_DS3231 rtc;



 // int tahun;                                                                              

  byte jam;

  byte menit;                                                                                                                                                                    //| 

  byte detik;

 


 

 void drawText(int kolom,int baris,String text);

   

void ScanDMD()

{

  dmd.scanDisplayBySPI();

}




void setup()

{  

  Timer1.initialize( 4000 );   // I find the default 5000 gives a visible flicker    

  Timer1.attachInterrupt( ScanDMD );  

  dmd.selectFont(SystemFont5x7);

  dmd.clearScreen( true );

   Wire.begin();

   rtc.begin();

 // just datatime  

 //  rtc.adjust(DateTime(2022, 03, 12, 12, 8, 0));


}



void loop()

{

  jam_besar(10);

  gambar_masjid();

  delay(5000);

  drawText1(32,16," ");

  delay(1000);

}



void jam_besar(int lama)

{


 dmd.clearScreen(true);

//dmd.drawBox(32,0,63,15,GRAPHICS_ON);


  for (int i=0;i<=lama;i++)

  {

   DateTime now = rtc.now();

int jam= now.hour();

int menit=now.minute();

int detik=now.second();

String waktu1=Konversi(jam)+":"+Konversi(menit)+":"+Konversi(detik);

String waktu2=Konversi(jam)+" "+Konversi(menit)+" "+Konversi(detik);;


    



dmd.selectFont(angka6x13); 

drawText(1, 0, Konversi(jam)); //koordinat tampilan

//titik 2

dmd.drawLine(16,4,16,5,GRAPHICS_NORMAL);

dmd.drawLine(15,4,15,5,GRAPHICS_NORMAL);


dmd.drawLine(16,9,16,10,GRAPHICS_NORMAL);

dmd.drawLine(15,9,15,10,GRAPHICS_NORMAL);


dmd.selectFont(angka6x13);

drawText(18, 0, Konversi(menit));


 delay(500);

dmd.drawLine(16,4,16,5,GRAPHICS_NOR);

dmd.drawLine(15,4,15,5,GRAPHICS_NOR);

dmd.drawLine(16,9,16,10,GRAPHICS_NOR);

dmd.drawLine(15,9,15,10,GRAPHICS_NOR);


 delay(500);

 }


 dmd.clearScreen(true);

}



void drawText(int kolom,int baris,String text)

{

int pj_text=text.length()+1;

char text_char[pj_text];

text.toCharArray(text_char,pj_text);

dmd.drawString(kolom,baris,text_char,pj_text,GRAPHICS_NORMAL);





///Konversi angka agar ada nol didepannya jika diawah 10

String Konversi(int sInput) {

  if (sInput < 10)

  {

    return"0" + String(sInput);

  }

  else

  {

    return String(sInput);

  }

}



void gambar_masjid()

{

int GRAPHICS_ON=GRAPHICS_NORMAL;

// dmd.clearScreen(true);

//dmd.drawBox(32,0,63,15,GRAPHICS_ON);

//gambar masjid

//kiri

dmd.drawLine(0,6,0,6,GRAPHICS_NORMAL);

dmd.drawLine(1,5,1,15,GRAPHICS_ON);

dmd.drawLine(2,0,2,13,GRAPHICS_ON);

dmd.drawLine(3,5,3,15,GRAPHICS_ON);

dmd.drawLine(4,6,4,6,GRAPHICS_ON);

//tengah


dmd.drawLine(15,0,15,0,GRAPHICS_ON);

dmd.drawLine(14,1,16,1,GRAPHICS_ON);

dmd.drawLine(13,2,17,2,GRAPHICS_ON);

dmd.drawLine(12,3,18,3,GRAPHICS_ON);

dmd.drawLine(11,4,19,4,GRAPHICS_ON);

dmd.drawLine(11,5,19,5,GRAPHICS_ON);

dmd.drawLine(12,6,18,6,GRAPHICS_ON);

dmd.drawLine(13,7,17,7,GRAPHICS_ON);

dmd.drawLine(5,8,25,8,GRAPHICS_ON);

dmd.drawLine(5,10,25,10,GRAPHICS_ON);

dmd.drawLine(5,11,7,11,GRAPHICS_ON);dmd.drawLine(9,11,14,11,GRAPHICS_ON);dmd.drawLine(16,11,21,11,GRAPHICS_ON);dmd.drawLine(23,11,25,11,GRAPHICS_ON);

dmd.drawLine(5,12,6,12,GRAPHICS_ON);dmd.drawLine(10,12,13,12,GRAPHICS_ON);dmd.drawLine(17,12,20,12,GRAPHICS_ON);dmd.drawLine(24,12,25,12,GRAPHICS_ON);

dmd.drawLine(5,13,6,13,GRAPHICS_ON);dmd.drawLine(10,13,13,13,GRAPHICS_ON);dmd.drawLine(17,13,20,13,GRAPHICS_ON);dmd.drawLine(24,13,25,13,GRAPHICS_ON);

dmd.drawLine(5,14,6,14,GRAPHICS_ON);dmd.drawLine(10,14,13,14,GRAPHICS_ON);dmd.drawLine(17,14,20,14,GRAPHICS_ON);dmd.drawLine(24,14,25,14,GRAPHICS_ON);

dmd.drawLine(5,15,25,15,GRAPHICS_ON);

//kanan

dmd.drawLine(26,6,26,6,GRAPHICS_ON);

dmd.drawLine(27,5,27,15,GRAPHICS_ON);

dmd.drawLine(28,0,28,13,GRAPHICS_ON);

dmd.drawLine(29,5,29,15,GRAPHICS_ON);

dmd.drawLine(30,6,30,6,GRAPHICS_ON);

//delay(2000);


}




void drawText1(int kolom,int baris,String text)

{

long RandNumX;

long RandNumY;


//RandNumX=random(kolom);

//RandNumY=random(baris);


for(int i=0;i<1500;i++)

{

RandNumX=random(kolom);

RandNumY=random(baris);

dmd.drawLine( RandNumX, RandNumY, RandNumX+2, RandNumY+2, GRAPHICS_NOR );

delay(1);

}

//dmd.drawString(kolom,baris,text_char,pj_text,GRAPHICS_NOR);

}






Pemrograman Running text P10 RGB dengan Arduino Nano

Pemrograman Running text P10 RGB dengan Arduino Nano PIN CONNECTION P10 RGB DENGAN ARDUINO NANO/UNO Source code arduino p10 RGB  #include &q...