Kamis, 12 November 2015

Membuat Karakter Spesial pada LCD Alphanumeric

LCD alphanumeric sudah tentu tidak asing lagi bagi para hobi mikrokontroler. Tapi pada kesempatan kali ini saya ingin mengulas lebih lanjut mengenai LCD alphanumeric.
LCD alphanumeric merupakan alat penampil (display) yang digunakan untuk menampilkan karakter atau tulisan. Kebanyakan perangkat ini telah dilengkapi perangkat pengontrol sendiri, sehingga untuk memanfaatkan perangkat ini kita tinggal mengikuti aturan standar yang telah disimpan dalam pengontrol tersebut.

LCD Alphanumeric dipasaran yang umum dijumpai adalah LCD dengan ukuran 16x2, 16x4, 20x2, 20x4 dengan kontroler yang umum dijumpai adalah kontroler dengan prefik LMxxx. Ukuran tersebut mewakili jumlah karakter pada satu baris dan jumlah baris dalam satu modul. Misalnya LCD 16x2 mempunyai kapasitas 16 karakter per baris dan dalam 1 modul terdapat 2 baris.

Rabu, 13 Agustus 2014

Engine scanner Error pada printer HP Laserjet P1000-P1500


Engine scanner Error termasuk dalam kategori fatal error pada printer HP Laserjet P1000 – P1500. Pada kondisi ini printer akan memberikan pesan kesalahan pada komuter dan software interface dari HP support akan menampilkan kesalahan yang terjadi seperti gambar dibawah ini.

Gb.1 Engine Scanner Error Message

Kurang lebih isi pesanya adalah terjadi kesalahan pada scanner laser, untuk mengatasinya kita disarankan mematikan printer atau mencabut jack power kemudian menunggu 30 detik dan menyalakan kembali printer. Jika kesalahan masih terjadi disarankan untuk menghubungi HP Custommer support.
Terkadang pesan error tersebut tidak ditampilkan pada computer karena terjadinya berbagai permasalahan komunikai antara printer dengan computer dan konflik antara software interface dengan OS dari computer. Akan tetapi jika terjadi error ini printer sendiri menunjukan kode dengan cara menyalakan kedua lampu orange dan hijau secara bersamaan dan tidak berkedip.
Gb2.Lampu indikator pada saat fatal error terjadi
Permasalahan ini dapat terjadi karena beberapa hal diantaranya:
  • LED laser mati atau tidak bekerja dengan baik.
  • Reciever optic rusak. 
  •  Laser tidak dipantulkan dengan sesuai oleh cermin reflektornya. 
  •  Kerusakan pada rangkaian interface laser scanner dengan mainboard.

Rabu, 14 Mei 2014

INPUT / OUTPUT DIGITAL PADA PIC16F628A


PIC16F628A memiliki 2 buah port input output yaitu PORTA dan PORTB. Beberapa pin pada kedua PORT ini ter-multiplex dengan fungsi alternatifnya.

Fungsi-fungsi alternatif pada PORTA dan PORTB akan dibahas pada bab selanjutnya. 

PORTA


PORTA merupakan latch 8-bit. Tiap bit pada PORTA kemudian disimbolkan dengan RA. Misalnya bit ke-7 dari PORTA disebut RA7. POTA memiliki register pengendali arah data yang disebut TRISA.

Fungsi alternatif yang ter-multiplex pada PORTA adalah sebagai berikut.

1. Analog komparator input (AN) pada pada PORTA 3:0.

2. Vreff output pada RA2.
3. Komparator output 1 (CMP1) pada RA3, komparator output 2 (CMP2) pada RA4.
4. Timer 0 clock input (T0CKI) pada RA4.
5. Master Clear (MCLR) pada RA5.
6. Programming voltage input (Vpp) pada RA5.
7. Crystal Oscillator input (OSC1) pada RA7.
8. Crystal Oscillator output (OSC2) pada RA6.
9. External clock input (CLKIN) pada RA7.
10. Clock output (CLKOUT) pada RA6.

Untuk membuat pin-pin pada PORTA sebagai input maka nilai register TRISA pada bit yang sesuai diberi logika ‘1’. Semua pin pada PORTA dapat dijadikan input dengan catatan sebagai berikut.

1. MCLR pada RA5 di disable.

2. Menggunakan oscillator internal.
3. Fungsi alternatif dari tiap pin dimatikan.

