E-book Tutorial Membuat Jam Digital Dengan RTC

download E-book Tutorial Membuat Jam Digital Dengan RTC

of 34

Transcript of E-book Tutorial Membuat Jam Digital Dengan RTC

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    1/34

    Belajar Berkreasi

    MEMBUAT JAM DIGITAL

    DENGAN RTC DAN ATMEGA 8

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    2/34

    Membuat Jam Digital dengan Mudah

    Langkah Pertama Buatlah PCB dibawah ini

    Ukuran PCB : 17,1 cm x 6,1 cm

    Gambar Skema :

    IC ULN 2803

    IC RTC 3701

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    3/34

    Tata letak komponen :

    Komponen yang dibutuhkan :

    1. IC Regulator 7805

    2. Jack DC Female (optional kalau mau disambung kabel langsung juga bisa)

    3.

    Capasitor elco 100uF/12 V

    4. Saklar ON/OFF (optional jika tidak mau pakai saklar bisa langsung di jumper saja)

    5. Capasitor elco 100uF/12 V

    6.

    IC- ATMega 87.

    Chrystal 12 MHz

    8. IC ULN 2803

    9. Resistor 100 Ohm

    10.Transistor fcs 9013 (posisi tulisan depan kita kakinya E-B-C)

    11.Resistor 330 Ohm

    12.

    Seven segmen

    13.

    Push button kecil

    14.Batre kancing 3 V (ini bisa juga diganti 2 batre ABC 1,5 V di seri)

    15.

    IC RTC DS 3107

    16.

    Resistor 4 k 7

    17.Resistor 47 K

    18.Chrystal 32,678 MHz

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    4/34

    Cara Pembuatan :

    1.

    Cetak Layout PCB diatas dengan printer laser pada kertas foto / kertas kalender/kertas brosur atau kertas

    yang lain yang tipis dan mengkilap

    2.

    Siapkan PCB Polos anda, dan panaskan setrika. Setrikalah layout ini pada PCB sehingga jalur berwarna hitam

    akan nempel di PCB

    Ketika di setrika posisi Jalur ada di bawah (tidak seperti Gambar)

    3.

    Hasilnya setelah disetrika :

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    5/34

    4.

    Cek jalur yang tercetak, kalau putus, tebalkan dengan spidol permanen

    5. Kemudian larutkan dalam larutan Ferit Chlorida

    6. Bor PCB dengan mata bor 0,8 cm

    7. Pasang komponen pada PCB, mulailah dengan pemasangan Jumper/sambungan kabel diikuti dengan

    pemasangan komponen lainnya

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    6/34

    Jika semua komponen telah dipasang, kita lanjut ke pemrograman IC Atmega8

    Hubungkan IC anda dengan Downloader anda, disini saya contohkan menggunakan USBasp.

    Jika anda menggunakan downloader jenis yang lainnya, misalkan type serial, atau LPT

    sesuaikan dengan kaki downloader, kemungkinan antara downloader satu dengan yang

    lainnya posisi soketnya berbeda. Pastikan kaki : mosi, miso, sck, rst, vcc dan gnd tidak

    terbalik, karena dapat merusak IC anda

    Ini gambar USBasp yang saya gunakan ;

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    7/34

    INSTALASI USBASP

    1. Colokkan USBASP ke port USB Laptop

    2. Jika USBASP anda tidak dikenali, maka anda perlu instal drivernya

    3. Buka Device manager laptop anda

    4. Instal drivernya dengan cara klik kanan pada tulisan USBasp klik Update Driver Software

    USBASP tidak dikenali

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    8/34

    5. Akan ada tampilan seperti dibawah ini, pilih Browse mycomputer for driver software

    6.

    Browse driver USBasp anda lalu klik NEXT

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    9/34

    7. Jika Windows scurity mengingatkan klik aja Instal this driver software anyway

    8. Jika driver sukses di instal akan ada tulisan seperti ini ;

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    10/34

    9. Dan di Device manager sudah dikenali

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    11/34

    INSTALASI KHAZAMA AVR PROGRAMMER

    1. Double klik Installer Khazama

    2. Klik NextInstal Finish

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    12/34

    3. Tampilan Khazama AVR Programmer

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    13/34

    Konfigurasi PIN Atmega 8 ;

    Memasang USBasp pada Mikrokontrol

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    14/34

    Contoh pemasangan untuk memprogram IC mikro kontroller dengan USBASP

    Jika sudah di rangkai seperti gambar, maka mikrokontroller siap untuk diprogram

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    15/34

    Mengecek Sambungan dan rangkaian Mikrokontrol

    dengan Software Khazama AVR Programmer

    1. Pastikan USBASP telah terkoneksi dengan Mikrokontroller dan laptop dengan benar

    2. Buka software Khazama AVR Programmer

    3. Klik CommandRead Chip Signature

    4. Jika Rangkaian dan penyambungan anda benar, maka akan muncul tulisan seperti dibawah ini, jika

    masih ada error silahkan cek kondisi IC Mikro dan penyambungannya sudah betul belum.

    5.

    IC Mikrokontroller Siap untuk di Program

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    16/34

    Memasukkan Program kedalam Mikrokontroller

    1. Buka Khazama AVR Programmer

    Klik Tanda ini

    2. Buka filejam berada, pilihlah file yang ber ekstensi jam.Hexklik Open

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    17/34

    3. Lalu Klik Auto Program

    Sampai disini pemrograman Jam telah selesai, tapi tunggu dulu, kita harus mengatur fuse bit dari IC

    At mega8 agar menggunakan kristal 12 Mhz yang kita pasang, karena secara default, IC ini

    menggunakan Clock internal 1 MHz sehingga kalau tidak kita setting maka tampilan jam kita akan

    berkedip.

    CARA SETTING FUSE BIT PADA ATMEGA 8Perhatian !!! NOHON BERHATI-HATI DALAM SETTING FUSE BIT, LAKUKANLAH SESUAI DENGAN

    PETUNJUK YANG SAYA AJARKAN, KARENA KESALAHAN MENGATUR FUSE BIT DAPAT

    MENYEBABKAN IC ANDA MENJADI TIDAK DAPAT DIGUNAKAN LAGI !!

    1.

    Buka software Khazama

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    18/34

    2.

    Klik Commandfuse bit and Lock

    3. Klik Read ALL

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    19/34

    4. Geser Kebawah cari tampilan seperti di bawah :

    ext crystal/Resonator High Freq;Start-Up time 16 ck _ 4 ms;

    PASTIKAN ANDA MEMILIH DENGAN BENAR, KARENA KESALAHAN

    PEMILIHAN FUSE BIT LOCK DAPAT MERUSAK IC ANDA !!!

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    20/34

    5. Langkah selanjutnya klik write All:

    IC Mikrokontroller Atmega8 Siap untuk digunakan !!

    Pasang dengan hati-hati ke Rangkaian Jam digital anda, jangan sampai

    kaki-kakinya bengkok dan patah !!

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    21/34

    Cara setting Jam :

    Cara setting Jam ikuti petunjuk dibawah ini ;

    Tekan Tombol paling kiri (B) dan tekan reset A) (keduanya ditekan)

    lalu lepaskan reset (A).Tunggu beberapa saat... anda akan masuk ke mode setting jam

    Kemudian tekan B untuk mengurangi jam, dan tekan C untuk menambah Jam

    Tekan D untuk mengurangi menit, tekan E untuk menambah menit

    Lalu tekan Reset

    Selamat jam anda siap digunakan !!

    Semoga berhasil !!!

    Semua skema dan gambar PCB, source code diambil

    dari website www.inzarsalfikar.com

    A

    B C D E

    http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/
  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    22/34

    Modifikasi Jam Digital Dengan Tampilan LED

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    23/34

    Cetak modifikasi PCB jam seven segmen menjadi PCB jam besar dengan lampu LED

    Ukuran PCB : 17,1 cm x 6,1 cm

    Buatlah PCB tampilan seven segmen dengan LED

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    24/34

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    25/34

    Cara Penyambungan kedua PCB

    Sambungkan pin dengan huruf : fgabcde Pada PCB rangkaian jam dengan fgabcdePada PCB LED , dan sambungkan

    pin 654321 Pada PCB rangkaian jam dengan pin 654321Pada PCB LED.

    Jangan sampai kebalik urutannya !!

    Foto cara penyambungan kedua PCB

    654321

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    26/34

    Uji coba rangkaian (pastikan IC Atmega8 sudah di program seperti ekperimen diatas)

    Selamat berkarya...

    Terimakasih..

    SALAM EDUKASI

    Disusun Oleh : ROKHMAD ASTIKA TRIPRASETIA

    Phone / wahtsapp : 08157712604

    SPECIAL THANK FOR :Semua skema dan gambar PCB, source code diambil dari website www.inzarsalfikar.com

    http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/
  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    27/34

    Source code :

    Simpan dengan nama file : Jam.c

    /*****************************************************

    This program was produced by the

    CodeWizardAVR V1.25.3 Standard

    Automatic Program Generator

    Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

    http://www.hpinfotech.com

    Project :

    Version :

    Date : 3/6/2012

    Author : kuro

    Company : kurochan

    Comments:

    Chip type : ATmega8

    Program type : Application

    Clock frequency : 12.000000 MHz

    Memory model : Small

    External SRAM size : 0

    Data Stack size : 256

    *****************************************************/

    #include

    #include

    #define satu PORTD=0b00011000

    #define dua PORTD=0b11010110

    #define tiga PORTD=0b11011100

    #define empat PORTD=0b01111000

    #define lima PORTD=0b11101100

    #define enam PORTD=0b11101110

    #define tujuh PORTD=0b10011000

    #define delapan PORTD=0b11111110

    #define sembilan PORTD=0b11111100

    #define nol PORTD=0b10111110

    #define padam PORTD=0b00000000

    #define dot PORTD=0b00000001

    #define angka PORTD

    #define dig1 PORTB=0b00000010; delay_ms(1);#define dig3 PORTB=0b00000100; delay_ms(1);

    #define dig4 PORTB=0b00001000; delay_ms(1);

    #define dig5 PORTB=0b00010000; delay_ms(1);

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    28/34

    #define dig6 PORTB=0b00100000; delay_ms(1);

    #define dig2 PORTB=0b00000001; delay_ms(1);

    #define hmin PINC.1

    #define hplus PINC.2

    #define mmin PINC.3

    #define mplus PINC.0

    // I2C Bus functions

    #asm

    .equ __i2c_port=0x15 ;PORTC

    .equ __sda_bit=4

    .equ __scl_bit=5

    #endasm

    #include

    // DS1307 Real Time Clock functions

    #include

    // Declare your global variables here

    #include "kalkulasi.c"

    void main(void)

    {

    // Declare your local variables here

    // Input/Output Ports initialization

    // Port B initialization

    // Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

    // State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTB=0x00;

    DDRB=0x3F;

    // Port C initialization

    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T

    PORTC=0xFF;

    DDRC=0x00;

    // Port D initialization

    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTD=0x00;

    DDRD=0xFF;

    // Timer/Counter 0 initialization

    // Clock source: System Clock

    // Clock value: Timer 0 Stopped

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    29/34

    TCCR0=0x00;

    TCNT0=0x00;

    // Timer/Counter 1 initialization

    // Clock source: System Clock

    // Clock value: Timer 1 Stopped

    // Mode: Normal top=FFFFh

    // OC1A output: Discon.

    // OC1B output: Discon.

    // Noise Canceler: Off

    // Input Capture on Falling Edge

    // Timer 1 Overflow Interrupt: Off

    // Input Capture Interrupt: Off

    // Compare A Match Interrupt: Off

    // Compare B Match Interrupt: Off

    TCCR1A=0x00;

    TCCR1B=0x00;

    TCNT1H=0x00;

    TCNT1L=0x00;

    ICR1H=0x00;

    ICR1L=0x00;

    OCR1AH=0x00;

    OCR1AL=0x00;

    OCR1BH=0x00;

    OCR1BL=0x00;

    // Timer/Counter 2 initialization// Clock source: System Clock

    // Clock value: Timer 2 Stopped

    // Mode: Normal top=FFh

    // OC2 output: Disconnected

    ASSR=0x00;

    TCCR2=0x00;

    TCNT2=0x00;

    OCR2=0x00;

    // External Interrupt(s) initialization

    // INT0: Off

    // INT1: Off

    MCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization

    TIMSK=0x00;

    // Analog Comparator initialization

    // Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: Off

    ACSR=0x80;

    SFIOR=0x00;

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    30/34

    // I2C Bus initialization

    i2c_init();

    // DS1307 Real Time Clock initialization

    // Square wave output on pin SQW/OUT: Off

    // SQW/OUT pin state: 0

    rtc_init(0,0,0);

    if(hmin==0)

    {

    delay_ms(2000);

    while(1)

    {

    if(hmin==0){haur--;delay_ms(100);}

    if(hplus==0){haur++;delay_ms(100);}

    if(haur==24){haur=0;delay_ms(100);}

    if(mmin==0){minut--;delay_ms(100);}

    if(mplus==0){minut++;delay_ms(100);}

    if(minut==60){minut=0;delay_ms(100);}

    h10=haur/10;

    h1=haur%10;

    m10=minut/10;m1=minut%10;

    s10=0;

    s1=0;

    jam(h10,h1,m10,m1,s10,s1);

    rtc_set_time(haur,minut,0); //untuk menset jam 09:10:26

    //rtc_set_date(21,08,87); //untuk menset tanggal: 21 Agustus 1987

    }

    }

    while (1)

    {

    // Place your code here

    rtc_get_time(&h,&m,&s); //mendapatkan nilai jam, menit dan detik

    //rtc_get_date(&d,&mo,&y); //mendapatkan nilai tanggal, bulan dan tahun

    //lcd_gotoxy(0,0);

    //sprintf(temp,"Time %d:%d:%d",h,m,s);//lcd_puts(temp);//tampilkan jam di LCD baris pertama

    //lcd_gotoxy(0,1);

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    31/34

    //sprintf(temp,"Date %d-%d-%d",d,mo,y);

    //lcd_puts(temp);//tampilkan tanggal di LCD baris kedua

    h10=h/10;

    h1=h%10;

    m10=m/10;

    m1=m%10;

    s10=s/10;

    s1=s%10;

    jam(h10,h1,m10,m1,s10,s1);

    };

    }

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    32/34

    Simpan dengan nama : kalkulasi.cunsigned char h, m, s, d, mo, y;

    unsigned char haur,minut;

    unsigned char digit1,digit2,digit3,digit4,digit5,digit6;

    unsigned char h10,h1,m10,m1,s10,s1;

    void jam(unsigned char angka1,unsigned char angka2,unsigned char angka3,unsigned char

    angka4,unsigned char angka5,unsigned char angka6)

    {

    if(angka1==0){digit1=padam;}

    if(angka1==1){digit1=satu;}

    if(angka1==2){digit1=dua;}

    if(angka1==3){digit1=tiga;}

    if(angka1==4){digit1=empat;}

    if(angka1==5){digit1=lima;}

    if(angka1==6){digit1=enam;}

    if(angka1==7){digit1=tujuh;}

    if(angka1==8){digit1=delapan;}

    if(angka1==9){digit1=sembilan;}

    if(angka2==0){digit2=nol;}

    if(angka2==1){digit2=satu;}if(angka2==2){digit2=dua;}

    if(angka2==3){digit2=tiga;}

    if(angka2==4){digit2=empat;}

    if(angka2==5){digit2=lima;}

    if(angka2==6){digit2=enam;}

    if(angka2==7){digit2=tujuh;}

    if(angka2==8){digit2=delapan;}

    if(angka2==9){digit2=sembilan;}

    if(angka3==0){digit3=padam;}

    if(angka3==1){digit3=satu;}

    if(angka3==2){digit3=dua;}

    if(angka3==3){digit3=tiga;}

    if(angka3==4){digit3=empat;}

    if(angka3==5){digit3=lima;}

    if(angka3==6){digit3=enam;}

    if(angka3==7){digit3=tujuh;}

    if(angka3==8){digit3=delapan;}if(angka3==9){digit3=sembilan;}

    if(angka4==0){digit4=nol;}

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    33/34

    if(angka4==1){digit4=satu;}

    if(angka4==2){digit4=dua;}

    if(angka4==3){digit4=tiga;}

    if(angka4==4){digit4=empat;}

    if(angka4==5){digit4=lima;}

    if(angka4==6){digit4=enam;}

    if(angka4==7){digit4=tujuh;}if(angka4==8){digit4=delapan;}

    if(angka4==9){digit4=sembilan;}

    if(angka5==0){digit5=padam;}

    if(angka5==1){digit5=satu;}

    if(angka5==2){digit5=dua;}

    if(angka5==3){digit5=tiga;}

    if(angka5==4){digit5=empat;}

    if(angka5==5){digit5=lima;}if(angka5==6){digit5=enam;}

    if(angka5==7){digit5=tujuh;}

    if(angka5==8){digit5=delapan;}

    if(angka5==9){digit5=sembilan;}

    if(angka6==0){digit6=nol;}

    if(angka6==1){digit6=satu;}

    if(angka6==2){digit6=dua;}

    if(angka6==3){digit6=tiga;}

    if(angka6==4){digit6=empat;}

    if(angka6==5){digit6=lima;}

    if(angka6==6){digit6=enam;}

    if(angka6==7){digit6=tujuh;}

    if(angka6==8){digit6=delapan;}

    if(angka6==9){digit6=sembilan;}

    angka=digit1;dig1;

    angka=digit2;

    angka|=dot;dig2;

    angka=digit3;dig3;

    angka=digit4;

    angka|=dot;dig4;

    angka=digit5;dig5;

    angka=digit6;dig6;

    }

  • 7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC

    34/34

    CATATAN :

    FILE : jam.c dan file: kalkulasi.c harus di simpan dalam satu folder ketika

    dibuka dengan program CAVR.

    Compile menjadi program hex, lalu masukkan kedalam mikrokontroller.