Kamis, 31 Desember 2009

Baca ADC

Pada artikel lalu kita mencoba bagaimana menampilkan data yang dikirim melalui portA dan ditampilkan pada display 7segment dalam bobot desimal. Nah...... sekarang kita mencoba ambil data dari hasil pembacaan adc internal. Gimana caranya,,, sangat mudah (jika kita bisa).... key...

Kita masih menggunakan rangkaian yang sama seperti kemaren. Dan sungguh sangat mudah, kita hanya menambahkan beberapa subroutin saja. Karena kita masih terbilang pemula kita pakai saja fasilitas Wizard dari Code Vision yang ada. Pertama kita aktifkan fungsi ADC internal dulu. Nach... ini caranya..



Kita masih pakai Listing Code yang kemaren dan tinggal kita tambahkan beberapa baris subroutin, Nach Listing codenya seperti ini :

;
;

while (1)
{
// Place your code here
nilai=read_adc(0);
data=nilai/1024;
data=data*500;
hextobcd(data);
tulis_7segmen ();
};
}

Nach... Listing tepat dibawah While(1) tinggal diganti saja dengan potongan listing code seperti diatas. Penjelasannya adalaha masukan dari Pin adc0 akan disimpan pada variable nilai (inget... pakai variable float saja), setelah itu bobot pada variable nilai dibagi 1024 karena adc yang kita pakai 10 bit, tapi kalau kita pakai 8 bit ya dibagi 256. Setelah dibagi dengan bobot bit adc langkah selanjutnya dikalikan dengan tegangan referensi dari adc internal yang kita pakai. Pada contoh ini teg referensi yang dibapakai 5 Volt maka dikalikan dengan 500 jika kita pakai 2.56 v maka dikalikan dengan 256. dah sekarang silahkan coba, Semoga berhasil.

Share/Bookmark

Jumat, 06 November 2009

Desain Program dengan Metode State Chart

Pada Tutorial kali ini, aqu akan mencoba membagikan apa yang aqu tau. Pada tulisan aqu ini, aqu akan menjelaskan bagaimana caranya kita bikin program. Tapi sesi kali ini aqu akan menjelaskan dari sisi pendesain bukan dari sisi programmer, walau nanti kita akan membahas bagaimana realisasi programnya juga, so ga usah khawatir. Artikel ini hanya akan mengambil contoh yang sederhana saja, karena,,,, maklum aqu juga lagi belajar.

Temen-temen pasti sudah tau dan sering mendengar dengan Algoritma Flow Chart atau diagram alir, Yah bagi kita khususnya dari teknik elektro maupun elektronika sudah sering menggunakan Algoritma diagram alir untuk mendesain suatu program. Namun kalau misalnya ditelaah lebih dalam, ada kalanya diagram alir kurang cocok untuk perancangan program yang relatif besar dan kompleks atau yang bersifat reaktif, kadang kala kita juga terlalu memaksa, bisanya jika program itu besar dan sangat kompleks, kita paksakan dengan diagram alir agar permasalahan dapat terselesaikan. Jadi aqu saranin jika nantinya kita mau merancang sistem kontrol yang mempunyai karakteristik reaktif dan selalu selalu berinteraksi dengan lingkungan (seperti aplikasi user interface, kontrol proses, kontrol pengawasan, dsb.), maka Statechart merupakan metode yang sangat cocok digunakan sebagai basis perancangan.

Namun Sedangkan jika sistem yang akan anda bangun cenderung bersifat transformatif (seperti aplikasi akusisi dan pengolahan data), maka metode yang nampaknya tepat digunakan diantaranya adalah diagram flow chart.

Nah... pada tulisan aqu ini, aqu akan mengenalkan Metode FSM (Finite State Machine) atau yang sering disebut Diagram state (State Chart Machine) adalah salah satu meode untuk menggambarkan proses operasi sebuah sistem. Sistem berbasis keadaan dapat digambarkan dengan keadaan-keadaan sistem tersebut dan transisi diantaranya. FSM ini merupakan metode yang relatif lebih mudah dan kita tidak lagi dipusingkan dengan beberapa aturan, jika pada Flow Chart kita harus mengikuti beberapa aturan seperti bentuk-bentuk dan simbol dari Flow Chart tersebut. Namun pada metode FSM kita hanya akan mengenal bentuk lingkaran saja dan anak panah, hal tersebut juga tidak ada aturan baku. jadi mau bentuk kotak, lonjong atau apapun terserah anda.

