Digital Clock ++ dengan PIC16F84
Ini adalah salah satu contoh mudahnya membuat alat elektronik dengan microcontroller, kali ini saya membuat sebuah jam digital ++ , saya sebut ++ karena jam ini juga dilengkapi penunjuk suhu ruangan, jam digital ini juga menunjukan kalender secara bergantian dengan penunjukan waktu dan suhu ruangan. PIC16F84 micro controller populer yang ekonomis dengan bentuk yang sangat kompak dan memiliki kelengkapan yang memadai untuk proyek ini.. Sensor suhu DS 18b20 melalui 1 wire dihubungkan ke PIC.
Berikut adalah code menu dan artinya dari tombol setting:
ho -> jam, dari 0 sampai 23
nn -> menit, dari 0 hingga 59 (saya tidak bisa menampilkan m jadi saya menggunakan n dua kali untuk itu) dd -> tanggal hari, dari 1 sampai hari / bulan -> dihitung berdasarkan bulan dan tahun
dn -> tanggal bulan (JA FE MA AP MY JU JL AU SE oc no dE-atau-01 02 03 04 05 06 07 08 09 10 11 12, tergantung pada pengaturan dt)
dy -> tanggal tahun, dari 0 yang berarti 2000-99 arti 2099 (tidak ditampilkan dalam waktu / tanggal modus tetapi harus menghitung hari per bulan)
dt -> jenis tanggal bisa 1 atau 2, jika jenis tanggal sama dengan 1 maka huruf yang digunakan selama satu bulan, angka lain yang digunakan
tt -> waktu dalam detik untuk menampilkan waktu / jam, dari 2 sampai 99, Anda tidak dapat mengatur 0 atau 1 untuk pengaturan ini (default: 8) (pilihan Anda tidak dapat mengubah di PIC16F84 proyek)
td -> waktu dalam detik untuk menampilkan tanggal, dari 0 sampai 99, jika 0 digunakan maka tanggal tidak ditampilkan (default: 2) (pilihan Anda tidak dapat mengubah di PIC16F84 proyek)
TE -> waktu dalam detik untuk menampilkan suhu, dari 0 sampai 99, jika 0 digunakan maka suhu tidak ditampilkan (default: 3) (pilihan Anda tidak dapat mengubah di PIC16F84 proyek)
Sh -> mengkalibrasi jam dengan menyesuaikan tinggi kedua (baca keterangan)
Sl -> mengkalibrasi jam dengan menyesuaikan kedua rendah (baca keterangan)
Kalibrasi :
Baiklah, supaya jam digital yang susah-susah anda buat tidak dicela orang akibat ngaret atau ngacir..maka anda harus mencoba menu kalibrasi dan sabar untuk melihat hasilnya setiap hari., saya sendiri perlu waktu 3 minggu untuk mendapatkan hasil yang benar-benar presisi....
Jam ini dapat dikalibrasi melalui perangkat lunaknya, kalibrasi ini berguna jika jam kehilangan atau mendapatkan penambahan 1 detik selama periode waktu. Hal ini dapat terjadi karena berbagai alasan, bahkan akibat penyolderan crystal yang tak rapi atau nois lingkungan. Ide kalibrasi adalah untuk membuat kedua lebih lama atau kurang. Dalam siklus rutine satu detik berlangsung 1000000 mikrodetik. Ini adalah jumlah yang besar untuk ditampilkan dalam 7segment , di mana kita hanya bisa menulis hanya 4 angka, tetapi .. jika kita mewakili nomor ini dalam heksadesimal akan memiliki nilai ini: 0F4240. Kalibrasi berarti menyesuaikan sekitar 1000000 jadi saya turunkan menjadi 0F, Anda tidak bisa mengatur itu, tapi Anda dapat mengatur 42 (Sh) dan 40 (Sl) dari 00 sampai FF. Ini akan memberikan Anda kemungkinan yang besar untuk menyesuaikan kedua.
Contoh:-> Jam terlambat 30 detik / 24 jam => 30/86400 = 0,000347 1000000 - (1000000 * 0,000347) = 999653 (desimal) = F40E5 (heksadesimal)
=> Set 40 untuk Sh dan E5 untuk Sl.
-> Hilang 2 detik / 1 jam => 2/3600 = 0,000555 1000000 - (1000000 * 0,000555) = 999445 (desimal) = F4015 (heksadesimal)
=> Set 40 untuk Sh dan 15 untuk Sl.
-> Kelebihan 15 detik / 60 hari => 15/5184000 = 0,000002
1000000 + (1000000 * 0,000555) = 1000002 (desimal) = F4242 (heksadesimal)
=> Set 42 untuk Sh dan 42 untuk Sl.
Semakin panjang periode waktu sedang diuji akan memiliki keakuratan yang lebih baik untuk waktu.
Cara lain untuk mengkalibrasi jam terus menyesuaikan Sh dan sebagian besar Sl seperti di bawah ini. Pertama Anda perlu tahu dua nilai: salah satu yang membuat jam berjalan lebih cepat dan salah satu yang membuat jam berjalan lebih lambat. Katakanlah kedua nilai adalah: 999840 (jam berjalan lebih cepat = FAST) dan 999.884 (jam berjalan lebih lambat = SLOW). Ulangi mengubah panjang kedua (FAST + SLOW) / 2 sampai CEPAT = SLOW (+ / -1). Hal ini seharusnya membuat jam Anda sangat akurat. Ketika itu anda akan dipuji oleh orang yang melihat jam rakitan anda sangat akurat..
=> Set 40 untuk Sh dan E5 untuk Sl.
-> Hilang 2 detik / 1 jam => 2/3600 = 0,000555 1000000 - (1000000 * 0,000555) = 999445 (desimal) = F4015 (heksadesimal)
=> Set 40 untuk Sh dan 15 untuk Sl.
-> Kelebihan 15 detik / 60 hari => 15/5184000 = 0,000002
1000000 + (1000000 * 0,000555) = 1000002 (desimal) = F4242 (heksadesimal)
=> Set 42 untuk Sh dan 42 untuk Sl.
Semakin panjang periode waktu sedang diuji akan memiliki keakuratan yang lebih baik untuk waktu.
Cara lain untuk mengkalibrasi jam terus menyesuaikan Sh dan sebagian besar Sl seperti di bawah ini. Pertama Anda perlu tahu dua nilai: salah satu yang membuat jam berjalan lebih cepat dan salah satu yang membuat jam berjalan lebih lambat. Katakanlah kedua nilai adalah: 999840 (jam berjalan lebih cepat = FAST) dan 999.884 (jam berjalan lebih lambat = SLOW). Ulangi mengubah panjang kedua (FAST + SLOW) / 2 sampai CEPAT = SLOW (+ / -1). Hal ini seharusnya membuat jam Anda sangat akurat. Ketika itu anda akan dipuji oleh orang yang melihat jam rakitan anda sangat akurat..
Untuk pengukuran suhu ruangan sudah pasti presisi, sensor tidak memerlukan kalibrasi. Selamat mencoba.
Source


Boleh saya minta source code nya mas.... saya lagi belajar pemrograman PIC .... terima kasih
BalasHapus