Untuk membuat pin-pin pada PORTA sebagai output maka nilai register TRISA pada bit yang sesuai diberi logika ‘0’. Tidak semua pin pada PORTA dapat dijadikan output yaitu RA5 karena tidak memiliki driver output. Sedangkan untuk membuat RA7:RA6 harus menggunakan oscillator internal. Khusus untuk RA4, driver outputnya berupa open drain sehingga apabila akan membuat RA4 sebagai output harus dihubungkan dengan rangkaian perantara yang aktif low. 

Sabtu, 02 November 2013

Akurasi Timer/Counter pada AVR


Beberapa waktu yang lalu ada seorang kawan yang minta diajari membuat timer 1 detik menggunakan mikrokontroler. Kebetulan uC yang dia pakai Atmega8 dengan clock intenal.
Langsung aja tek bikinin pake CodeVision AVR  dengan memanfaatkan interrupt overflow pada timer0.
Pada CodeVision AVR terdapat fasilitas CodeWizard yang mempermudah kita dalam membuat program. Untuk mengaktifkan interrupt overflow timer0 kita tinggal memilih clock source, clock value, Overflow interrupt, dan timer value pada tab timer0.
Untuk membuat timer 1 detik dengan frekuensi clock uC 8MHz internal saya menggunakan parameter timer0 sebagai berikut.
  • Clock source = system clock
  • Clock value = 1000,000 kHz
  • Timer value = 0x9B
  •  Memberi centang pada kotak Overflow interrupt.
Pada proses diatas sebenarnya kita mengubah nilai pada register TCCR0, TCNT0 dan TIMSK. Tiga bit LSB dari register TCCR0 merupakan bit CS0 (Clock select) yang digunakan untuk menentukan frekuensi clock dari timer0.
Nilai bit CS02 s/d CS00 sesuai tabel 1 dibawah.
Tabel.1 Timer/Counter0 Prescaler

Karena menggunakan clock value 1000,000kHz (1MHz) yang berarti 1/8 dari frekuensi clock uC, maka register TCCR0 bernilai 0x02.
TCNT0 merupakan register yang bertugas untuk menghitung pulsa yang masuk kedalam timer0/counter0. Setelah program berjalan maka niai register ini akan bertambah satu setiap clock timernya dan akan mengalami overflow setelah mencapai nilai 0xFF. Ketika register TCNT0 mengalami overflow maka bit TOV0(Timer/Counter0 Overflow Flag) pada register TIFR (Timer/Counter Interrupt Flag Register) akan bernilai 1 dan akan kembali ke-0 jika rutin interrupsi dijalankan. Akan tetapi jika rutin interrupsi tidak diaktifkan maka nilai TOV0 akan tetap set(1) dan harus di clear (0) secara manual.
Nilai TCNT0 dapat diisi dengan nilai 0x00 s/d 0xFF. Nilai ini sebagai inisialisasi nilai timercounter yang kita buat. Pada proses menggunakan codeWizard diatas, saya memasukan nilai timer value 0x9B atau senilai dengan 155 desimal. Ini dimaksudkan untuk mempermudah perhitungan. Jika inisialisasi TCNT0 = 155 dan maksimal nilainya 255 maka nilai TCNT0 hanya akan menghitung sebanyak 100 pulsa. Setiap 100 pulsa timer/counter0 terjadi Overflow pada TOV0.
Memberi tanda centang pada Overflow interrup di CodeWizard dialog akan mengubah nilai register TIMSK(Timer/Counter Interrupt Mask Register). Timer/counter0 hanya memiliki fasilitas interrupt overflow. Jika ini diaktifkan maka Bit TOIE0(Timer/Counter Interrupt Enable) akan bernilai 1 (set). Bit TOIE0 ini berada pada bit ke-0 register TIMSK sehingga jika kita akan mengaktifkan timer0 Overflow interrupt maka nilai register TIMSK adalah 0x01.
Sedangkan untuk mengaktifkan fungsi interrupt global dengan menambahkan #asm(“sei”) yang artinya men-set enable interrupt. Dengan menambahkan perintah ini maka nilai bit I pada register SREG akan bernilai 1. Untuk meng-clear kan bit-I digunakan code #asm(“cli”).
Setelah di-generate maka akan dibuatkan template program sesuai kebutuhan kita. Untuk seting parameter timer0 dan interupsi terdapat pada subrutin void main(void) berikut. 

