Blog Fisika Inovatif SMA Doro Pekalongan merupakan wadah untuk memberikan bimbingan online kepada siswa-siswi maupun khalayak umum yang masih awam baik bimbingan konsep fisika murni maupun fisika terapan untuk mendalami inovasi Fisika khususnya di bidang Elektronika Digital Otomasi dan Robotika tingkat dasar untuk dikembangkan di dunia masing-masing....


Monday 15 April 2013

Merancang Simulasi LED Blinking Dengan Proteus

Pada postingan yang lalu telah dibahas cara memprogram LED kedap-kedip di kaki IC P1.0. Nah pada kesempatan ini akan saya bahas bagaimana merancang simulasi LED1_51 (LED Blinking di P1.0) lewat program proteus. Downloadlah file proteus, setelah terinstall kemudian buka filenya yang bericon ISIS.

Tampilan awal proteus

Klik icon component mode kemudian klik Pick From Libraries (huruf P) dan ketiklah AT89c51 pada keywords kemudian klik OK Pada lembar kerja akan tampak gambar pinsil. Aturlah letak pinsil sesuai keinginan kemudian tekan enter 2x. Simbol IC AT89C51 akan tercetak. 

 Mencari Simbol Komponen
 
Untuk memutar gambar sesuai keinginan lakukan klik kanan pada komponen dan klik Rotate sesuai arah yang diinginkan.
Memutar Gambar Simbol Komponen
 Lakukan pencarian komponen dengan cara yang sama sehingga tampak seperti gambar berikut :

 Tampilan Sismin LED1_51

Untuk menghubungkan antar komponen letakkan kursor di ujung salah satu komponen maka akan muncul gambar pensil berwarna hijau kemudian klik kanan mouse dan drag keujung komponen lain yang akan disambung kumudian lepas. Lakukan sampai semua komponen tersmbung sperti gambar di atas. Untuk membuat vcc dan ground klik icon terminals mode kemudian klik power untuk vcc dan ground untuk ground. Untuk mendownload file LED1_51.HEX klik 2x simbol IC AT89C51 kemudian klik icon folder pada program file kemudian cari file LED1_51.HEX klik open klik OK. Setelah itu jalan simulasi program proteus dengan mengklik tombol play di pojok kiri bawah.
.Simulasi LED1_51 pada program Proteus








Selamat mencoba.
 









Sunday 14 April 2013

Praktek Dasar LED 1 AT89S51_AT89S52

Menghidupkan dan mematikan LED

Kali ini kita akan memulai memprogram IC mikrokontroler dengan menggunakan program Bascom AVR. Untuk yang pertama ini jika kita menggunakan IC AT89S51 atau AT89S52 maka program Bascom nya menggunakan Bascom 8051.Anda bisa download di internet lewat google. Bukalah bascom 8051 hingga muncul seperti gambar berikut:
Tampilan utama bascom 8051

Kemudian untuk membuat file baru klik file dan klik new maka akan terbuka jendela baru
Tampilan Jendela baru untuk new file

Ketiklah listing program berikut ini dalam jendela baru tersebut dan simpan dengan nama LED1_51

$regfile = "REG51.DAT"                             ' Daftar pustaka 8xc51
Do
   P1 = &B11111110                                     'nilai P1.0 adalah low (0) led P1.0 on
      Waitms 250                                            'menunda selama 0,25 detik
   P1 = &B11111111                                     'nilai P1.0 adalah high (1) led P1.0 off
     Waitms 250                                             'menunda selama 0,25 detik
Loop

