membuat jam Digital Atmega8 dengan ukuran Seven Segment 1" rasanya cocok. kebetulan stok Atmega8A SMD masih ada, bisa untuk membuat jam Digital mini yang nantinya bisa dipasang di dinding. ada juga pemikiran nantinya aku masukan ke Jam Analog Dinding yang sudah rusak.
sebelum terjun ke pembuatan yang sesungguhnya seperti biasa aku simulasikan di Proteus. setelah software berjalan dengan baik baru melangkah ke perancangan PCB. berikut hasil uji Software menggunakan Proteus
Atmega8A masih mampu mendrive langsung Seven Segment dengan ukuran 1" ini, jadi kita tidak memerlukan transistor untuk penguat. akan tetapi cukup menambahkan resistor 8 buah dengan ukuran 100 - 500 Ohm, tergantung dari kecerahan yang diinginkan. pakai saja 100 Ohm untuk kecerahan yang normal.
dalam skem diatas resistor tidak digambarkan. silahkan modifikasi sendiri. ke 8 resistor dipasang di PORTB.
tentunya anda tidak harus memakai PCB double layer seperti diatas. silahkan memakai PCB single dengan konsekuensi ukuran PCB akan membengkak.
tidak juga harus memakai Atmega8A SMD, silahkan jika memakai Atmega8A yg biasa (DIP).
rasanya kurang menarik kalau hanya sebagai Jam Digital saja. untuk itu bisa ditambahkan Alarm yang bisa diprogram. untuk tanda detik memanfaatkan koma (dp) yang ada di Seven Segment. sehingga Seven Segment yang belakang harus dibalik, otomatis kaki-kaki Seven Segment polaritasnya (a,b,c,d,e,f,g,dp) harus disesuaikan juga.
berikut kode cara merakit jam digital atmega8 dalam bahasa Basic (BascomAVR)
'jam digital
'atmega8a
'by fauzi hp
Config Timer0 = Timer , Prescale = 64
On Ovf0 Tim0_isr
Enable Timer0
Enable Interrupts
'buat PORTC & PORTD sbg output
Config Portc = Input
Config Portb = Output
Portc = &B11
Ddrd = &B10011111
Portd = &B01000000
'pengaturan kaki RTC, menyesuaikan kaki RTC dgn kaki Mikrokontroler
Config Sda = Portc.2
Config Scl = Portc.3
'alamat device RTC, setiap perangkat I2C mempunyai alamat device berbeda-beda
'kebetulan untuk IC Jam RTC alamatnya "&HD0" untuk operasi Write dan &HD1 untuk
'operasi Read
Const Ds1307w = &HD0
Const Ds1307r = &HD1
Config Clock = User
'variabel2 yg diperlukan
Dim Weekday As Byte
Dim Digit As Byte
Dim Satdetik As Byte
Dim Puldetik As Byte
Dim Satmin As Byte
Dim Pulmin As Byte
Dim Satjam As Byte
Dim Puljam As Byte
Dim M0 As Bit
Dim M1 As Bit , M2 As Bit , M3 As Bit , M4 As Bit
Dim Jam As Byte , Jams As Byte
Dim Menit As Byte , Menits As Byte
Dim Ctrbzr As Word
Dim Bzr As Bit
Dim Aljam As Byte , Almen As Byte
Dim Disp As Bit
Dim Satmintmr As Byte , Pulmintmr As Byte
Dim Satjamtmr As Byte , Puljamtmr As Byte
Dim Alrmjam As Byte , Alrmmin As Byte
Dim Aljamadr As Byte , Alminadr As Byte
Dim Kedip As Byte
Dim Kdp As Bit
Dim Satsuhu As Byte , Pulsuhu As Byte , Suhu As Byte
Dim Temp As Single
Dim Vadc As Word
Dim Tamp As Bit
Dim Dlytemp As Word
Dim Jamsuhu As Word
Dim Komsuh As Byte
Dim Satkom As Byte , Pulkom As Byte
Alminadr = 1
Aljamadr = 2
If Pinc.0 = 0 Then
Time$ = "14:01:59"
Date$ = "12-10-15"
End If
'aktifkan detik di RTC
I2cstart
I2cwbyte Ds1307w
I2cwbyte 7
I2cwbyte &B00010000
I2cstop
Readeeprom Aljam , Aljamadr
Readeeprom Almen , Alminadr
Do
Loop
End
Tim0_isr:
'pemanggilan subrutin baca RTC
Gosub Getdatetime
'ambil nilai satuan & puluhan detik
Satdetik = _sec And &B00001111
Rotate _sec , Right , 4
Puldetik = _sec And &B00001111
'ambil nilai satuan & puluhan menit
Satmin = _min And &B00001111
Rotate _min , Right , 4
Pulmin = _min And &B00001111
'ambil nilai satuan & puluhan jam
Satjam = _hour And &B00001111
Rotate _hour , Right , 4
Puljam = _hour And &B00001111
'konversi data alarm jam ke bcd untuk ditampilkan di 7S
Alrmjam = Makebcd(aljam)
Satjamtmr = Alrmjam And &B00001111
Rotate Alrmjam , Right , 4
Puljamtmr = Alrmjam And &B00001111
'konversi data alarm menit ke bcd untuk ditampilkan di 7S
Alrmmin = Makebcd(almen)
Satmintmr = Alrmmin And &B00001111
Rotate Alrmmin , Right , 4
Pulmintmr = Alrmmin And &B00001111
'alarm 1
If Jam = Aljam Then
If Menit = Almen Then
Incr Ctrbzr
If Ctrbzr = 128 Then
Ctrbzr = 0
Toggle Bzr
End If
'bagian yg menyalakan buzer
If Bzr = 1 Then
Set Portd.7
Else
Reset Portd.7
End If
End If
End If
'mencocokan jam, menggunakan tombol yg terpasang di PORTB.0
If Disp = 0 Then
If Pinc.0 = 0 Then
If M0 = 0 Then
M0 = 1
Tamp = 0
Incr Jam
If Jam = 24 Then
Jam = 0
End If
'karena format data di RTC adalah BCD, maka ubah dulu ke BCD
Jams = Makebcd(jam)
'kemudian kirim data tersebut menggunakan protokol I2C (SCL & SDA)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 2 'alamat jam di RTC
I2cwbyte Jams
I2cstop
End If
Else
M0 = 0
End If
End If
'mencocokan menit, menggunakan tombol yg terpasang di PORTB.1
If Disp = 0 Then
If Pinc.1 = 0 Then
If M1 = 0 Then
Tamp = 0
M1 = 1
Incr Menit
If Menit = 60 Then
Menit = 0
End If
'karena format data di RTC adalah BCD, maka ubah dulu ke BCD
Menits = Makebcd(menit)
'kemudian kirim data tersebut menggunakan protokol I2C (SCL & SDA)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 1 'alamat menit di RTC
I2cwbyte Menits
I2cstop
End If
Else
M1 = 0
End If
End If
'menaikan timer
If Disp = 1 Then
If Pinc.0 = 0 Then
If M3 = 0 Then
M3 = 1
Incr Aljam
If Aljam = 24 Then
Aljam = 0
End If
Writeeeprom Aljam , Aljamadr
End If
Else
M3 = 0
End If
End If
'menurunkan timer
If Disp = 1 Then
If Pinc.1 = 0 Then
If M4 = 0 Then
M4 = 1
Incr Almen
If Almen = 60 Then
Almen = 0
End If
Writeeeprom Almen , Alminadr
End If
Else
M4 = 0
End If
End If
'tobol memilih jam/set timer
If Pind.6 = 0 Then
If M2 = 0 Then
M2 = 1
Toggle Disp
End If
Else
M2 = 0
End If
Incr Jamsuhu
If Jamsuhu = 2500 Then
'Toggle Tamp
If Tamp = 1 Then
Jamsuhu = 1800
Else
Jamsuhu = 0
End If
End If
'reset port scaning 7 segmen, biar tampilan halus/benar
Reset Portd.0
Reset Portd.1
Reset Portd.2
Reset Portd.3
'bagian yang menampilkan jam/menit/detik & suhu
If Disp = 0 Then
If Tamp = 0 Then
Select Case Digit
Case 0:
If Puljam = 0 Then
Portb = &B11111111
Else
Portb = Lookup(puljam , 7seg)
End If
Set Portd.0
Case 1:
Portb = Lookup(satjam , 7seg)
If Pinc.4 = 1 Then
Reset Portb.7
Else
Set Portb.7
End If
Set Portd.1
Case 2:
Portb = Lookup(pulmin , 7seg)
If Pinc.4 = 1 Then
Reset Portb.7
Else
Set Portb.7
End If
Set Portd.2
Case 3:
Portb = Lookup(satmin , 7seg)
Set Portd.3
End Select
End If
If Tamp = 1 Then
Select Case Digit
Case 0:
Portb = Lookup(pulsuhu , 7seg)
Set Portd.0
Case 1:
Portb = Lookup(satsuhu , 7seg)
Reset Portb.7
Set Portd.1
Case 2:
Portb = Lookup(satkom , 7seg)
Set Portd.2
Case 3:
Portb = &B00100111
Set Portd.3
End Select
End If
End If
'bagian yg menampilkan data alarm ketika menseting alarm
If Disp = 1 Then
Select Case Digit
Case 0:
Portb = Lookup(pulmintmr , 7seg)
Set Portd.0
Case 1:
Portb = Lookup(satmintmr , 7seg)
Set Portd.1
Case 2:
Portb = Lookup(puljamtmr , 7seg)
Set Portd.2
Case 3:
Portb = Lookup(satjamtmr , 7seg)
Set Portd.3
End Select
End If
'naikan digit,akan tetapi dibatasi sampai 4 Saja(sesuai Jumlah 7 Seg)
Incr Digit
If Digit = 4 Then
Digit = 0
End If
Return
'data konversi BCD to 7 segmen harus diletakan di ROM/FLASH Memory, untuk itu data
'ini ditulis diluar code utama
7seg:
Data &B11000000 'angka 0
Data &B11111001 'angka 1
Data &B10100100 'angka 2
Data &B10110000 'angka 3
Data &B10011001 'angka 4
Data &B10010010 'angka 5
Data &B10000010 'angka 6
Data &B11111000 'angka 7
Data &B10000000 'angka 8
Data &B10010000 'angka 9
'subrutin dibawah ini untuk pembacaan RTC, di tempatkan disini untuk kemudahan
'dan pemahaman program
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2crbyte Weekday , Ack
I2crbyte _day , Ack
I2crbyte _month , Ack
I2crbyte _year , Nack
I2cstop
Jam = Makedec(_hour)
Menit = Makedec(_min)
'_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
'_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
Setdate:
_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 4
I2cwbyte _day
I2cwbyte _month
I2cwbyte _year
I2cstop
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte _sec
I2cwbyte _min
I2cwbyte _hour
I2cstop
Return
'-------------------------------------------------------------------------------
silahkan anda copas kode MEMBUAT JAM DIGITAL ATMEGA8 , masukan ke BascomAVR. jangan lupa diseting mikrokontrolernya ke Atmega8. karena secara default BascomAVR menggunakan Attiny2313.
(Baca Juga : MEMBUAT JAM SHOLAT MINI)
(Baca Juga : MEMBUAT JAM DIGITAL LCD 16X2)
pada skema atau foto Jam Digital diatas menggunakan Seven segment ukuran 1" dengan tegangan 5V. jika anda hendak menggunakan seven segment ukuran besar dengan tegangan sevent segment yang lebih besar, maka anda harus menambahkan transistor penguat/buffer untuk mengendalikan sevent segmen. dan berikut skema penambahan jika menggunakan seven segmen besar>
pada gambar diatas adalah skema untuk Commond Anode. dengan rangkaian ini anda bisa mengendalikan seven segment yang lebih besar.
pada gambar diatas adalah skema untuk Pin Out seven segment dari a.....dp
pada kesempatan yang lain Jam Digital ini akan di update dengan fitur menampilkan suhu. sehingga display akan berganti2. menampilkan Jam & suhu bergantian, dengan waktu ganti yang bisa diubah-ubah.
jika ada pertanyaan silahkan komentar dibawah. terima kasih
sebelum terjun ke pembuatan yang sesungguhnya seperti biasa aku simulasikan di Proteus. setelah software berjalan dengan baik baru melangkah ke perancangan PCB. berikut hasil uji Software menggunakan Proteus
dalam skem diatas resistor tidak digambarkan. silahkan modifikasi sendiri. ke 8 resistor dipasang di PORTB.
skema Jam Digital Atmega8A
aku mengiginkan ukuran yang kompak dengan ukuran PCB yang menyesuaikan luas Seven Segment. mau tidak mau harus menggunakan PCB Double Layer. seperti biasa aku selalu merancang PCB memakai Proteus. berikut hasil rancanganku
Layout PCB Jam Digital Atmega8A
tidak juga harus memakai Atmega8A SMD, silahkan jika memakai Atmega8A yg biasa (DIP).
rasanya kurang menarik kalau hanya sebagai Jam Digital saja. untuk itu bisa ditambahkan Alarm yang bisa diprogram. untuk tanda detik memanfaatkan koma (dp) yang ada di Seven Segment. sehingga Seven Segment yang belakang harus dibalik, otomatis kaki-kaki Seven Segment polaritasnya (a,b,c,d,e,f,g,dp) harus disesuaikan juga.
tampak depan
sebaiknya dikasih soket untuk Seven Segmentnya. shingga bisa dilepas/pasang.
tampak belakang
tampak miring
dari depan
berikut kode cara merakit jam digital atmega8 dalam bahasa Basic (BascomAVR)
'jam digital
'atmega8a
'by fauzi hp
Config Timer0 = Timer , Prescale = 64
On Ovf0 Tim0_isr
Enable Timer0
Enable Interrupts
'buat PORTC & PORTD sbg output
Config Portc = Input
Config Portb = Output
Portc = &B11
Ddrd = &B10011111
Portd = &B01000000
'pengaturan kaki RTC, menyesuaikan kaki RTC dgn kaki Mikrokontroler
Config Sda = Portc.2
Config Scl = Portc.3
'alamat device RTC, setiap perangkat I2C mempunyai alamat device berbeda-beda
'kebetulan untuk IC Jam RTC alamatnya "&HD0" untuk operasi Write dan &HD1 untuk
'operasi Read
Const Ds1307w = &HD0
Const Ds1307r = &HD1
Config Clock = User
'variabel2 yg diperlukan
Dim Weekday As Byte
Dim Digit As Byte
Dim Satdetik As Byte
Dim Puldetik As Byte
Dim Satmin As Byte
Dim Pulmin As Byte
Dim Satjam As Byte
Dim Puljam As Byte
Dim M0 As Bit
Dim M1 As Bit , M2 As Bit , M3 As Bit , M4 As Bit
Dim Jam As Byte , Jams As Byte
Dim Menit As Byte , Menits As Byte
Dim Ctrbzr As Word
Dim Bzr As Bit
Dim Aljam As Byte , Almen As Byte
Dim Disp As Bit
Dim Satmintmr As Byte , Pulmintmr As Byte
Dim Satjamtmr As Byte , Puljamtmr As Byte
Dim Alrmjam As Byte , Alrmmin As Byte
Dim Aljamadr As Byte , Alminadr As Byte
Dim Kedip As Byte
Dim Kdp As Bit
Dim Satsuhu As Byte , Pulsuhu As Byte , Suhu As Byte
Dim Temp As Single
Dim Vadc As Word
Dim Tamp As Bit
Dim Dlytemp As Word
Dim Jamsuhu As Word
Dim Komsuh As Byte
Dim Satkom As Byte , Pulkom As Byte
Alminadr = 1
Aljamadr = 2
If Pinc.0 = 0 Then
Time$ = "14:01:59"
Date$ = "12-10-15"
End If
'aktifkan detik di RTC
I2cstart
I2cwbyte Ds1307w
I2cwbyte 7
I2cwbyte &B00010000
I2cstop
Readeeprom Aljam , Aljamadr
Readeeprom Almen , Alminadr
Do
Loop
End
Tim0_isr:
'pemanggilan subrutin baca RTC
Gosub Getdatetime
'ambil nilai satuan & puluhan detik
Satdetik = _sec And &B00001111
Rotate _sec , Right , 4
Puldetik = _sec And &B00001111
'ambil nilai satuan & puluhan menit
Satmin = _min And &B00001111
Rotate _min , Right , 4
Pulmin = _min And &B00001111
'ambil nilai satuan & puluhan jam
Satjam = _hour And &B00001111
Rotate _hour , Right , 4
Puljam = _hour And &B00001111
'konversi data alarm jam ke bcd untuk ditampilkan di 7S
Alrmjam = Makebcd(aljam)
Satjamtmr = Alrmjam And &B00001111
Rotate Alrmjam , Right , 4
Puljamtmr = Alrmjam And &B00001111
'konversi data alarm menit ke bcd untuk ditampilkan di 7S
Alrmmin = Makebcd(almen)
Satmintmr = Alrmmin And &B00001111
Rotate Alrmmin , Right , 4
Pulmintmr = Alrmmin And &B00001111
'alarm 1
If Jam = Aljam Then
If Menit = Almen Then
Incr Ctrbzr
If Ctrbzr = 128 Then
Ctrbzr = 0
Toggle Bzr
End If
'bagian yg menyalakan buzer
If Bzr = 1 Then
Set Portd.7
Else
Reset Portd.7
End If
End If
End If
'mencocokan jam, menggunakan tombol yg terpasang di PORTB.0
If Disp = 0 Then
If Pinc.0 = 0 Then
If M0 = 0 Then
M0 = 1
Tamp = 0
Incr Jam
If Jam = 24 Then
Jam = 0
End If
'karena format data di RTC adalah BCD, maka ubah dulu ke BCD
Jams = Makebcd(jam)
'kemudian kirim data tersebut menggunakan protokol I2C (SCL & SDA)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 2 'alamat jam di RTC
I2cwbyte Jams
I2cstop
End If
Else
M0 = 0
End If
End If
'mencocokan menit, menggunakan tombol yg terpasang di PORTB.1
If Disp = 0 Then
If Pinc.1 = 0 Then
If M1 = 0 Then
Tamp = 0
M1 = 1
Incr Menit
If Menit = 60 Then
Menit = 0
End If
'karena format data di RTC adalah BCD, maka ubah dulu ke BCD
Menits = Makebcd(menit)
'kemudian kirim data tersebut menggunakan protokol I2C (SCL & SDA)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 1 'alamat menit di RTC
I2cwbyte Menits
I2cstop
End If
Else
M1 = 0
End If
End If
'menaikan timer
If Disp = 1 Then
If Pinc.0 = 0 Then
If M3 = 0 Then
M3 = 1
Incr Aljam
If Aljam = 24 Then
Aljam = 0
End If
Writeeeprom Aljam , Aljamadr
End If
Else
M3 = 0
End If
End If
'menurunkan timer
If Disp = 1 Then
If Pinc.1 = 0 Then
If M4 = 0 Then
M4 = 1
Incr Almen
If Almen = 60 Then
Almen = 0
End If
Writeeeprom Almen , Alminadr
End If
Else
M4 = 0
End If
End If
'tobol memilih jam/set timer
If Pind.6 = 0 Then
If M2 = 0 Then
M2 = 1
Toggle Disp
End If
Else
M2 = 0
End If
Incr Jamsuhu
If Jamsuhu = 2500 Then
'Toggle Tamp
If Tamp = 1 Then
Jamsuhu = 1800
Else
Jamsuhu = 0
End If
End If
'reset port scaning 7 segmen, biar tampilan halus/benar
Reset Portd.0
Reset Portd.1
Reset Portd.2
Reset Portd.3
'bagian yang menampilkan jam/menit/detik & suhu
If Disp = 0 Then
If Tamp = 0 Then
Select Case Digit
Case 0:
If Puljam = 0 Then
Portb = &B11111111
Else
Portb = Lookup(puljam , 7seg)
End If
Set Portd.0
Case 1:
Portb = Lookup(satjam , 7seg)
If Pinc.4 = 1 Then
Reset Portb.7
Else
Set Portb.7
End If
Set Portd.1
Case 2:
Portb = Lookup(pulmin , 7seg)
If Pinc.4 = 1 Then
Reset Portb.7
Else
Set Portb.7
End If
Set Portd.2
Case 3:
Portb = Lookup(satmin , 7seg)
Set Portd.3
End Select
End If
If Tamp = 1 Then
Select Case Digit
Case 0:
Portb = Lookup(pulsuhu , 7seg)
Set Portd.0
Case 1:
Portb = Lookup(satsuhu , 7seg)
Reset Portb.7
Set Portd.1
Case 2:
Portb = Lookup(satkom , 7seg)
Set Portd.2
Case 3:
Portb = &B00100111
Set Portd.3
End Select
End If
End If
'bagian yg menampilkan data alarm ketika menseting alarm
If Disp = 1 Then
Select Case Digit
Case 0:
Portb = Lookup(pulmintmr , 7seg)
Set Portd.0
Case 1:
Portb = Lookup(satmintmr , 7seg)
Set Portd.1
Case 2:
Portb = Lookup(puljamtmr , 7seg)
Set Portd.2
Case 3:
Portb = Lookup(satjamtmr , 7seg)
Set Portd.3
End Select
End If
'naikan digit,akan tetapi dibatasi sampai 4 Saja(sesuai Jumlah 7 Seg)
Incr Digit
If Digit = 4 Then
Digit = 0
End If
Return
'data konversi BCD to 7 segmen harus diletakan di ROM/FLASH Memory, untuk itu data
'ini ditulis diluar code utama
7seg:
Data &B11000000 'angka 0
Data &B11111001 'angka 1
Data &B10100100 'angka 2
Data &B10110000 'angka 3
Data &B10011001 'angka 4
Data &B10010010 'angka 5
Data &B10000010 'angka 6
Data &B11111000 'angka 7
Data &B10000000 'angka 8
Data &B10010000 'angka 9
'subrutin dibawah ini untuk pembacaan RTC, di tempatkan disini untuk kemudahan
'dan pemahaman program
Getdatetime:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte _sec , Ack
I2crbyte _min , Ack
I2crbyte _hour , Ack
I2crbyte Weekday , Ack
I2crbyte _day , Ack
I2crbyte _month , Ack
I2crbyte _year , Nack
I2cstop
Jam = Makedec(_hour)
Menit = Makedec(_min)
'_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
'_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
Setdate:
_day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 4
I2cwbyte _day
I2cwbyte _month
I2cwbyte _year
I2cstop
Return
Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte _sec
I2cwbyte _min
I2cwbyte _hour
I2cstop
Return
'-------------------------------------------------------------------------------
silahkan anda copas kode MEMBUAT JAM DIGITAL ATMEGA8 , masukan ke BascomAVR. jangan lupa diseting mikrokontrolernya ke Atmega8. karena secara default BascomAVR menggunakan Attiny2313.
(Baca Juga : MEMBUAT JAM SHOLAT MINI)
(Baca Juga : MEMBUAT JAM DIGITAL LCD 16X2)
pada skema atau foto Jam Digital diatas menggunakan Seven segment ukuran 1" dengan tegangan 5V. jika anda hendak menggunakan seven segment ukuran besar dengan tegangan sevent segment yang lebih besar, maka anda harus menambahkan transistor penguat/buffer untuk mengendalikan sevent segmen. dan berikut skema penambahan jika menggunakan seven segmen besar>
pada gambar diatas adalah skema untuk Commond Anode. dengan rangkaian ini anda bisa mengendalikan seven segment yang lebih besar.
pada gambar diatas adalah skema untuk Pin Out seven segment dari a.....dp
pada kesempatan yang lain Jam Digital ini akan di update dengan fitur menampilkan suhu. sehingga display akan berganti2. menampilkan Jam & suhu bergantian, dengan waktu ganti yang bisa diubah-ubah.
jika ada pertanyaan silahkan komentar dibawah. terima kasih
Artikel Terkait
cara mudah membuat sendiri jam digital atmega8
4/
5
Fauzi hp
14 komentar
Ijin copy paste pak...
Replyboleh...?
somoga menjadi amal jariyah pak
silahkan...
Replykang minta file hex nyA
Replyitu diatas malah saya kasih kodenya, tinggal kamu kompile di bascom-avr sdh jadi .hex, klo belum tahu caranya kompile di bascom bisa buka disini http://www.hobyfauzi.tk/2016/05/pemrograman-mikrokontroler-untuk-pemula.html
ReplySalam Bascom pak.
Replysaya mau tanya gimana cara penulisan di bascom untuk led kedip melalui Rtcds 1307 dan atmega 8 ?
maturnuon.
sediakan sebuah port, seting sbg input. hubungkan port trsbt ke pin7 RTC DS13O7. deteksi pin tersebut menggunakan IF..then. tinggal ambil keputusan di dalam if then tersebut jika pinX adalah 1 dan sebaliknya. kemudian bisa ditampilkan ke LCD ataupun LED sbg tanda detik
ReplyTerima kasih bapak Fauzi HP atas penjelasannya.
Replymakasih pak simulasi pakai proteusnya berhasil
ReplyPak Fauzi, saya tanya lagi bagaimana cara penulisan input data 11001100 pada shift register di basiccompiler?.
ReplyPak Fauzi.
ReplyBagaimana cara bikin komponen seven segmen ukuran 1 inchi di proteus. saya cari cari komponen package nya kok nggak ada. mohon pencerahannya.
terima kasih.
untuk shift register bisa memakai "SHIFTOUT" dan "SHIFTIN". coba lihat dimenu help bascom-AVR
Replyharus membuat library sendiri. caranya siapkan 7 segmen 1" ukur jarak kaki2 kemudian gambarkan pola pinoutnya di proteus. blok semua lalu tekan tombol mouse kanan pilih package. isi data2 yg diminta
ReplyBang fauzi. Blh tanya soal penguatnya.
ReplySkema Penguat ada di artikel kok...coba discrool ke bawah
Reply