Jumat, 30 Agustus 2013

Generator Sinus Menggunakan Mikrokontroler ATmega8

Sebagian besar orang yang hoby mainan mikrokontroler memanfaat DAC melalui PWM. Tidak salah memang karena level tegangan dinyatakan pada persentase duty cycle pada gelombang kotak keluaran port PWM.

Pada kesempatan kali ini saya sedikit mencoba trik DAC yang lain yaitu dengan merubah level 8 bit bilangan pada port mikrokontroler kedalam level tegangan. Rangkaian konverter tegangan utama yaitu rangkaian 2R-R dibawah.
gambar 1. Rangkaian DAC (2R-R)
Langkah berikutnya adalah menyusun data yang akan dikeluarkan melalui rangkaian DAC diatas.
Sesuai dengan judul postingan ini, maka data yang akan dikeluakan merupakan serangkaian data yang akan membentuk gelombang sinus. Kali ini jumlah data yang akan dikeluarkan sebanyak 256 data. Dari 256 data, nilai masing – masing datanya disusun dalam bentuk array. Berikut array untuk gelombang sinus.

const char Sinus[] = { 
            0x80, 0x83, 0x86, 0x89, 0x8c, 0x8f, 0x92, 0x95, 0x98, 0x9c, 0x9f, 0xa2, 0xa5, 0xa8, 0xab, 0xae,
            0xb0, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xc1, 0xc4, 0xc7, 0xc9, 0xcc, 0xce, 0xd1, 0xd3, 0xd5, 0xd8,
            0xda, 0xdc, 0xde, 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xed, 0xef, 0xf0, 0xf2, 0xf3, 0xf5,
            0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfc, 0xfd, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
            0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfd, 0xfc, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 
            0xf6, 0xf5, 0xf3, 0xf2, 0xf0, 0xef, 0xed, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe2, 0xe0, 0xde, 0xdc,
            0xda, 0xd8, 0xd5, 0xd3, 0xd1, 0xce, 0xcc, 0xc9, 0xc7, 0xc4, 0xc1, 0xbf, 0xbc, 0xb9, 0xb6, 0xb3,
            0xb0, 0xae, 0xab, 0xa8, 0xa5, 0xa2, 0x9f, 0x9c, 0x98, 0x95, 0x92, 0x8f, 0x8c, 0x89, 0x86, 0x83,
            0x80, 0x7c, 0x79, 0x76, 0x73, 0x70, 0x6d, 0x6a, 0x67, 0x63, 0x60, 0x5d, 0x5a, 0x57, 0x54, 0x51,
            0x4f, 0x4c, 0x49, 0x46, 0x43, 0x40, 0x3e, 0x3b, 0x38, 0x36, 0x33, 0x31, 0x2e, 0x2c, 0x2a, 0x27,  
            0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1b, 0x19, 0x17, 0x15, 0x13, 0x12, 0x10, 0x0f, 0x0d, 0x0c, 0x0a,
            0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
            0x09, 0x0a, 0x0c, 0x0d, 0x0f, 0x10, 0x12, 0x13, 0x15, 0x17, 0x19, 0x1b, 0x1d, 0x1f, 0x21, 0x23,
            0x25, 0x27, 0x2a, 0x2c, 0x2e, 0x31, 0x33, 0x36, 0x38, 0x3b, 0x3e, 0x40, 0x43, 0x46, 0x49, 0x4c,
            0x4f, 0x51, 0x54, 0x57, 0x5a, 0x5d, 0x60, 0x63, 0x67, 0x6a, 0x6d, 0x70, 0x73, 0x76, 0x79, 0x7c
            };

Selanjutnya tinggal menerapkanya kedalam rangkaian percobaan.

Sabtu, 20 Juli 2013

Aplikasi Jaringan Sensor Nirkabel Untuk Pengukuran Pergerakan Tanah Menggunakan Sensor Percepatan 3 Sumbu Pada Daerah Rawan Longsor

Dwi Kurniawan, Imron Rosyadi,S.T.,M.Sc, Azis Wisnu Widhi N,S.T.,M.Eng

Program Studi Teknik Elektro, Fakultas Sains dan Teknik, Universitas Jenderal Soedirman

