Senin, 09 Juli 2012

PonyProg AVR Serial port Programmer

Sebuah serial programmer yang dijalankan oleh software PonyProg sebenarnya sangat mudah dirakit, programmer ampuh dan serba guna ini dapat compatible dengan avr  40 pin, 28 pin, 20, pin dan bahkan 8 pin, juga compatible dengan seri 89Sxx. Schema didapatkan dari Electronic Lab web .

click di sini untuk mendapatkan pdf file dari schema ini.


Digital Alarm Clock


Bermula dari kejadian anak saya terlambat masuk sekolah akibat bangun yang kesiangan, perlu ada alarm yang bisa di set dan bertugas  membangunkan anak saya setiap hari sehingga kejadian tersebut tidak terulang. Jam digital ini sangat simple hanya menggunakan Atmega 328 as core engine langsung driving empat digit 7 segment led display Common Anode. Clock base bersumber pada xtal 16Mhz ,sedangkan alarm di bunyikan via speaker/buzer . Dengan tombol setting set, " + ", _" - " alarm juga bisa di set dengan tombol tersebut berikut adalah skema jam tersebut betul2 sangat minimize dari component yang di gunakannya. :

Hanya diperlukan satu resistor 10k untuk pullup reset, V sumber daya menggunakan 5 volt dc yang berasal dari regulator 7805.
Jam ini sangat presisi sekali di set maka ia akan jalan dengan presisi.
Setting jam dilakukan dengan mijit tombol "set" dan tombol "+" , setelah display berkedip anda tinggal seting + atau minus lalu pijit tombol set tombol yang konek ke pin ic no 13.  untuk alarm setting pijit tombol set dan minus bersamaan setelah display menunjukan alarm berkedip pijit "+" atau "-".


Senin, 02 Juli 2012

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.





 Display yang digunakan adalah 7 segmen led CA (Common Anoda) melalui 220 ohm resistor dan anodanya dihubungkan pada gerbang Not sebagaio inverter (bisa juga anda gunakan transistor npn sebagai pembalik signal). Gunakan 7805 sebagai regulator tegangan untuk catudaya,  jika anda ingin menambahkan backup power dapat ditambahkan battery  CR2032 dan dioda sehingga jika catudaya terganggu maka jam tidak reset. Akurasi dari jam digital ini sangat berdasarkan clock utama dari processor yang terbagi berdasarkan formula yang telah dimasukan dalam program, namun demikian karena berbagai hal maka perlu dilakukan kalibrasi.

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..
Untuk pengukuran suhu ruangan sudah pasti presisi, sensor tidak memerlukan kalibrasi. Selamat mencoba.

Source

Thermostat Pic 16F628

Idea ini awalnya dari masalah AC di salah satu ruangan rumah saya yang sudah ujur dimana  thermostatnya sudah tidak bekerja , tentu saja ini mengakibatkan borosnya konsumsi listrik dan umur compresor AC pun terancam , karena bekerja terus menerus tampa target suhu. Thermostat ini juga dapat difungsikan sebagai heater controller.
Thermostat dibuat dengan komponen utamanya adalah PIC 16F628 sebuah microcontroller yang populer dan murah, LCD display  16x2 , 3 tombol untuk setting temperatur. DS18b20 digunakan sebagai sensor temperatur yang bisa diandalkan, presisi dan tidak perlu kalibrasi. Dalam keadaan normal LCD akan menunjukan themperature ruangan saat itu. Relay yang digunakan di kemudikan oleh sebuah transistor BC547 yang basisnya terhubung pada salah satu pin  1 atau 2 ic pic16F628. 


Sebenarnya termostat ini bisa di set ketika panas melebihi temperatur seting maka relay on atau sebaliknya , jika basis melalu R 2k2  dihubungkan pada port 1 maka termostat berfungsi untuk menjaga suhu dingin (thermostat untuk AC), sedangkan jika dihubungkan ke pin2 maka relay on pada kondisi suhu turun(thermostat untuk heater). 

Rentang kontrol disesuaikan dari -25 ° C sampai  75 ° C dalam langkah 0,25 ° C  histerisis . Jangka histerisis ini harus disesuaikan sehingga kondisi ambang relay bekerja diberi toleransi terhadap suhu yang dicapaiyaitu berdasarkan nilai histerisis yang di enter pada saat setting temperature, jika nilai histerisis terlalu kecil maka relay akan sering on-off dan ini bisa merusak sistem pendingin/pemanas anda, histerisi bisa di sett biasanya lebih dari 1 derajat Celcius.
Berikut adalah frimware dari thermostat ini: source



LCD Nokia 3310 dan atmega328


Lcd dari Nokia 3310 ternyata identik dengan LCD graph 48x84 yang telah tersedia librarinya di Arduino.
Kali ini saya memanfaatkan "pasar loak" handphone dimana mereka juga menjual part dari hp, salah satunya adalah part LCD Nokia 3310, dengan harga yang sangat murah anda sudah bisa melakukan experiment .

Untuk menghemat komponen, maka kebutuhan penurunan tegangan ke 3.3V dilakukan dengan memanfaatkan resistor ; demikian pula kebutuhan 3.3 V power diturunkan dengan menggunakan dioda 1n4148 secara serial.

Berikut code untuk di compile arduino IDE ver 0.23 :
Click di sni  untuk source code