Nah... sekarang kita akan masuk pada sesi bagaimana caranya merancang dengan FSM. Pada contoh yang paling sederhana dengan 2 keadaan (state). Penjelasan gambar dibawah ini ada dua kondisi yaitu state On dengan state Off, yang mana kondisi awal adalah state Off, dan transisi akan menuju ke state On bilamana ada masukan Off maka state akan menuju ke state Off dan jika dari state Off mendapat masukan yang sesuai dengan masukan On maka state sekarang akan menuju ke state On. Begitu akan seterusnya kondisi seperti itu berlangsung.


under construction

Share/Bookmark

Jumat, 16 Oktober 2009

Tampilan 7Segment 4 digit

Huh,, pada tutorial kali ini kita saya akan membahas bagaimana caranya menggunakan tampilan display 7segment 4 digit menggunakan mikrokontroller ATmega8535 dengan Bahasa C yang paling sederhana, selanjutnya anda bisa memodifikasinya sendiri. Sebelum saya menyampaikan bagaimana listing program untuk membuat display dari 7segment saya paparkan dahulu rangkaian display 7segment tersebut. pada perancangan ini kita menggunakan teknik multiplexing untuk mengaktifkan 4 digit 7segment agar menyala secara bersamaan. Pada teknik ini sebenarnya tampilan angka yang tampil itu, menyala secara bergantian seperti layaknya multiplexer. Karena daya frame tangkap kita terbatas sehingga nyala 4 digit 7segment tampak menyala bersamaan. Nah.. sebelum saya lama-lama membahas ini, dan takutnya kata-kata yang saya tulis nanti akhirnya ngelantur kemana-mana, langsung aja ke topik permasalahan.

Dibawah ini merupakan rangkaian tampilan 4 digit 7Segment yang saya buat di PCB dengan menggunakan bantuan Protel Altium 2004, tentunya dengan teknik yang sederhana yaitu teknik sablon ala Setrika Ibuku...


Rangkaian diplay 7Segment 4 digit.

Rangkain diatas merupakan rangkaian display 7segment 4 digit. Kaki IC driver 7segment 7447 (pin A,B,C,D) berturut-turut terhub dengan port (C.0, C.1, C.2, C.3), sedangkan digit yg pertama terhubung dengan Port C.4 sampai C.7. Nah gambar yang dibawah ini merupakan realisasi rangkaian dalam Desain layout PCB yang saya buat, filenya bisa anda download disini dan disini. Rangkaian kontroller yangt digunakan terserah anda, namun pada tulisan ini saya menggunakan controller dari Atmel type AVR seri ATmega8535.


Pada sesi kali ini saya akan langsung masuk ke sesi coding, Pada tutorial kali ini saya menggunakan tool CodeVision dengan Pemrograman bahasa C. Langkah yang pertama anda bikin project baru dengan CodeWizardAVR pada CodeVision. Setting PORTA sebagai input dan PORTC sebagai Output, dan yang paling penting anda setting jenis mikrokontroler ATmega8535 pada tab chip sesuai dengan jenis IC mikrokontroler yang kita gunakan. Sesuaikan nilai Clock pada tab Chip sesuai dengan Sistem Minimum yang dipakai. Pada latihan ini saya pakai nilai kristal sebesar 11.059200 MHz. Setelah selesai anda setting parameter yang sesuai, pilihlah Generate, save & exit pada menu file, dan listing programnya akan seperti ini:



/*****************************************************
Project :
Version :
Date : 10/16/2009
Author : Musafir86
Company : Musafir86
Comments:


Chip type : ATmega8535
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/

#include
#include


// Declare your global variables here
void tampil_7segmen(void);
void hextobcd (unsigned int data);
unsigned int data=0;
unsigned char satuan,puluhan, ratusan, ribuan=0;

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0xFF;
DDRB=0xFF;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0xFF;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;


while (1)
{
// Place your code here
data=PINA;
hextobcd(data);
tampil_7segmen ();
};
}
void tampil_7segmen (void)
{
ribuan|=0x70;
PORTC=ribuan;
delay_us(500);
ratusan|=0xB0;
PORTC=ratusan;
delay_us(500);
puluhan|=0xD0;
PORTC=puluhan;
delay_us(500);
satuan|=0xE0;
PORTC=satuan;
delay_us(500);
}

void hextobcd(unsigned int data)
{
satuan=data%10;
data/=10;
puluhan=data%10;
data/=10;
ratusan=data%10;
data/=10;
ribuan=data%10;
}

Nah, Listing program yang diatas merupakan coding untuk menyalakan display 7Segment 4 digit, yang mana data masukan berasal dari PORTA dan PORTc terhubung dengan rangkaian display 7Segment. pada font yang berwarna merah merupakan coding yang harus anda modif dan tambahkan di listing program anda. Nah sampai disini sudah paham bukan, pasti bisa dan selamat mencoba. Mari kita sharing bersama.


Share/Bookmark

Jumat, 09 Oktober 2009

Kemasan IC (Packages)

Ditinjau dari teknik pembuatan dan bahan baku yang digunakan, terdapat4 (empat) jenis IC, yaitu : Jenis Monolithic, Thin film, dan Hybrid. Khusus untuk jenis hybrid, yang merupakan gabungan dari thin-film, monolithic dan thick-film. Terlepas dari teknik pembuatan dan bahan yang digunakan, keempat jenis IC tersebut dibalut dalam kemasan(packages) tertentu agar dapat terlindungi dari gangguan luar ,seperti terhadap kelembaban, debu, dan kontaminasi zat lainnya.
Kemasan IC dibuat dari bahan ceramic dan plastik, serta didesain untuk mudah dalam pemasangan dan penyambungannya.
Ada berbagai jenis kemasan IC dan yang paling populer dan umum digunakan, antara lain :
  1. DIP (Duel in- line Packages) = Mempunyai dua layer posisi kaki IC yaitu sebelah kanan dan kiri, yang menunjukkan nomor 1 adalah kaki pertama dibawah tanda lengkung pada badan IC pada garis sebelah kiri.
  2. SIP(Single in-line Packages) = IC jenis ini hanya mempunyai 1 layer posisi kaki yang terletak dibawah badan IC itu sendiri, yang menunjukkan kaki nomor 1 adalah kaki pertama dibawah tanda lengkung pada badan IC.
  3. QIP(Quad in-line Packages) =
  4. SOP(Small Outline Packages) = Pada dasarnya sama dengan tipe DIP hanya saja lebih ramping dan tipis, biasanya terpasang pada sisi layer bottom pada PCB.
  5. TO-5, TO-72,TO-202 dan TO-220 style Packages= Pada Jenis ini bentuknya seperti bentuk Transistor.
Share/Bookmark

Kamis, 08 Oktober 2009

Dinamika dan Model Kontrol Proses Industri

Materi
  • Pengertian Dinamika dan Model Proses Industri Sertakaitannya dengan Pengontrolan
  • Diagram Blok vs P&ID
  • Model Self Regulating Proses (FOPDT)
  • Model Non Self Regulating Proses(IPDT)
  • Model Dinamika Proses berdasarkan eksperimen
  • Model Dinamika Proses berdasarkan H.K. Fisika
  • Simulasi DinamikaProses dengan Simulink dan Labview
  • Berbagai StudiKasus
Dinamika Proses Industri

Penalaan merupakan suatu prosedur untuk mengatur parameter pengendali agar dapat memberikan pengendalian sesuai dengan yang dikehendaki. Sejumlah metoda penalaan konvensional salah satu diantaranya Ziegler-Nichols telah dipakai selama beberapa decade pada proses di industri Metoda tersebut mempunyai kelebihan yaitu mudah dalam penerapan serta memberikan hasil penalaan yang cukup baik. Pada umumnya metoda penalaan konvensional dilakukan dengan terlebih dahulu menyederhanakan suatu proses kedalam model proses yang berupa fungsi orde satu dengan waktu tunda (First Order Plus Dead Time yang disingkat FOPDT). Namun tidak semua proses dapat memenuhi model FOPDT karena adanya multi log (fasa tertinggal). Tingkat kesesuaian model suatu proses terhadap model FOPDT akan menentukan kualitas penalaan yang dapat diterapkan pada proses tersebut. Pada tulisan ini diperlihatkan perbandingan hasil penalaan dari beberapa metoda penalaan terhadap sejumlah proses yang mengandung multi log dan waktu tunda yang bervariasi.


Dua model yang umum dijumpai di industri:
  1. Model proses self regulating->FOPDT (First Order Plus Dead Time) yang dicirikan oleh 3 parameter: Transport delay, gain statis proses dan Time Constant. Model ini termasuk bersifat stabil, karena tanpa pengontrolan, model tersebut sudah dapat merugulasi sendiri.
  2. Model proses non self regulating-> IPDT (Integral Plus Dead Time) yang hanya dicirikan oleh 2 parameter : Transport delay dan Gain Intregative Process termasuk model yang tak stabil.
Sekilas Tentang Model Proses dan Pengontrolan
* Model proses bisa diartikan bahwa hubungan antara Variabel Input dan Variabel Output proses (Process Variable -PV) yang terlibat dalam suatu proses.

Ditinjau dari segi pengontrolan Variabel input dapat dibagi menjadi dua jenis diantaranya:
  1. Manipulated variabel, yang termasuk contoh dalam manipulasi variabel diantaranya adalah Laju aliran, laju steam, laju panas, laju konsentrasi,dll
  2. Exogenous variabel, yang termasuk contoh dalam Exogenousi variabel diantaranya Variabel input yang tidak dapat dimanipulasi. misal pada sistem kontrol ruang, salah satu variabel exogenous yang mempengaruhi temperatur ruang adalah temp lingkungan.
Secara teknis, manipulasi variabel oleh kontroler umumnya dilakukan lewat elemen penggerak yang terhubung dengan proses. Model yang perlu diketahui oleh perancang atau operator lapangan secara praktis adalah model yang merealisasikan variabel output proses yang dikontrol PV dengan variabel input proses yang berasal dari keluaran kontroler-CO, dengan kata lain penggerak yang terhubung pada proses dapat dipandang sebagai bagiab integral dari proses tersebut.
Hubungan CO terhadap PV

* Pengertian Gangguan = Dalam sistem kontrol, yang berlaku sebagai gangguan adalah perubahan atau variasi nilai variabel exogenous disekitar nilai steadynya (bukan nilai nominalnya). Gangguan lebih sering kita dengar daripada Exageneus yang mana gangguan bisa diartikan sebagai perubahan, perubahan yang akan mengakibatkan perubahan output yang ekstrim.
Sebagai contoh dalam sistem kontrol temperatur ruang, variabel gangguan yang mempengaruh i sistem kontrol adalah perubahan temperatur lingkungan disekitar nilai ambient-nya. Misal temperature AC 25 derajat C, sedangkan temperature diluar ruangan 35 derajat celcius. Suatu saat temperature diluar ruangan berubah ekkstrim dari yang semula 35 derajat Celcius menjadi 40 derajat Celcius secara otomatis temperature ruangan akan lebih panas.

Sekilas Tentang Prinsip pengontrolan SISO pada proses industri


Share/Bookmark

Rabu, 07 Oktober 2009

Infrared Transceiver

Teknik transmisi gelombang infrared dengan menggunakan Infrared Module IRM-8510 sebagai modul penerima.

Infrared Transceiver adalah sebuah sistem yang terdiri dari Infrared Transmitter dan Infrared Receiver di mana sistem ini berfungsi untuk proses komunikasi data

Aplikasi

  • Wireless Data Communication
  • Alarm System
  • Universal Remote Control

Deskripsi

Infrared Schematic

Infrared Schematic

Skema Infrared Transceiver

Untuk memperoleh jarak yang cukup jauh, Diode Infrared memerlukan sinyal dengan frekwensi 30 hingga 50 KHz. Berbeda dengan Diode LED yang hanya memerlukan level tegangan DC saja untuk mengaktifkan LED, Diode Infrared memerlukan sinyal AC dengan frekwensi 30 hingga 50 KHz untuk mengaktifkannya. Cahaya infrared tersebut tidak dapat ditangkap oleh mata manusia, sehingga diperlukan phototransistor untuk mendeteksinya.

Phototransistor adalah merupakan sebuah transistor yang akan saturasi pada saat menerima sinar infrared dan cut off pada saat tidak ada sinar infrared. IR Module adalah sebuah rangkaian yang terdiri dari sebuah phototransistor dan filter yang terbentuk dalam satu modul di mana collector dari phototransistor adalah merupakan output dari modul ini. Pada saat phototransistor cut off maka tidak terjadi aliran arus dari collector menuju ke emitter sehingga collector yang merupakan output dari IR Module akan berkondisi high. Apabila phototransistor saturasi maka arus mengalir dari collector ke emitter dan output dari IR Module akan berkondisi low.

Transmisi data dilakukan dengan menggunakan prinsip aktif dan non aktifnya LED Infrared sebagai kondisi logic 0 dan logic 1. Seperti telah dijelaskan sebelumnya bahwa untuk mengaktifkan LED Infrared diperlukan frekwensi sebesar 30 hingga 40 KHz, maka dalam hal ini logic 0 berarti sinyal berfrekwensi 30 KHz mengalir ke LED Infrared dan logic 1 berarti tidak ada sinyal yang mengalir ke LED Infrared, hal ini seperti yang tampak pada hubungan antara TXD dan TX pada Timing Diagram berikut.

Untuk menghasilkan sinyal seperti yang tampak pada TX dibutuhkan sebuah rangkaian modulator yang terdiri dari sebuah gerbang dan rangkaian R-C sebagai oscillator. Gerbang tersebut menggunakan IC 74HC132 di mana pada saat pin TXD berkondisi high dan TXD berkondisi low maka output dari IC ini sesuai dengan tabel kebenaran yang ada pada data sheet adalah high. Namun bila sebaliknya TXD berkondisi high maka sesaat output dari IC ini berubah ke low sehingga capacitor C1 akan membuang muatannya melalui R1. Bila tegangan C1 terbuang hingga di bawah tegangan ambang 74HC132 maka input pin nomor 4 dari IC ini akan dianggap berkondisi low sehingga outputnya berubah menjadi high.

C1 kembali terisi melalui R1 hingga tegangan pada capacitor ini melebihi tegangan ambang dan input pin nomor 4 dianggap berkondisi high. Bila pada saat itu TXD masih berkondisi high maka output dari gerbang ini yaitu pin nomor 6 akan berkondisi low dan C1 kembali membuang, demikian seterusnya C1 akan terisi hingga di atas tegangan ambang 74HC132 (2,5 V) dan terbuang hingga di bawah tegangan ambang 74HC132 pula. Pengisian dan pembuangan pada C1 yang terjadi berkali-kali ini menyebabkan terjadinya osilasi dengan frekwensi yang dapat dihitung dengan menggunakan rumus berikut:

T = Waktu Pengisian C1 + Waktu Pembuangan C1

Waktu Pengisian C1 = Waktu Pembuangan C1 maka

T = 2 * Waktu Pengisian C1

di mana VT- adalah batas bawah tegangan ambang 74HC132 yaitu sekitar 2 Volt dan VT+ adalah batas atas dari tegangan ambang 74HC132 yaitu sekitar 3 Volt. Dengan R sebesar 3,9K, C10nF dan Vsupply = 5Volt maka akan diperoleh harga T = 31,63 uS


F = 31,616 KHz

Jadi pada intinya apabila input TXD berkondisi high maka frekwensi oscillator sebesar 31,616 KHz yang terjadi pada pin nomor 4 akan dilewatkan ke outputnya dengan frekwensi yang sama persis, namun bila TXD berkondisi low maka osilasi pada pin nomor 4 akan berhenti dan output dari gerbang adalah high.

Infrared Timing Diagram

Infrared Timing Diagram

Timing Diagram

Ayunan sinyal berfrekwensi 31,6 KHz ini diperkuat lagi oleh gerbang lain dari 74HC132 yang dibentuk menjadi inverter dan diteruskan ke transistor BD400 yang mengalirkan sinyal-sinyal frekwensi hasil dari modulator tersebut ke Diode Infrared.

Pancaran Diode Infrared diterima oleh IR Module dan membuat output modul ini menjadi low hingga pancaran Diode Infared berhenti dan output dari modul menjadi high. Hasil output dari modul ini yaitu RXD seperti yang tampak pada timing diagram mempunyai bentuk gelombang yang sama persis dengan TXD.

Komponen pendukung

Modul pendukung

Share/Bookmark


Kelemahan-kelemahan IC

Pada uraian sebelumnya nampak seolah-olah IC begitu sempurna dibanding komponen elektronik konvensional, padalah tak ada sesuatu komponen yang tidak memiliki kelemahan.

Kelemahan IC antara lain adalah keterbatasannya di dalam menghadapi kelebihan arus listrik yang besar, dimana arus listrik berlebihan dapat menimbulkan panas di dalam komponen, sehingga komponen yang kecil seperti IC akan mudah rusak jika timbul panas yang berlebihan.
Demikian pula keterbatasan IC dalam menghadapi tegangan yang besar, dimana tegangan yang besar dapat merusak lapisan isolator antar komponen di dalam IC
Contoh kerusakan misalnya, terjadi hubungan singkat antara komponen satu dengan lainnya di dalam IC, bila hal ini terjadi, maka IC dapat rusak dan menjadi tidak berguna.



Twitter Delicious Facebook Digg Stumbleupon Favorites More