Jl.Mayjend Sungkono KM 05 Blater Purbalingga Indonesia
AbstractOne of the efforts in mitigating landslides are periodic monitoring of soil movement. It is possible if there is a device that have abillity to measuring ground displacement. H48C accelerometer is a device that capable of measuring dynamic and static acceleration so that it is possible to measure the displacement of the soil material. Problem in the design of ground displacement measurement system is a field that is generally located on the slopes of hills or mountains. Manufacture of wireline system will certainly have limitations in terms of flexibility and portability. Wireless Sensor Networks (WSN) is one solution to these problems. Transfer data on WSN can use the XBee RF module using ZigBee communication network.

Index Terms Accelerometer, Wireless Sensor Networks, Landslide, ZigBee.

I.     Pendahuluan

Komponen utama dalam perancangan JSN untuk pengukuran pergerakan tanah terdiri dari unit sensor, dan unit komunikasi. Unit sensor tersusun oleh akselerometer yang digunakan untuk mengukur perpinahan material tanah. Untuk unit komunikasi tersusun oleh modul Xbee sehingga transfer data antar node dapat dilakukan secara wireless. Selain unit sensor dan unit komunikasi terdapat juga unit Real Time Clock (RTC) sebagai unit yang mengatur pewaktuan pengiriman data.
Perpindahan posisi material tanah dapat dideteksi menggunakan sensor akselerometer H48C dengan melakukan integrasi berganda pada data percepatan yang didapat dari akselerometer. Data yang diperoleh dari akselerometer mengandung noise sehingga diperlukan pemfilteran data. Filter yang digunakan merupakan filter digital Low Pass Filter (LPF) dan menggunakan prototype filter Bessel.

Sabtu, 29 Juni 2013

Unlock TV China (ICHICKO 21”) Menggunakan Mikrokontroller


Mungkin judul posting ini kurang sesuai tapi binggung mau ngasih judul apa Cuma pengin berbagi pengalaman aja.
Beberapa waktu yang lalu dapat sms gini :

081327XX... : “Mas, bisa benerin TV China ga?”
Me  :”Ni siapa?dari mana? Merk nya pa?permasalahanya knp?”
081327XX... : “mr A, dari ds B. ICHICKO 21 inci, nyala Cuma biru ada tulisan LOCK”

Deket rumah mr 081327xx ada tukang servis TV jadi ga enak, sedikit males juga.

Me  : “Ouw, itu ke progrm nya ke kunci mas, ke mas Z ja pasti bisa.”
081327XX... : “udah mas, remot ilang jd mas Z ga sanggp.”
Me  : “ya dah nanti tek coba.”

Demikian awal mula kejadianya...
Dari sms yang saya terima dapat kesimpulan masalah pada EEPROM, dan remot TV ga ada sehingga susah buat unlock pake remot universal, lagi pula sejatinya saya bukan tukang servis TV jadi ga hafal kode servis TV yang begitu banyak merknya.

So, langsung saja persiapan amunisi...

Mengatasi Error B200 pada printer Canon iP2770



Error B200 pada printer canon iP2770 merupakan error yang terjadi karena tegangan kerja printer yang masuk ke catridge tidak stabil. Hal ini dikarenakan beberapa faktro diantaranya:

  1. Sering terjadi lonjakan tegangan PLN yang mensuplai printer. Bisa disebabkan karena tiba – tiba listrik padam dan nyala sedangkan kontak printer masih terhubung meskipun printer dalam keadaan off.
  2. Catridge yang sudah error, meskipun masih bekerja seperti halnya catridge normal akan tetapi catridge ini mengkonsumsi arus lebih besar dari pada catridge yang masih normal.
Error B200 ditandai dengan munculnya pesan error pada saat printer diperintahkan bekerja. Biasanya pesan error ini memberikan keterangan untuk melepas sambungan listrik dan menghubungi kontak servis. Kemudian setelah pesan error ini muncul printer akan berkedip pada indikator resume(orange) dan indikator power(hijau) secara bergantian.
Error B200 dapat diatasi sendiri atau jika anda kurang yakin silakan bawa ketempat servis printer biasanya anda ditawarkan untuk ganti logic board yang harganya hampir sama dengan harga printer baru.
Untuk mengatasi error ini perlu dilakukan pengecekan pada 3 bagian utama yaitu power supply printer, catridge, dan logic board. Sehingga berikut langkah – langkah mengatasi error B200 pada printer canon iP2770.