Keterangan program :
Setiap menulis program Bascom mesti didahului $regfile kemudian diikuti pustaka macronya. REG51.DAT merupakan daftar pustaka AT89X51 yang akan menerjemahkan setiap baris program seperti P1, &B dan yang lain. 
Program diantara Do dan Loop akan diulang terus menerus sampai power dimatikan.
P1 = &B11111110     P1 memiliki makna gerbang P1. Sedangkan &B11111110 adalah nilai keadaan gerbang P1 mulai P1.0 sampai dengan P1.7. Untuk P1.0 tempatnya paling kanan dan P1.7 paling kiri. &B merupakan data biner yang nilainya 1 dan 0. Karena AT89X51 aktif low maka P1 = &B11111110 memberikan makna hanya kaki P1.0 saja yang LED nya hidup sedang kaki P1.2 s/d P1.7 dalam keadaan mati. Waitms 250 memberi perintah penundaan selama 0,25 detik (seperempat detik). Nilai 250 adalah nilai maksimum. P1 = &B11111111 memberikan perintah untuk mematikan LED P1.0.
kalimat di baris sebelah kanan setelah tanda petik (') tidak dijalankan oleh IC dan merupakan keterangan baris program dan warna hurufnya  hijau.
Setelah selesai compilasilah program tersebut dengan mengklik menu program dan compile atau tekan F7 hingga tidak ada error.





Tampilan program setelah dicompilasi dan tak ada error

Setelah program success dicompilasi selanjutnya lihatlah hasil compilasi di folder tempat menyimpan file dan carilah file LED1_51.HEX. File inilah yang akan kita tuliskan ke IC AT89X51 atau untuk dicobakan diproteus dulu.

File LED1_51.HEX Hasil compilasi

Hasilnya setelah dicobakan pada simulasi program Proteus seperti berikut :

Tampilan Proteus

Sekian dan Selamat mencoba.






Friday 12 April 2013

Sismin AT89S51_AT89S52

IC AT89C51 ini mempunyai empat buah port input dan output. Port tersebut adalah P0, P1, P2, dan P3. Sebelum menggunakan IC Mikrokontroler AT89C51 ini langkah yang harus dipersiapkan adalah membuat rangkaian sistem minimum AT89C51. Setelah membuat sebuah rangkaian sistem minimum, kita dapat mencoba untuk belajar memprogram . Tentunya masih dalam tingkat dasar. Berikut merupakan gambar sistem minimum rangkaian mikrokontroler :
Jika anda telah memprogram dan mendapatkan file hexa dalam compilasinya, anda dapat menggunakan downloader paralel port untuk AT89S51 pada pembahasan sebelumnya untuk mengirim file hexa ke IC mikro tersebut. Yang perlu diperhatikan adalah IC mikro AT89S51 active low. Artinya kita kita gunakan logika 0 untuk mengidupkan LED dan logika 1 untuk mematikan LED pada pin output IC mikro, kaki LED yang satunya dihubungkan ke vcc melalui resistor pullup.


Gb. AT89S51 aktif low

ISP Downloader untuk AT89S51/AT89S52 melalui port paralel

Bagi Anda pecinta mikrokontroler, tentu pernah memakai mikrokontroler MCS-51 produksi Atmel AT89S51 atau AT89S52. Mikrokontroler ini tergolong mikrokontroler yang paling murah jika dibanding dengan kualitas yang dimilikinya.

Untuk memrogram mikrokontroler tersebut, kita bisa menggunakan downloader paralel maupun downloader serial atau yang sering disebut dengan ISP. Nah, kita juga bisa membuat downloader ISP ini dengan biaya yang sangat murah. Yang Anda butuhkan cuma konektor DB25 male dan beberapa dioda, itupun tidak harus pake dioda, artinya dioda hanya merupakan pilihan saja. Kebutuhan lainnya adalah kristal dan dua buah kondensator. Akan tetapi kristal dan kondensator ini adalah memang kebutuhan dari mikrokontroler. Jadi kristal dan kondensator ini tidak dihitung sebagai bagian dari downloader.

Rangkaian downloader ISP untuk AT89S51/AT89S52 adalah seperti berikut:



Nah, jika Anda sudah membuat rangkaian seperti gambar di atas, maka Anda tinggal menancapkan konektor DB25 tersebut ke port paralel, kemudian jalankan program SDownldr.exe yang tampilannya adalah seperti berikut:



Rangkaian Serial Downloader di atas menggunakan catu daya dari port paralel. Akan tetapi tidak semua port paralel mampu memberikan arus yang cukup untuk keperluan tersebut. Jika port paralel Anda tidak cukup kuat untuk keperluan ini, maka Anda harus memberikan catu daya +5V tambahan.
Jika program ini dijalankan dari IDE, maka semua pengaturannya akan dilakukan oleh IDE. Sedangkan jika dijalankan secara standalone, maka pengaturannya adalah sebagai berikut:
  • Default Hex File
    Jika Anda menggunakan IDE “Microcontroller Poject”, maka setiap kali dilakukan kompilasi yang sukses, sebuah file hex akan dibuat pada direktori temp, yaitu TMPFILE.HEX. Jika “Default Hex File” di-cek, maka file yang akan dikirimkan jika tombol Send diklik adalah file hex hasil kompilasi yang sukses tersebut. Perlu diingat bahwa file hex tersebut hanya akan ada jika IDE masih dijalankan.
    Jika “Default Hex File” tidak di-cek, maka Anda bisa menentukan file mana yang akan dikirimkan dengan klik pada tombol Browse.
  • Send
    Gunakan tombol ini untuk memulai pengiriman file hex yang telah ditentukan.
  • Read
    Gunakan tombol ini untuk membaca kode yang berada pada chip. Pembacaan hanya akan berhasil jika chip belum di-lock.
  • Lock
    Gunakan tombol ini untuk lock chip sehingga kode pada chip tidak bisa dibaca lagi.
  • Port
    Pilih alamat port yang sesuai dengan port yang digunakan. Biasanya port pararel ditempatkan pada alamat 378H.
  • Auto Lock
    Jika di-cek, maka setelah pengiriman data selesai dan setelah dilakukan verifikasi, chip akan di-lock secara otomatis.
  • Browse
    Gunakan tombol ini untuk memilih file hex yang akan dikirimkan. Tombol ini hanya akan aktif jika “Default Hex File” tidak di-cek.
  • Read data count
    Digunakan untuk menentukan jumlah data yang akan dibaca jika tombol Read diklik. Penulisan angka bisa menggunakan desimal atau hexadesimal, yaitu jika “Hex” di-cek.
Nah, tertarik untuk menggunakan SDownldr.exe? Silakan,  download dan Selamat mencoba.

Friday 29 March 2013

Serial Interface Atmega16 Via PC Dengan Visual Basic

Agar dapat mengontrol Peralatan Rumah Tangga Maupun yang lain Diperlukan Program interface yang dapat berkomunikasi antara PC/Laktop dengan mikrokontroler. Berikut ini hasil desain program visual basic yang saya rancang untuk mengetahui nilai dari ADC0-ADC7 dan mengatur nyala mati LED dari PA.1 - PD.7 (28 pin Port. Program ini juga memberi informasi ke PC lewat serial komunikasi kondisi masing-masing PortA hingga PortD. Nilai ADC0-ADC7 disertai animasi shape yang menyatakan nilai prosentase dari ADC
 
 
Gambar tampilan program Serial Interface Visual Basic




Fungsi String Visual Basic



Dalam Visual Basic terdapat banyak fungsi yang digunakan untuk mengolah data bertipe string. Berikut ini adalah penjelasan tentang fungsi-fungsi string yang sering digunakan.
  • LCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi kecil semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "aku bisa"

  • UCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi besar semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "AKU BISA"

  • Left(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kiri sebanyak n. Contoh:
    VB 6.0, s = Left("Aku Bisa", 3)
    VB .NET, s = Strings.Left("Aku Bisa", 3)
    maka nilai s adalah "Aku"

  • Right(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kanan sebanyak n. Contoh:
    VB 6.0, s = Right("Aku Bisa", 3)
    VB .NET, s = Strings.Right("Aku Bisa", 3)
    maka nilai s adalah "isa"

  • Mid(x,m,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari karakter ke m sebanyak n. Contoh:
    s = Mid("Aku Bisa", 2, 2) , maka nilai s adalah "ku"

  • LTrim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dari string x.
    Contoh: s = LTrim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa     "

  • RTrim(x) , digunakan untuk menghapus karakter spasi di bagian kanan dari string x.
    Contoh: s = RTrim("     Aku Bisa     ") , maka nilai s adalah "     Aku Bisa"

  • Trim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dan kanan dari string x. Contoh:
    s = Trim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa"

  • Len(x) , digunakan untuk menghitung jumlah karakter dari string x. Contoh:
    s = Len("Aku Bisa") , maka nilai s adalah 8.

  • String(n,x) , digunakan untuk membuat karakter x sebanyak n. Contoh:
    VB 6.0,  s = String(10, "A")
    VB .NET, s = New String("A", 10)
    maka nilai s adalah "AAAAAAAAAA"

  • Space(n) , digunakan untuk membuat karakter spasi sebanyak n. Contoh:
    s = Space(10) , maka nilai s adalah "          "

  • Asc(x) , digunakan untuk mengetahui nilai ASCII dari karakter x. Contoh:
    s = Asc("A") , maka nilai s adalah 65

  • Chr(x) , digunakan untuk mengetahui karakter dari nilai ASCII x. Contoh:
    s = Chr(65) , maka nilai s adalah "A"

  • InStr(x,n) , digunakan untuk mengetahui posisi karakter n didalam string x. Contoh:
    s = InStr("Aku Bisa", "u") , maka nilai s adalah 3

  • StrComp(x,y,n) , digunakan untuk membandingkan string x dan string y berdasarkan n. Jika n bernilai 0 maka akan dibandingkan secara case-sensitive, sedangkan jika n bernilai 1 maka akan dibandingkan secara biasa. Contoh:
    s = StrComp("Aku", "aku", 0) , maka nilai s adalah -1
    s = StrComp("Aku", "aku", 1) , maka nilai s adalah 0
    Khusus untuk fungsi ini, jika menghasilkan nilai 0 maka dianggap sebagai True, dan jika menghasilkan nilai selain 0 maka dianggap False.

  • StrConv(x,n) , digunakan untuk mengubah huruf dalam string x berdasarkan nilai n. Contoh:
    s = StrConv("Aku Bisa", 1) , maka nilai s adalah "AKU BISA"
    s = StrConv("Aku Bisa", 2) , maka nilai s adalah "aku bisa"
    s = StrConv("aku bisa", 3) , maka nilai s adalah "Aku Bisa"

  • StrReverse(x) , digunakan untuk membalikkan posisi huruf dalam string x. Contoh:
    s = StrReverse("Aku Bisa") , maka nilai s adalah "asiB ukA"

  • Replace(x,m,n) , digunakan untuk menggantikan karakter m dalam string x dengan karakter n. Contoh:
    s = Replace("Kamu Juga Bisa", "a", "o") , maka nilai s adalah "Komu Jugo Biso"

  • Split(x,n)(i) , digunakan untuk memecah string x berdasarkan karakter n dengan penomoran i. Contoh:
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(0) , maka nilai s adalah "Kuda"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(1) , maka nilai s adalah "Kerbau"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(4) , maka nilai s adalah "Macan"

  • Join(x,n) , digunakan untuk menggabungkan rangkain string x yang dihubungkan dengan string n. Contoh:
    VB6, s = Join(Array("Hani", "Indah", "Budi", "Herman"), " & ")
    VB.NET, s = Join(New Object() {"Hani", "Indah", "Budi", "Herman"}, " & ")
    maka nilai s adalah "Hani & Indah & Budi & Herman"



Fungsi-fungsi diatas juga dapat djadikan fungsi lain diantaranya adalah :
  1. Mengecek keberadaan string dalam string. Misalnya Anda ingin memeriksa ada tidaknya string "a" dalam string "anda berhasil", maka kodenya adalah :
    If CBool(InStr("anda berhasil", "a")) Then
    'jika ada
    Else
    'jika tidak ada
    End If
  2. Menghitung karakter tertentu dalam string. Misalnya Anda ingin menghitung karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    t = "anda berhasil"
    s = Len(t) - Len(Replace(t, "a", ""))
    maka nilai s adalah 3

  3. Menghitung jumlah kata dalam string. Misalnya Anda ingin menghitung jumlah kata dalam string "anda berhasil", maka kodenya adalah :
    s = UBound(Split("anda berhasil", " ")) + 1
    maka nilai s adalah 2

  4. Menghilangkan karakter tertentu dalam string. Misalnya Anda ingin menghilangkan karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    s = Replace("anda berhasil", "a", "")
    maka nilai s adalah "nd berhsil"

  5. Mengisi variabel array dinamis dengan string. Contoh kodenya sebagai berikut :
    Dim Binatang() As String
    Binatang = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")
    maka variabel Binatang memiliki 5 index (0-4) dengan rincian:
    nilai Binatang(0) = "Kuda"
    nilai Binatang(1) = "Kerbau"
    nilai Binatang(2) = "Sapi"
    nilai Binatang(3) = "Kambing"
    nilai Binatang(4) = "Macan"

Sunday 10 March 2013

Modul Proteus77


Proteus professional 7.7 merupakan kelompok software elektronik yang digunakan untuk membantu para desainer dalam merancang dan mensimulasikan suatu rangkaian elektronik. Software ini memiliki dua fungsi sekaligus dalam satu paket, paket satu sebagai software untuk menggambar skematik dan dapat disimulasikan yang diberi nama ISIS. Paket kedua digunakan sebagai merancang gambar Printed Circuits Board (PCB) yang diberi nama ARES. Secara langsung, pengubahan dari skematik ke PCB dapat dilakukan dalam software Proteus Prof 7.7 ini. Proteus Prof ISIS memiliki versi yang selalu diperbarui, mulai dari versi 7.0 sampai dengan 7.10. Setiap kenaikan versi memiliki penambahan akan library komponen yang dapat diambil dan digunakan dalam penggambaran atau perancangan. Sebagai perancang rangkaian elektronik terlebih dahulu menggunakan ISIS sebagai media yang memudahkan dalam peranangan dan simulasi. Banyaknya library dari Proteus Prof. 7.7 ISIS membuat software ini dikatakan software simulasi lengkap, yaitu dari komponen-komponen pasif, Analog, Trasistor, SCR, FET, jenis button/tombol, jenis saklar/relay, IC digital, IC penguat, IC programmable (mikrokontroller) dan IC memory. Selain didukung dengan kelengkapan komponen, juga didukung dengan kelengkapan alat ukur seperti Voltmeter, Ampere meter, Oscilloscope, Signal Analyzers, serta pembangkit Frekuensi. Kelengkapan fitur yang disediakan ini menjadikan Proteus Prof. 7.7 ISIS menjadi salah satu software simulasi elektronik terbaik.

Setelah  program proteus terisntall bukalah dengan mengklik icon isis, kemudian akan tampil seperti pada gambar dibawah ini:


Klik huruf (P) yang merupakan  “Pick device” untuk mengambil komponen apa saja yang dibutuhkan:


Nah disini tempat untuk mengambil komponen yang dibutuhkan dalam perancangan simulasi…
Caranya sangat mudah tinggal menulis komponen yang kita butuhkan pada list keyword… sebagai contoh kita ingin merancang mikrokontroler Atmega16 dengan LED
List komponen yang dibutukan…
  • mikrokontroler Atmega16  ketik saja keywordnya dengan “Atmega16” maka komponen ATmega16 akan diload dan siap digunakan..lalu klik ok.
  • sama halnya dengan cara mengambil komponen mikro…untuk mengambil LED kita juga hanya dengan cara menuliskan keywordnya dengan “LED” .
catatan : untuk kasus simulasi komponen yang kita reload adalah library dengan  kondisi “active” agar saat disimulasikan seolah-olah LED tersebut mengeluarkan cahaya  sesuai dengan warna led yang kita gunakan….
ini hasil reload komponen….

Setalah itu kita tinggal rancang susunan komponen, seperti gambar berikut :


 Catatan: untuk rancangan cristal mikro dan rangkaian reset mikro gak perlu dirancang lagi (tinggal diinputkan saja) dan pencatuan mikro juga begitu.. secara default  vcc dan ground mikro telah terdefinisikan oleh software proteus ini… sebagai contoh pada rancagaan LED disusun  dengan kondisi common anode dimana anode led terhubung oleh vcc, label vcc tersebut haruslah kita buat sendiri dengan cara  klik pada “wire label” lalu isi label dengan “vcc”, begitu juga sebaliknya untuk membuat grounding… dgn menuliskan “gnd”. Oiya rangkaian LED nya jika dirancang pada real sistem harus dipasang resistor (470Ω) gunanya untuk membatasi arus yang melewati LED (sebesar 10mA).
Nach selain itu kita juga harus mengetahui.. fungsi tools laenya… seperti gambar berikut:

Tidak semua tools saya jelaskan sebagian tools lainnya sampai sekarang ada juga yang belum saya pake, tapi yang sedikit ini sudah cukup untuk bermain-main dengan PROTEUS, nah Untuk lebih jelasnya sebagai berikut:
  1. List komponent … tools ini digunakan untuk melihat list komponent yang kita gunakan pada rancangan kita, untuk menambahkan komponen klik dulu  tools ini setelah itu baru klik pick device (P).
  2. Junction dot…kalo tools yang ini berguna untuk memberi tanda penghubung suatu wire (kabel), jika ada dua wire dan ingin kita hubungkan nach gunakan tools ini, begitu juga untuk kondisi sebaliknya jika kita ingin menghilangkan sambungan kabel tersebut maka kita tinggal klik juntion dot pada sambungan kabel tersebut agar sambungannya menjadi terputus.
  3. Label wire…untuk tools yang ini penting untuk digunakan sebab kita tinggal memberi label pada wire tersebut apakah terhubung vcc ataukah gnd
  4. Bus…tools ini digunakan untuk rancangan jalur yang menggunakan jalur bus D0-D7 sehingga sangat hemat pengkabelan.
  5. Instant edit mode…nich tools digunakan untuk mengedit komponen yang kita rancang, contoh kita menggunakan mikro, untuk mendonload file .hex dari pemrograman kompiler kita gunakan tools ini atau dengan cara klik kanan pada komponen (setelah komponen berwarna merah) klik kiri maka box edit komponent akan muncul seperti gambar berikut ini:

Nah disini kita tinggal memasukkan nilai clock frekuensi dari mikro atau cristal luar mikro sebagai contoh 12Mhz dan disini juga tempat mendonload file .hex dengan cara klik icon folder pada program file dan browse file hexa yang akan  kita masukkan  kedalam mikrokontroler…
6.   Simulation graph… nach ni tools untuk mensimulasikan grapik sinyal analog,digital, frekuensi, distorsi,fourier.dan lain sebagainya.
7.   Tape recorder… apa lagi tools yang satu ini… ane belum pernah menggunakan ni tools… dari bahasanya jika diterjemahkan sebagai perekam.. mungkin mirip ma perekam radio tape kali…hehe….
8.   Generator… nach kalo tools yang ini mau gak mau sering  kita gunakan, Generator berarti pembangkit… jadi tools ini digunakan untuk pembangkit  berbagai macam sinyal baik analog maupun digital dengan berbagai macam bentuk  sinus, segitiga, denyut  dan sebagainya bahkan secript program untuk menghasilkan kondisi sinyal tertentu.
9.   Virtual instrument… tools yang ini merupakan virtual alat pengukuran seperti osiloskop, virtual terminal, ac/dc voltmeter, ac/dc ammeter, dan sebagainya… nah jika pada rancangan kita ingin mengetahui tegangannya berapa, arusnya berapa, atau bentuk sinyal keluaranya seperti apa, maka gunakan tools ini,…

Jika rangkaian sudah jadi dan telah dimasukkan file hexa maka simulasi dapat kita jalankan dengan mengklik tombol play di bagian bawah dan mengakhirinya dengan klik tombol stop.
Semoga informasi ini bermanfaat :) 

Download : Proteus77

Saturday 9 March 2013

Rangkaian Dasar LED

RANGKAIAN DASAR LED

Tujuan : Setelah melaksanakan modul ini siswa diharapkan dapat :
  • Mengetahui dasar-dasar menyalakan LED
      LED (Light Emitting Diode) adalah semikonduktor (diode) yang dapat mengeluarkan cahaya. Terdapat berbagai macam warna LED, yaitu merah, hijau, oranye, kuning, dan biru, serta dalam berbagai bentuk. Seperti juga diode, LED juga merupakan komponen yang akan aktif (menyala) jika dialiri arus pada arah tertentu, dan tidak untuk arah arus sebaliknya. Gambar 1-1 menunjukkan bentuk fisik LED beserta simbolnya. Kaki yang lebih panjang adalah anode, yang akan dihubungkan dengan kutub +, dan kaki yang lebih pendek adalah katode, yang akan dihubungkan dengan kutub – .
 Ingat KNAP : Katode (ke) Negatif, Anode (ke) Positif.

Gambar 1-1 Komponen LED beserta simbolnya

Gambar 1-2 menunjukkan rangkaian untuk menyalakan LED, anode terhubung dengan kutub positif catu daya dan katode terhubung dengan resistor dan ground. Fungsi resistor pada rangkaian yang melibatkan LED adalah sebagai pembagi tegangan dan pembatas arus. Untuk menyalakan LED hanya diperlukan tegangan 3 volt dan arus sebesar 1 – 10 mA, sedangkan arus yang dapat diberikan catu daya (dengan tegangan berkisar 5-9V) cukup besar. Jika tegangan dan arus yang masuk LED tidak dibatasi, maka LED akan rusak. Resistor dapat diletakkan pada sisi katode maupun anode dari LED. 
      Pada semua rangkaian LED jangan lupa untuk selalu diberikan resistor sebagai pembatas arus dan tegangan
Gambar 1.2 Rangkaian Untuk Menyalakan LED

Gambar 1.3 Rangkaian Dasar LED Pada Breadboard


Membuat USB Downloader

Membuat USB Downloader untuk Mikrokontroler AVR Atmega8/16/32/8535




Downloader yang menggunakan port paralel ( yang pinnya 25 buah) memang hanya membutuhan sedikit biaya, namun sekarang kebanyakan orang sudah beralih ke laptop dimana port paralel sudah sudah jarang ditemui lagi . Alternatifnya yaitu menggunakan port USB. USB downloader dibuat dengan komponen utama yaitu atmega8,Sebelumnya membuatnya sediakan berikut ini:

Software:
  • Deeptrace ( untuk membuat pcb atau kalau malas buat pcb pake pcb bolong)
  • PonyProg ( untuk mendownload program)
  • Downloader yang menggunakan port paralel
  • Download Drivernya disini
Komponen elektronik
  1. AVR atmega8
  2. kristal 12 MHz
  3. kapasitor 22pF
  4. konektor USB dan kabel USB
  5. soket IC 14pin 2 buah
  6. resistor 10k, 68ohm atau 100 ohm, 2k2, 1K
  7. elko 10 uF/16 V dan kapasitor 100nF
  8. LED 3 buah
  9. housing 5 pin dan 4 pin
  10. Dioda zener 3.6 volt 2 buah
Rangkai komponen diatas sesuai rangkain berikut ini:



rangkaian di pcbnya:

C1, C2       =  22pF        
C3              = 10µF          
C4              = 100nF       
D1, D2       =  Z-Diode 3V9           
IC1             =  ATMEGA8                        
LED1          =  LED               
LED2          =  LED              
Q1              = 12Mhz   
R1, R2        = 68 Ohm       
R3              = 2,2 kOhm        
R4, R5        = 470 Ohm          
R6              = 10 kOhm             
R7              = 1 kOhm                     
X1              = USB     


     Rangkai komponen elektronik seperti gambar rangkaian diatas, setelah selesai program terlebih dahulu Atmega8 dengan program yang  didownload disini,  menggunakan downloader paralell. 

Atur fusbitnya seperti gambar berikut :

Jika men-downloadnya sudah, pasangkan ATMEGA 8 ke soket, kemudian masukan tancapkan kabel usb ke komputer. Jika benar akan muncul tampilan seperti ini.


Sebentar lagi akan minta driver, next next next aja, kemudian pilih folder tempat win-driver berada.

Kemudian tinggal menunggu finish.Jika sudah finish, lepas kembali kabel usbnya,sesudah itu, masukan kembali kabel usb. Ketika dimasukan akan ada suara, seperti suara ketika kita memasukkan flash disk. Lihat led, led ada yang hidup (led power) dan ada yang mati (led untuk tanda busy).Sekarang USB downloader sudah jadi langka selanjutnya kita memerlukan software untuk menggunakan downloader ini, salah satu yang bisa digunakan yaitu Khazama, khazama saya pilih karena software ini memiliki ukuran yang kecil, dan kecepatan ketika memprogram mikrokontroler lebih tinggi daripada software yang lain seperti extreme burner avr, ataupun avrdude. Anda pun bisa menggunakan semua software tersebut untuk downloader USB ini. Untuk mendownload Khazama klik disini. Berikut Tampilan khazama
Menurut pengalaman saya mikrokontroler yang akan kita program menggunakan downloader USB ini harus menggunakan kristal external (misalnya kristal 12 Mhz) dan fuse bitnya diatur agar mikrokontroler mengunakan external clock (pengaturannya sama seperti diatas tadi). Ketika saya coba tanpa memkai kristal, USB downloader ini ternyata tidak bisa dipakai. Sedangkan untuk pengaturan fuse bit ini dilakukan dengan menggunakan downloader paralel menggunakan software ponyprog.
Cara menggunakannya:
  • Hubungkan USB downloader yang kita buat tadi kekomputer
  • Hubungkan downloader dengan mikrokontroler
  • Buka khazama, pilih file, klik load flash file to buffer, 
  • pilih file hex yang akan diisikan ke mikro, 
  • setelah itu klik command dan pilih write flash buffer to chip, jika berhasil akan muncul seperti ini:
Jika mikrokontroler yang akan didownload menggunakan usb downloader ini tanpa memakai kristal, terlebih dahulu ubah setingan fuse bit pada mikrokontroler target dengan setingan fuse bit seperti dibawah ini

Selamat Mencoba .....

Downloader Menggunakan Parallel Printer Port

Downloader Twin AVR Dan AVRdude

TwinAVR 1.1.0.2 adalah software downloader chip mikrokontroler AVR yang bersifat freeware oleh Roland Walter (www.rowalt.de/mc/).
system operasi Windows 3.x,9x,Me,Windows NT/2000/xp (dengan driver LPT)

format file : Biner, Generic HEX, dan intel HEX
file program biner ".bin"
File program Generic/intel HEX ".hex"

gambar rangkaian twin AVR/AVRdude

Instalasi Twin AVR

    Program twinAVR merupakan program aplikasi siap pakai, tidak diinstall ke dalam operasi. Namun, untuk pengguna Ms XP/W2000 perlu mengisntall driver LPT dengan cara :
1. Copy UserPort.sys ke windows\system32\drivers
2. Buka UserPort.exe
3. Klik "Update" klik "Start" hingga ok
4. Siap digunakan

  Kanda System STK200+/300.

Berikut adalah rangkaian downloader AVR menggunakan port parallel (biasa disebut LPT). Downloader ini support dengan Codevision AVR dan Ponyprog,  serta mendukung Atmega8535, Atmega8, Atmega16, dan Atmega32. (mungkin mendukung beberapa jenis Atmega lainnya). Downloader parallel ini biasa disebut Kanda System STK200+/300.


CATATAN: dikarenakan tidak menggunakan IC buffer jadi disarankan agar kabel yang berasal dari port parallel ke mikrokontroler tidak terlalu panjang, yaitu sekitar maksimal 0,5 meter, karena dikhawatirkan terjadi drop tegangan dan data yang dikirimkan menjadi rusak.

Cara mensetting di CodeVision adalah sebagai berikut:
SETTING PROGRAMMER pilih Kanda System STK200+/300 dengan Port LPT1:378h

Cara mensetting di Ponyprog adalah sebagai berikut:
SETUP → INTERFACE SETUP → PARALLEL → pilih AVR ISP I/O → LPT1 → OK

Tuesday 5 March 2013

Bahasa Pemrograman Mikrokontroler

      Mikrokontroler AVR (Alf and Vegard's Risc processor) standar memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga ATSOSxx, keluarga ATMega, dan AT86RFxx. Pada dasamya, yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.
      Mikrokontroler AVR ATmega16 adalah salah satu dari keluarga ATmega dengan populasi pengguna cukup besar. Memiliki memori flash 16k dan 32 jalur input output, serta dilengkapi dengan ADC 8 kanal dengan resolusi 10-bit dan 4 kanal PWM. Sebuah chip dengan fitur cukup lengkap untuk mendukung beragam aplikasi, termasuk robotik.
      Pemrograman mikrokontroler AVR (Atmega16) menggunakan beberapa bahasa program seperti bahasa Basic, C atau Assembler. Untuk bahasa basic kita gunakan Software Bascom AVR sedang bahasa C dan Assembler kita gunakan WinAVR. Program aplikasi yang kita susun dalam software setelah di kompilasi akan dihasilkan file dengan ekstensi heksa. File heksa inilah yang akan kita tuliskan ke memori flash mikrokontroler AVR melalui sebuah alat yang disebut Downloader. Rangkaian Downloader ada yang sederhana dan dapat kita buat sendiri. Anda juga dapat mendownload di internet skema PCB Downloader kemudian membuatnya sendiri. Pada postingan berikutnya akan saya bahas secara khusus mengenai Downloader.

Pemrograman Dengan Bascom AVR

       Pada umumnya bahasa yang dipergunakan untuk memprogram mikrokontroler adalah bahasa Assembly. Bahasa Assembly adalah bahasa pemrograman tingkat menengah, dimana program yang dibuat lebih mendekati bahasa mesin, sehingga pemenfaatan memori dapat dilakukan secara optimal, namun di sisi lain pemrogramannya menjadi relatif sulit. Karena bahasa yang dipergunakan Bascom, yaitu Basic, adalah bahasa tingkat tinggi, maka pemrograman menggunakan Bascom sangatlah mudah untuk dipelajari. Sintaksnya tidak jauh berbeda dari Basic pada umumnya, misalnya do-loop, for-next, while-wend, goto, gosub dan sebagainya. Selain itu Bascom dilengkapi dengan fungsifungsi khusus, misalnya LCD untuk menampilkan karakter pada LCD, PRINT untuk mengirimkan karakter ke PC melalui kabel RS232, SHIFTIN dan SHIFTOUT untuk komunikasi serial sinkron dan lain sebagainya. Fungsi-fungsi khusus tersebut jika dituliskan dalam bahasa Assembly akan menjadi lebih panjang dan rumit, terutama karena kita harus mengetahui register-register yang ada pada mikrokontroler.

Kontruksi bahasa BASIC pada BASCOM-AVR
Setiap bahasa pemprograman mempunyai standar penulisan program. Konstruksi dari  program bahasa BASIC harus mengikuti aturan sebagai berikut:
$regfile = "header"
'inisialisasi
'deklarasi variabel
'deklarasi konstanta
Do
'pernyataan-pernyataan
Loop
end
Pengarah preprosesor
$regfile = "m16def.dat" merupakan pengarah pengarah preprosesor bahasa BASIC yang memerintahkan untuk meyisipkan file lain, dalam hal ini adalah file m16def.dat yang berisi deklarasi register dari mikrokonroller ATmega 16, pengarah preprosesor lainnya yang sering digunakan ialah sebagai berikut:
$crystal = 12000000  'menggunakan crystal clock 12 MHz
$baud = 9600             'komunikasi serial dengan baudrate 9600
$eeprom                     'menggunakan fasilitas eeprom

Karakter Pada Bascom


Karakter pada Bascom dipergunakan untuk membentuk label, keyword, variabel, dan operator, yang kesemuanya akan membentuk suatu program. Pada dasarnya karakter pada Bascom terdiri dari karakter huruf (A-Z) dan karakter angka (0-9). Beberapa karakter pada Bascom yang dipergunakan secara khusus terdapat pada tabel 2-1.


Tipe Data


Setiap variabel pada Bascom mempunyai tipe data yang menunjukkan kapasitas dan jenis data yang dapat disimpan pada variabel tersebut. Hal ini berpengaruh pada seberapa besar memori yang diperlukan untuk menyimpan variabel tersebut. Tabel 2-2 menunjukkan tipe data pada Bascom beserta ukuran dan rentangnya.

Variabel

     Variabel adalah simbol yang digunakan untuk mewakili suatu nilai. Variabel digunakan sebagai tempat penyimpanan data atau penampung data sementara. Variabel numerik hanya dapat diisi nilai numerik (bit, byte, integer, word, long, dan single). Isi dari suatu variabel numerik dapat berupa :
· Suatu nilai konstan
       A = 5
       C = 1.1
· Nilai variabel numerik lain
       A = B
· Nilai yang didapat dengan mengkombinasikan variabel, konstan, dan operator
      Temp = A + 5
Pada Bascom terdapat beberapa aturan mengenai penamaan suatu variabel, yaitu :
· Nama suatu variabel maksimum terdiri atas 32 karakter dan dapat berupa huruf ataupun angka.
· Karakter pertama variabel haruslah berupa huruf.
· Nama variabel tidak boleh menggunakan kata-kata yang dipergunakan Bascom sebagai perintah, pernyataan, register dan operator (misal AND, OR, DIM, P1 TIMER0 dan lain sebagainya)
Sebelum digunakan suatu variabel haruslah dideklarasikan terlebih dahulu tipe data yang dipergunakan dengan menggunakan pernyataan DIM
      DIM A As Byte
      DIM Nama1 As Byte, Nama2 As Integer
      DIM Kata As String*10
Selain menggunakan DIM, variabel dapat juga ditentukan tipe datanya menggunakan
     DEFBYTE, DEFINT, DEFBIT, dan DEFWORD
     DEFBYTE A
     DEFWORD B;C;D
Suatu variabel dapat mempunyai nama lain atau alias. Umumnya alias digunakan untuk mengganti variabel standar dengan nama yang lebih mudah diingat. Hal ini akan berguna pada saat membuat program yang panjang dan kompleks, jika terdapat perubahan penggunaan pin atau port, cukup diganti pada pernyataan Alias.
     Saklar1 Alias PB.0
     LED1 Alias PD.0

Konstanta

Konstanta adalah variabel yang mempunyai nilai konstan selama program dijalankan. Untuk mendeklarasikan suatu konstanta dapat digunakan dua cara, yaitu menggunakan Dim atau Const
      Dim A As Const 5
      Dim B1 As Const &B1001
      Const Cbyte = &HF
      Const Cint = -1000
      Const Csingle = 1.1
      Const Cstring = "tes"

Larik

Larik atau array adalah kumpulan variabel dengan nama dan tipe data yang sama. Untuk membedakan satu variabel dengan variabel lainnya digunakan indeks. Indeks haruslah berupa angka dengan tipe data byte, integer atau word, dengan nilai minimal 1 (bukan 0). Pendeklarasian larik mirip seperti variabel biasa, hanya ditambahkan jumlah komponen lariknya.
      Dim a(10) as byte

Sistem Bilangan

Pada pemrograman mikrokontroler terdapat 3 sistem bilangan yang sering digunakan, yaitu desimal (basis 10), biner (basis 2), dan heksadesimal (basis 16). Cara penulisan bilangan pada Bascom disesuaikan dengan sistem bilangan yang digunakan,
yaitu :
· Untuk bilangan desimal tidak didahului angka ataupun huruf lain
· Untuk bilangan biner didahului dengan &B
· Untuk bilangan heksadesimal didahului dengan &H
      Contoh : 240 (bilangan desimal), &B11110000 (bilangan biner), &HF0 (bilangan heksadesimal)

Operator

Operator digunakan untuk melakukan operasi terhadap bilangan. Pada Bascom operator dibedakan menjadi operator aritmetik, operator relasional, dan operator logika. Operator aritmatik adalah operator yang digunakan dalam kalkulasi, yaitu + (penjumlahan), - (pengurangan), * (perkalian, / (pembagian), \ (pembagian integer), MOD (modulo = sisa dari pembagian). Operator relasional digunakan untuk membandingkan dua nilai, yang memberikan hasil benar (1) atau salah (0) dan dapat digunakan untuk membuat keputusan.


Operator logika digunakan untuk menguji suatu pola bit tertentu, manipulasi bit atau operator Boolean. Misal operator AND dapat digunakan untuk mengabaikan semua bit dalam suatu byte kecuali satu bit untuk memantau status bit tersebut


Pernyataan Bersyarat

Pada Bascom terdapat beberapa pernyataan bersyarat yang sering digunakan yaitu If – Then, If – Then – Elseif, dan Select – Case

Syntaksis If – Then

   If <syarat> Then
   <Pernyataan 1>
   <Pernyataan 2>
   Else
   <Pernyataan 3>
   <Pernyataan 4>
   End If

Sintaksis If – Then – Elseif

    If <syarat1> Then
    <Pernyataan 1>
    <Pernyataan 2>
    Elseif <syarat2>Then
    <Pernyataan 3>
    <Pernyataan 4>
    Else
   <Pernyataan 5>
   <Pernyataan 6>
   End If

Sintaksis Select – Case

     Select Case < Variabel>
     Case < Nilai 1> : <Pernyataan 1>
     Case < Nilai 2> : <Pernyataan 2>
     Case Else : <Pernyataan 3>
     End Select

Pernyataan Perulangan (Loop)

Loop adalah suatu perulangan terhadap perintah atau instruksi sampai mencapai keadaan tertentu (jumlah perulangan tersebut dapat diketahui). Fungsi dari loop sendiri banyak sekali, dan dapat menghemat dalam penulisan program karena program yang sama dapat dilakukan dengan beberapa perintah dan kemudian diulang-ulang. Terdapat 3 pernyataan perulangan yaitu Do-Loop, While-Wend, dan For-Next.

Sintaksis Do – Loop

     Do
     <Pernyataan 1>
     <Pernyataan 2>
     Loop

Sintaksis While – Wend

     While <Syarat>
     <Pernyataan 1>
     <Pernyataan 2>
     Wend

Sintaksis For – Next

     FOR <Variabel> = <Nilai Awal> TO/DOWNTO <Nilai Akhir>
     <Pertambahan/Pengurangan>
     <Pernyataan 1>
     <Pernyataan 2>
     Exit

Semoga bermanfaat..

Download : BascomAVR 2.0.7.3

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews