3

Cara Membuat Stopwatch dengan Mikrokontroler

Mikrokonteroler merupakan salah satu controller yang mempunyai banyak fitur dan kali ini belajarlistrik.com akan membuat tutorial Cara Membuat Stopwatch dengan Mikrokontroler Atmega 8535 dengan memanfaatkan internal timer yang ada. Pada tutorial sebelumnya telah dibahas pemanfaatan Timer0 (8 bit), Timer1 (16 bit) yang difungsikan sebagai counter. Sekarang pemanfaatan fitur tersebut sebagai Timer.

Pertama kita harus menghitung waktu timer dalam 1 siklus clock program, perhatikan gambar dibawah ini:

Perhitungan frekuensi untuk membuat program sensor ping ultrasinic dengan mikrokontroler atau arduino

Perhitungan frekuensi untuk membuat program sensor ping ultrasinic dengan mikrokontroler atau arduino

Perhitungan waktu, frekuensi dan clock mikrokontroler

Jika kita menggunakan clock internal sebesar 8 MHz, dengan prescale 64, maka

Frekuensi dengan prescale = 8000.000 / 64

Waktu kenaikan Timer = 64 / 8000000 = 0,000008 detik = 8µs

Untuk menjadikan Timer1 overflow dalam waktu 0,1 detik atau 100 ms maka dibutuhkan kenaikan bit data sebanyak: 0,1 / 0,000008 =12500

Maka kita isi regiter timer dengan kondisi awal 65535- 12500 =53035, maka Timer1 akan mengalami overflow setelah 0,1 detik.

Rangkaian stopwatch dengan Mikrokontroler

Kita buat rangkaian diproteus dengan komponen Mikrokontroler Atmega 8535 dan 2 buah push button seperti gambar dibawah ini:

Rangkaian simulasi cara membuat stopwatch dengan mikrokontroler

Rangkaian simulasi cara membuat stopwatch dengan mikrokontroler

Hubungkan masing-masing push button dengan PinD.2 dan pinD.3, kedua pin tersebut bisa digunakan untuk interupsi eksternal yang akan kita gunakan untuk start/stop stopwatch dan reset stopwatch.

Program Membuat Stopwatch dengan Mikrokontroler

Kita buat program sebagai berikut:

$regfile = “m8535.dat”
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2

Penjelasan program:

Konfigurasi Mikrokontroler, crystal dan pin LCD yang digunakan

Dim Waktu As Word , Menit As Byte , Detik As Byte , Jam As Byte
Dim Ms As Byte , Kode As Bit
Ddrd.2 = 0
Portd.2 = 1
Ddrd.3 = 0
Portd.3 = 1
Config Int0 = Low Level
Config Int1 = Low Level
Config Timer1 = Timer , Prescale = 64
On Int0 Rst
On Int1 Ss
On Ovf1 Count
Enable Interrupts
Enable Int0
Enable Int1

Penjelasan program:

Deklararasi variabel yang akan digunakan, konfigursi timer, prescale, pin I/O, Interupsi internal, Overflow

Cursor Off
Cls
Lcd “Stop Watch”

Timer1 = 53035

Do
Loop

End

Penjelasan program:

Program utama, dimana pada LCD kita akan menampilkan waktu stopwatch, nilai 53035 digunakan sesuai perhitungan clock dan prescale yang telah kita hitung dipenjelasan awal.

Rst:
If Kode = 0 Then
Ms = 0
Detik = 0
Menit = 0
Jam = 0
Locate 2 , 1
Lcd Jam ; “:” ; Menit ; “:” ; Detik ; “:” ; Ms ; ” ”
Waitms 200
End If
Return
Ss:
Kode = Not Kode
If Kode = 1 Then
Enable Ovf1
Start Timer1
Else
Disable Ovf1
Stop Timer1
End If
Waitms 200
Return
Count:
Stop Timer1
Incr Ms
If Ms >= 10 Then
Incr Detik
If Detik >= 60 Then
Incr Menit
Detik = 0
If Menit >= 60 Then
Incr Jam
Menit = 0
End If
End If
Ms = 0
End If
Locate 2 , 1
Lcd Jam ; “:” ; Menit ; “:” ; Detik ; “:” ; Ms ; ” ”
Timer1 = 53035
If Kode = 1 Then Start Timer1
Return

Perhitungan ketika terjadi overflow pada Timer1 yang terjadi setiap 0,1 detik, ketika terjadi 10 kali overflow maka variabel detik akan bertambah, penambahan 60 variabel detik akan menambah variabel menit, penambahan 60 variabel menit akan menambah variabel jam, begitu seterusnya.

Ketika terjadi interupsi yang terhubung dengan reset, maka kita akan reset jam, menit, detik ke 0 dan jika terjadi interupsi yang terhubung dengan start/stop (ss)= maka timer1 akan bekerja kembali.

Simulasi Program Membuat Stopwatch dengan Mikrokontroler

Program diatas kita uploadkan ke Mikrokontroler atau disimulasikan ke Proteus, maka hasilnya seperti gambar dibawah ini:

Simulasi rangkaian stopwatch dengan software proteus

Simulasi rangkaian stopwatch dengan software proteus

Selamat mencoba membuat Stopwatch dengan Mikrokontroler, semoga bermanfaat.

admin

3 Comments

  1. om, misal di buat satu tombol start, dua tombol stop.. tombol stop 1 output lcd baris atas, tombol stop 2 output lcd baris bawah bisa om?

  2. om, misal di buat satu tombol start, dua tombol stop.. tombol stop 1 output lcd baris atas, tombol stop 2 output lcd baris bawah bisa om?

    • Bisa mas, tinggal tambah push button ke i/o mikrokontroler aja, nanti tinggal nambah list program dikit

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *