Kamis, 10 Februari 2011
APAKAH KECANTIKANKU HILANG BILA MEMAKAI JILBAB?
Lagi-lagi pagi ini tidak bisa melanjutkan tidur seperti hari-hari sebelumnya. Kebiasaan berubah setelah melewati bulan rhomadhan yang begitu singkat, dan ingin sekali selamanya berada di bulan itu tapi sayang bulan romadhan cuma 1 bulan saja itu sudah menjadi aturan sang ...pencipta yang tak dapat di ganggu gugat. Di sudut kamar yang acak-acakan berhiaskan secercah sinar matahari yang berani menembus jendela tua kamar ku dan di temani secangkir coffee by accident alias kalo orang kampung bilang mah kopi tubruk.
Pagi ini aku merenung. Hari-hari yang lalu, setiap melangkahkan kaki keluar dari pintu reot gubuk derita, mata ini selalu di hiasi berbagai macam perempuan yang berlainan bentuk dan rupa. ada yang bersegitiga, ada yang telanjang kotak dan ada pula yang telanjang bulat (bukan cerita porno). kebanyakan perempuan di dunia ini mereka berpakaian tapi seperti tidak berpakaian, jadi ingat kata-kata seorang nenek tua yang melihat perempuan memakai pakaian sexy yaitu you can see, semua mata bisa melihat bebas ke arahnya.
"neeeng, pake baju nenek aja... nenek masih punya banyak bahan di rumah." kata seorang nenek tua yang tidak sengaja kata yang di ucapkannya terdengar oleh ku.
perempuan sexy itu hanya dapat melihat nenek dengan mata yang di runcingkan dan menganggap si nenek itu kolot, tapi memang benar si nenek udah kolot hehe. aku hanya bisa diam menatap perempuan itu dan menyimpulkan senyum yang paling manis dari bibir ku. Tiba-tiba hembusan angin menerpa wajahku, astagfirullah.. wah mata aku kenapa nih.. duuuh perih kelilipan lagi. wah mungkin ini teguran dari sang pembuat sekenario kehidupan agar aku tidak jelalatan lagi matanya. dengan mata merah aku berjalan menunduk dan terduduk di bangku pinggir taman. Sambil menahan rasa sakit, aku mendengar suara manis mendayu di samping aku dengan isak tangis tersedu sendan mendalam. Pelan-pelan ku tolehkan wajah manis ku kehadapannya, dan aku berkata
"eneeeeeng, kenapa km menangis sambil memegang kerudung berwarna merah itu?" tanya ku padanya.
perempuan itu menatapku dengan wajah heran dan aneh, mungkin menurut dia aku ini makhluk paling menyeramkan bagi dia.
"tidak apa-apa mas..cuma merasa takut saja"
"looooh.. kenapa takut? apa wajahku manakutkan kamu?"
"bukan mas... bukan itu"
huuuufh.. ternyata bukan karena wajahku ini, aku menghela nafas karena merasa lega. bagus deh kalo bukan karena wajahku ini.
ia bercerita panjang, sebenarnya gadis yang memegang kerudung merah itu ternyata seorang mu'alaf dan seorang publicfigur, wajahnya cantik bersinar cerah seperti intan permata. ia menangis bukan karena paksaan dari seseorang, melainkan dilema pada dirinya sendiri. dan ia bertanya kepada ku..
"apakah kecantikan ku akan hilang bila memakai jilbab?"
ku terdiam sejenak setelah mendengar pertanyaan itu..
tak banyak kata dan ku terpaku secara permanen subhanallah dalam hati aku berucap. ternyata ada sosok perempuan cantik yang ingin memakai hijab namun takut kecantikannya hilang.
aku pun menjawab sekenanya aja mudah-mudahan bisa di terima olehnya.
"jangan mengira kalau islam itu menghendaki kamu untuk mengenakan pakaian jelek yang membuat penampilan buruk dan mengundang banyak masalah dan fitnah. Rosullullah selalu tampil bersih dan mengajak menjaga kebersihan. perempuan yang memakai hijab atau jilab akan terlihat lebih anggun dan cantik. seperti halnya sebuah batu permata mahal yang di bungkus rapih dan terlihat cantik memukau hanya dan laki-laki akan merasa segan bila berdekatan dengannya dan hanya orang tertentu yang sudah syah untuk menyentuhnya."
tak lama perempuan itu memandang beberapa detik ke kerudung yang di pegangnya lalu ia pergi tanpa kata.
aku heran ada apa dengan perempuan itu...
aku menghela nafas kembali setelah kejadian itu. 30 menit berlalu ada yang berlari ke arahku sosok perempuan tinggi semampai yang tubuhnya di balut dengan selendang merah dari ujung kepala hingga kaki. subhanallah mataku terasa ingin copot takjub melihat keindahan dunia yang menghiasi alam ini kecantikan ciptaan tuhan yang begitu mempesona. perempuan itu telah membalutkan kerudung merah di kepalanya dan menutup tubuhnya rapat hingga tak ada celah untuk melihat kulit mulusnya lagi.
dan ia berkata "terimakasih yah mas.. saya tidak takut kecantikan saya hilang karena memakai jilbab, dan jilbab ini telah membuat saya merasa lebih nyaman dan cantik ^_^"
hanya senyum manis yang bisa aku beri ke dia, karena masih terpaku melihat gadis berjilbab itu..AJIIIIB TENAAAAAAN
kecantikan yang agung terpancar sempurna seperti firman Allah dalam surat Al-ahzab ayat 59 yang berbunyi
"wahai nabi, suruh lah istri-istri mu, anak-anak perempuanmu, dan perempuan-perempuan yang beriman supaya melabuhkan pakaian bagi mereka seluruh tubuhnya (semasa mereka keluar) cara yang demikian lebih sesuai untuk mereka di kenal (sebagai perempuan baik-baik) maka dengan itu mereka tidak di ganggu. dan ingatlah (Allah) maha pengampun lagi maha mengasihi.
Alfaridzi
Minggu, 06 Februari 2011
Pacaran Menurut ” ISLAM “
Gimana sich sebenernya pacaran itu, enak ngga’ ya? Bahaya ngga’ ya ? Apa bener pacaran itu harus kita lakukan kalo mo nyari pasangan hidup kita ? Apa memang bener ada pacaran yang Islami itu, dan bagaimana kita menyikapi hal itu?
Memiliki rasa cinta adalah fitrah
Ketika hati udah terkena panah asmara, terjangkit virus cinta, akibatnya…… dahsyat man…… yang diinget cuma si dia, pengen selalu berdua, akan makan inget si dia, waktu tidur mimpi si dia. Bahkan orang yang lagi fall in love itu rela ngorbanin apa aja demi cinta, rela ngelakuin apa aja demi cinta, semua dilakukan agar si dia tambah cinta. Sampe’ akhirnya……. pacaran yuk. Cinta pun tambah terpupuk, hati penuh dengan bunga. Yang gawat lagi, karena pengen bukti’in cinta, bisa buat perut buncit (hamil). Karena cinta diputusin bisa minum baygon. Karena cinta ditolak …. dukun pun ikut bertindak.
Sebenarnya manusia secara fitrah diberi potensi kehidupan yang sama, dimana potensi itu yang kemudian selalu mendorong manusia melakukan kegiatan dan menuntut pemuasan. Potensi ini sendiri bisa kita kenal dalam dua bentuk. Pertama, yang menuntut adanya pemenuhan yang sifatnya pasti, kalo ngga’ terpenuhi manusia bakalan binasa. Inilah yang disebut kebutuhan jasmani (haajatul ‘udwiyah), seperti kebutuhan makan, minum, tidur, bernafas, buang hajat de el el. Kedua, yang menuntut adanya pemenuhan aja, tapi kalo’ kagak terpenuhi manusia ngga’ bakalan mati, cuman bakal gelisah (ngga’ tenang) sampe’ terpenuhinya tuntutan tersebut, yang disebut naluri atau keinginan (gharizah). Kemudian naluri ini di bagi menjadi 3 macam yang penting yaitu :
Gharizatul baqa’ (naluri untuk mempertahankan diri) misalnya rasa takut, cinta harta, cinta pada kedudukan, pengen diakui, de el el.
Gharizatut tadayyun (naluri untuk mensucikan sesuatu/ naluri beragama) yaitu kecenderungan manusia untuk melakukan penyembahan/ beragama kepada sesuatu yang layak untuk disembah.
Gharizatun nau’ (naluri untuk mengembangkan dan melestarikan jenisnya) manivestasinya bisa berupa rasa sayang kita kepada ibu, temen, sodara, kebutuhan untuk disayangi dan menyayangi kepada lawan jenis.
Pacaran dalam perspektif islam
pacaran merupakan wadah antara dua insan yang kasmaran, dimana sering cubit-cubitan, pandang-pandangan, pegang-pegangan, raba-rabaan sampai pergaulan ilegal (seks). Islam sudah jelas menyatakan: “Dan janganlah kamu mendekati zina; sesungguhnya zina itu adalah suatu perbuatan yang keji dan suatu jalan yang buruk.” (Q. S. Al Isra’ : 32)
Seringkali sewaktu lagi pacaran banyak aktivitas laen yang hukumnya wajib maupun sunnah jadi terlupakan. Sampe-sampe sewaktu sholat sempat teringat si do’i. Pokoknya aktivitas pacaran itu dekat banget dengan zina. Jadi kesimpulannya PACARAN ITU HARAM HUKUMNYA, dan tidak ada legitimasi Islam buatnya, adapun beribu atau berjuta alasan tetep aja pacaran itu haram.
Adapun resep nabi yang diriwayatkan oleh Abdullah bin Mas’ud: “Wahai generasi muda, barang siapa di antara kalian telah mampu serta berkeinginan menikah. Karena sesungguhnya pernikahan itu dapat menundukkan pandangan mata dan memelihara kemaluan. Dan barang siapa diantara kalian belum mampu, maka hendaklah berpuasa, karena puasa itu dapat menjadi penghalang untuk melawan gejolak nafsu.”(HR. Bukhari, Muslim, Ibnu Majjah, dan Tirmidzi).
Jangan suka mojok atau berduaan ditempat yang sepi, karena yang ketiga adalah syaiton. Seperti sabda nabi: “Janganlah seorang laki-laki dan wanita berkhalwat (berduaan di tempat sepi), sebab syaiton menemaninya, janganlah salah seorang dari kalian berkhalwat dengan wanita, kecuali disertai dengan mahramnya.” (HR. Imam Bukhari Muslim).
Dan untuk para muslimah jangan lupa untuk menutup aurotnya agar tidak merangsang para lelaki. Katakanlah kepada wanita yang beriman: “Hendaklah mereka menahan pandangannya, dan memelihara kemaluannya, dan janganlah mereka menampakkan perhiasannya, kecuali yang (biasa) nampak daripadanya. Dan hendaklah mereka menutupkan kain kudung ke dadanya, dan janganlah menampakkan perhiasannya.” (Q. S. An Nuur : 31).
Dan juga sabda Nabi: “Hendaklah kita benar-benar memejakamkan mata dan memelihara kemaluan, atau benar-benar Allah akan menutup rapat matamu.”(HR. Thabrany).
Yang perlu di ingat bahwa jodoh merupakan QADLA’ (ketentuan) Allah, dimana manusia tidak punya andil nentuin sama sekali, manusia cuman dapat berusaha mencari jodoh yang baik menurut Islam.
Tercantum dalam Al Qur’an: “Wanita-wanita yang keji adalah untuk laki-laki yang keji, dan laki-laki yang keji adalah buat wanita-wanita yang keji (pula), dan wanita-wanita yang baik adalah untuk laki-laki yang baik, dan laki-laki yang baik adalah untuk wanita-wanita yang baik (pula). Mereka (yang dituduh) itu bersih dari apa yang dituduhkan oleh mereka (yang menuduh itu). Bagi mereka ampunan dan rezki yang mulia (surga).”
KA
Sabtu, 29 Januari 2011
Lima Makanan Yang Mengobati Stres atau Sakit Hati

Setiap kali putus cinta pasti hati anda terasa sakit, dibutuh sesuatu untuk mengobati masalah ini agar tidak terjadi berlarut-larut.
Salah satu cara yang ampuh untuk mengobati sakit hati adalah makan, berikut ini adalah makanan-makanan yang dapat menyembuhkan sakit hati. Seperti yang dikutip dari the stir.
1.Es Krim
Makanan yang satu ini sangat ampuh mengobati sakit hati. Lezatnya semangkuk es krim dapat membuat orang melupakan masalah percintaanya.
2.Selai Kacang
Menikmati selai kacang cukup ampuh mengatasi sakit hati. Anda bisa menikmatinya dengan dioleskan ke roti atau langsung mencoleknya sambil menonton DVD.
3.Kue atau Brownies
Sebuah kue atau brownies hangta tentu sangat enak untuk dinikmati, buatlah kue atau brownies anda sendiri untuk menikmati setiap proses pembuatannya.
4.Burger dan Kentang Goreng
Mengabaikan kalori yang masuk sekali-kali tidak ada salahnya, khususnya saat sedang patah hati. Ikuti hasrat anda untuk menikmati sebuah burger double-cheese dan kentang goreng ukuran besar, maka rasa sakit hati juga akan terlupakan.
5.Coklat
Pilihlah dark chocolate sebagai pilihan makanan untuk melupakan si dia, anda bonus antioksidan di dalamnya yang baik untuk menjaga kulit dari radikal bebas.
6.Sup Sayur
Semangkuk sup hangat dengan sayur-sayuran dapat membuat tubuh merasa lebih nyaman dan relaks sekaligus sehat.
7.Buah Beri
Belilah buah beri sebanyak-banyaknya dan jadikan camilan sehat. Daripada mengambil keripik, mencamil buah beri seperti stroberi dan anggur tentunya akan menyehatkan dan membuat tubuh lebih berenergi.
PENYEIMBANG
kelima makannan diatas berpotensi membuat lingkar pinggang membengkak, oleh karena itu imbangi aktivitas makan dengan olahraga. Anda belum menyadarinya, namun fokus untuk membakar kalori tubuh juga dapat mengalikah perhatian dari patah hati.
Jumat, 29 Januari 2010
program srf04
Program Mikrokontroler AVR Untuk Sensor SRF04 Menggunakan CVAVR
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :
* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)
Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
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=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}
Sumber Pustaka
* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :
* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)
Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
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=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}
Sumber Pustaka
* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.
perogram
Program Mikrokontroler AVR Untuk Sensor GP2D12 Menggunakan CVAVR
Posted by adjie on December 15th, 2008
GP2D12 adalah sensor pengukur jarak yang diproduksi oleh Sharp. Sensor ini mengeluarkan sinyal analog dan mampu mengukur jarak pada rentang 10 – 80 cm. Versi lain dari jenis ini adalah GP2D15 yang mengeluarkan sinyal biner (0 atau 1 saja) dengan treshold 24 cm (dan ternyata cukup sulit untuk mengatur treshold ini) dan GP2D02 dengan output serial digital.
Prinsip kerja sensor inframerah ini dalam mengukur jarak berbeda dengan sensor ultrasonik yang menggunakan waktu pantul gelombang bunyi karena waktu pantul cahaya jelas terlalu singkat untuk dapat diukur. Cahaya inframerah dengan frekuensi 40 kHz dipancarkan dan hasil pantulannya diterima oleh susunan detektor inframerah. Sudut pantulan sinar inframerah akan berubah sesuai jarak sensor dan obyek.
Antarmuka sensor GP2D12 dengan AVR sangatlah mudah, terutama karena telah terdapat ADC internal yang dimiliki AVR. Namun sayangnya output analog sensor ini sangatlah tidak linier. Ada beberapa cara yang dapat dilakukan untuk mengatasi hal ini, yaitu
* lookup table
* interpolasi
* persamaan non-linier
Untuk melakukan ketiga cara tersebut diperlukan data hubungan input-output yang dapat diperoleh dari datasheet ataupun proses kalibrasi. Pada tulisan ini yang digunakan adalah cara ketiga.
Hal pertama yang dilakukan adalah melakukan kalibrasi. Tabel 1 di bawah ini menunjukkan hasil kalibrasi yang telah dilakukan menggunakan ADC 8 bit dan tegangan referensi VCC.
data_adc jarak,cm
120 10
88 15
69 20
57 25
49 30
42 35
37 40
Meskipun jarak tidak proporsional terhadap data_adc, namun ternyata mempunyai hubungan yang cukup linier terhadap 1/data_adc (tabel 2)
1/data_adc jarak,cm
0.008333 10
0.011364 15
0.014493 20
0.017544 25
0.020408 30
0.02381 35
0.027027 40
Gambar 1 menunjukkan hasil grafik yang diperoleh dari tabel 2 beserta persamaan korelasinya yang dapat dibuat dengan mudah menggunakan sembarang software spreadsheet. Pada MS Excel cukup menambahkan trendline pada grafik.
Dari gambar 1 diperoleh persamaan (setelah dibulatkan)
jarak = (1611/data_adc)-3
Meskipun ketelitiannya hanya dalam orde cm, namun sudah cukup memadai untuk berbagai macam aplikasi, misalnya untuk deteksi jarak pada robot.
Program yang dibuat cukup sederhana. Jika menggunakan wizard yang diatur adalah ADC (8 bit dan tegangan referensi VCC) dan LCD (PORTC). Sebuah sensor GP2D12 dihubungkan dengan input 0 ADC (PINA.0).
Inti dari program ini adalah fungsi baca_gp2d12
unsigned char baca_gp2d12()
{
data_adc=read_adc(0);
jrk=(1611/data_adc)-3;
return jrk;
}
Fungsi ini mengambil data dari input 0 ADC, yang kemudian hasilnya dimasukkan ke persamaan hasil kalibrasi untuk memperoleh jarak dalam cm.
Hal yang perlu diperhatikan dalam penggunaan sensor GP2D12 adalah :
* Hasil dari proses kalibrasi tergantung banyak hal. Untuk itu sebaiknya persamaan yang digunakan berasal data hasil kalibrasi anda sendiri.
* Output sensor ini akan menghasilkan pembacaan yang salah untuk pengukuran jarak kurang dari 8 cm. Cara pemecahan paling sederhana adalah dengan mengatur posisi sensor sehingga obyek tidak akan berjarak kurang dari 8 cm. Misalnya jika dipasang pada robot maka sensor tidak dipasang di tepi badan robot, namun agak masuk di tengah badan robot.
Dibandingkan dengan sensor jarak ultrasonik, seperti PING atau SRF04, harga GP2D12 relatif lebih murah, namun rentang dan jangkauan pengukurannya lebih sempit (10-80 cm) dibanding PING dan SRF04 yang berkisar antara 3 cm – 3 m.
Selain itu karena outputnya analog diperlukan ADC. Meski demikian keberadaan mikrokontroler dengan ADC internal, seperti seri AVR, mempermudah penggunaan sensor ini.
Berikut adalah program selengkapnya untuk membaca data dari GP2D12 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz. Output GP2D12 dihubungkan dengan PINA.0 sedangkan LCD dengan PORTC. Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : GP2D12
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
#define ADC_VREF_TYPE 0×60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0×40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0×10)==0);
ADCSRA|=0×10;
return ADCH;
}
// Declare your global variables here
unsigned char data_adc;
unsigned char kata[16];
unsigned char jrk;
unsigned char jarak;
// Fungsi untuk membaca data GP2D12
unsigned char baca_gp2d12()
{
//ambil data ADC
data_adc=read_adc(0);
//masukkan ke dalam persamaan hasil kalibrasi
//untuk mendapatkan jarak dalam cm
jrk=(1611/data_adc)-3;
return jrk;
}
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=0×00;
DDRA=0×00;
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0×85;
SFIOR&=0xEF;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jarak=baca_gp2d12();
sprintf(kata,”Jarak = %2d cm”,jarak);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata);
delay_ms(500);
};
}
Sumber Pustaka
* Braunl, Embedded Robotics, Mobile Robot Design and Applications with Embedded Systems, Springer, 2006
* McComb & Priedko, Robot Builder’s Bonanza, McGraw-Hill, 2006.
* ___, Datasheet GP2D12/GP2D15, Sharp.
Posted in Uncategorized | No Comments »
Program Mikrokontroler AVR Untuk Sensor SRF04 Menggunakan CVAVR
Posted by adjie on December 15th, 2008
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :
* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)
Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
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=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}
Sumber Pustaka
* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.
Posted by adjie on December 15th, 2008
GP2D12 adalah sensor pengukur jarak yang diproduksi oleh Sharp. Sensor ini mengeluarkan sinyal analog dan mampu mengukur jarak pada rentang 10 – 80 cm. Versi lain dari jenis ini adalah GP2D15 yang mengeluarkan sinyal biner (0 atau 1 saja) dengan treshold 24 cm (dan ternyata cukup sulit untuk mengatur treshold ini) dan GP2D02 dengan output serial digital.
Prinsip kerja sensor inframerah ini dalam mengukur jarak berbeda dengan sensor ultrasonik yang menggunakan waktu pantul gelombang bunyi karena waktu pantul cahaya jelas terlalu singkat untuk dapat diukur. Cahaya inframerah dengan frekuensi 40 kHz dipancarkan dan hasil pantulannya diterima oleh susunan detektor inframerah. Sudut pantulan sinar inframerah akan berubah sesuai jarak sensor dan obyek.
Antarmuka sensor GP2D12 dengan AVR sangatlah mudah, terutama karena telah terdapat ADC internal yang dimiliki AVR. Namun sayangnya output analog sensor ini sangatlah tidak linier. Ada beberapa cara yang dapat dilakukan untuk mengatasi hal ini, yaitu
* lookup table
* interpolasi
* persamaan non-linier
Untuk melakukan ketiga cara tersebut diperlukan data hubungan input-output yang dapat diperoleh dari datasheet ataupun proses kalibrasi. Pada tulisan ini yang digunakan adalah cara ketiga.
Hal pertama yang dilakukan adalah melakukan kalibrasi. Tabel 1 di bawah ini menunjukkan hasil kalibrasi yang telah dilakukan menggunakan ADC 8 bit dan tegangan referensi VCC.
data_adc jarak,cm
120 10
88 15
69 20
57 25
49 30
42 35
37 40
Meskipun jarak tidak proporsional terhadap data_adc, namun ternyata mempunyai hubungan yang cukup linier terhadap 1/data_adc (tabel 2)
1/data_adc jarak,cm
0.008333 10
0.011364 15
0.014493 20
0.017544 25
0.020408 30
0.02381 35
0.027027 40
Gambar 1 menunjukkan hasil grafik yang diperoleh dari tabel 2 beserta persamaan korelasinya yang dapat dibuat dengan mudah menggunakan sembarang software spreadsheet. Pada MS Excel cukup menambahkan trendline pada grafik.
Dari gambar 1 diperoleh persamaan (setelah dibulatkan)
jarak = (1611/data_adc)-3
Meskipun ketelitiannya hanya dalam orde cm, namun sudah cukup memadai untuk berbagai macam aplikasi, misalnya untuk deteksi jarak pada robot.
Program yang dibuat cukup sederhana. Jika menggunakan wizard yang diatur adalah ADC (8 bit dan tegangan referensi VCC) dan LCD (PORTC). Sebuah sensor GP2D12 dihubungkan dengan input 0 ADC (PINA.0).
Inti dari program ini adalah fungsi baca_gp2d12
unsigned char baca_gp2d12()
{
data_adc=read_adc(0);
jrk=(1611/data_adc)-3;
return jrk;
}
Fungsi ini mengambil data dari input 0 ADC, yang kemudian hasilnya dimasukkan ke persamaan hasil kalibrasi untuk memperoleh jarak dalam cm.
Hal yang perlu diperhatikan dalam penggunaan sensor GP2D12 adalah :
* Hasil dari proses kalibrasi tergantung banyak hal. Untuk itu sebaiknya persamaan yang digunakan berasal data hasil kalibrasi anda sendiri.
* Output sensor ini akan menghasilkan pembacaan yang salah untuk pengukuran jarak kurang dari 8 cm. Cara pemecahan paling sederhana adalah dengan mengatur posisi sensor sehingga obyek tidak akan berjarak kurang dari 8 cm. Misalnya jika dipasang pada robot maka sensor tidak dipasang di tepi badan robot, namun agak masuk di tengah badan robot.
Dibandingkan dengan sensor jarak ultrasonik, seperti PING atau SRF04, harga GP2D12 relatif lebih murah, namun rentang dan jangkauan pengukurannya lebih sempit (10-80 cm) dibanding PING dan SRF04 yang berkisar antara 3 cm – 3 m.
Selain itu karena outputnya analog diperlukan ADC. Meski demikian keberadaan mikrokontroler dengan ADC internal, seperti seri AVR, mempermudah penggunaan sensor ini.
Berikut adalah program selengkapnya untuk membaca data dari GP2D12 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz. Output GP2D12 dihubungkan dengan PINA.0 sedangkan LCD dengan PORTC. Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : GP2D12
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
#define ADC_VREF_TYPE 0×60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0×40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0×10)==0);
ADCSRA|=0×10;
return ADCH;
}
// Declare your global variables here
unsigned char data_adc;
unsigned char kata[16];
unsigned char jrk;
unsigned char jarak;
// Fungsi untuk membaca data GP2D12
unsigned char baca_gp2d12()
{
//ambil data ADC
data_adc=read_adc(0);
//masukkan ke dalam persamaan hasil kalibrasi
//untuk mendapatkan jarak dalam cm
jrk=(1611/data_adc)-3;
return jrk;
}
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=0×00;
DDRA=0×00;
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0×85;
SFIOR&=0xEF;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jarak=baca_gp2d12();
sprintf(kata,”Jarak = %2d cm”,jarak);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata);
delay_ms(500);
};
}
Sumber Pustaka
* Braunl, Embedded Robotics, Mobile Robot Design and Applications with Embedded Systems, Springer, 2006
* McComb & Priedko, Robot Builder’s Bonanza, McGraw-Hill, 2006.
* ___, Datasheet GP2D12/GP2D15, Sharp.
Posted in Uncategorized | No Comments »
Program Mikrokontroler AVR Untuk Sensor SRF04 Menggunakan CVAVR
Posted by adjie on December 15th, 2008
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :
* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)
Semoga bermanfaat.
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include
#include
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];
unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}
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=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output
// Port B 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
PORTB=0×00;
DDRB=0×00;
// 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=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// 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=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}
Sumber Pustaka
* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.
srf05
Sensor Ultrasonic SRF04
Posted in Artikel on Januari 22, 2010 by digitallaboratory
SRF04
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
skema srf04
Dimensi : 24mm (P) x 20mm (L) x 17mm (T).
Spesifikasi :
- - Tegangan : 5 VDC
- - Konsumsi Arus : 30 mA (rata-rata), 50 mA (max)
- - Frekuensi Suara : 40 kHz
- - Jangkauan : 3 cm – 3 m
- - Sensitivitas : Mampu mendeteksi gagang sapu berdiameter 3 cm dalam jarak > 2 m
- Input Trigger : 10 mS min. Pulsa Level TTL
- Pulsa Echo : Sinyal level TTL Positif, Lebar berbanding proporsional dengan jarak yang dideteksi
Tugas Akhir Ari Wahyuni, Bikin Telemetri Pendeteksi Banjir
Petugas Tak Perlu Lihat Alat Ukur di Tanggul
Banjir yang sering melanda Jatim dan beberapa daerah lain, mengilhami Ari Wahyuni membuat alat pengukur ketinggian air untuk tugas akhirnya. Dalam ujian, mahasiswi Stikomp (Sekolah Tinggi Ilmu Komputer) itu mendapat nilai A. Dia diwisuda Sabtu lalu.
ASTANTO AL BUDIMAN
---
SEBUAH paralon berbentuk L dipasang menempel di pintu air. Di dalam paralon itu terdapat pelampung yang bergerak sesuai ketinggian air sungai. Tepat di atas mulut paralon diletakkan sebuah sensor infra merah yang mengukur ketinggian pelampung di dalam paralon.
Sensor tersebut dilengkapi LCD mini dan sebuah alat komunikasi radio yang akan mengirimkan data itu ke receiver di kantor pengendalian banjir. Dengan demikian, petugas bisa memantau ketinggian air sungai setiap saat dari kantornya, tanpa harus melihat alat ukur yang ada di bibir sungai.
Hanya, saat ini alat tersebut masih dalam bentuk konsep. Ari Wahyuni, mahasiswi Stikomp yang membuat alat itu sebagai tugas akhir (TA), sudah mengujinya di kampus. ''Alat ini saya namakan Telemetri Pengukur Ketinggian Air,'' kata gadis berjilbab itu. ''Teruji bisa merekam perubahan ketinggian air sangat akurat dalam hitungan per detik,'' lanjutnya.
Receiver akan mengeluarkan bunyi berbeda pada setiap ketinggian air. ''Alat akan berbunyi otomatis jika ketinggian air berada di level-level rawan atau bahaya. Siaga dua atau siaga satu,'' kata karyawan salah satu Bank Syariah di Surabaya itu. Semakin bahaya, bunyi akan semakin cepat.
Di laboratorium, Ari menggambarkan ketinggian air tersebut dalam sebuah kotak transparan dari fiber berukuran 25 x 25 cm dan tinggi 15 cm. Kotak yang disebut transmitter itu, antara lain berisi sirkuit board, aki 12 volt, LCD mini, dan alat komunikasi berupa frekuensi radio PRW 24 GHZ. Sebuah kabel menjulur keluar kotak. ''Ini sensornya,'' kata Ari.
Dia kemudian menggerak-gerakkan telapak tangannya di depan sensor. Sebuah grafik muncul di laptopnya yang tersambung ke kotak receiver. Kotak tersebut ukurannya sama dengan kotak transmitter. Isinya, antara lain sirkuit board, kabel serial, LCD, dan aki 12 volt dua biji. ''Tampak sekali kepekaan sensor pendeteksi banjir ini,'' ujar mahasiswi program studi Sistem Komputer itu.
Kotak transmitter itulah yang, jika kelak diaplikasikan, ditempelkan di pintu air. Sedangkan receiver berada di kantor pengendali banjir. Transmitter bertugas mengirim data ke server, melaporkan berapa ketinggian air dari permukaan tinggi sungai. ''Transmitter ini harus berada sedikit di atas di permukaan sungai,'' ujarnya.
Dia perlu dua kali kerja menggarap transmiterr tersebut. Sebab, harus memprogram ulang sensornya, SRF05, agar bisa dibaca program lainnya. ''Sensor ini hanya mampu mendeteksi kedalaman empat meter dari ketinggian sungai. Jika kedalamannya lebih dari itu, harus memakai sensor SRF08,'' kata alumnus SMA Bhayangkari 1 Surabaya itu.
Jarak antara transmitter dengan paralon ditempatkan sedemikian rupa sehingga sensor tetap mampu membaca pelampung di dalam paralon. Sementara kotak transmitter-nya aman dari empasan air sungai. ''Karena itu, alat tersebut tidak diletakkan di pintu air paling tengah, cukup di pinggir saja,'' kata Ari. Yang penting, ketinggian air di dalam paralon sama dengan ketinggian air sungai. Bibir bawah paralon menghadang arus sungai agar air bisa masuk.
Data dalam bentuk grafik yang diterima receiver, akan disimpan dalam memori komputer. Dengan demikian, seluruh pergerakan air dapat terekam. ''Dari rekaman data ketinggian air itu bisa dihitung kecepatan ketinggian air dalam hitungan menit,'' ujar wanita kelahiran 23 Juni 1986 itu.
Receiver tersebut mampu menerima kiriman dari transmitter dalam jarak 300 meter. ''Itu bergantung kekuatan radio komunikasinya. Sekarang pakai PRW 24 GHZ, kalau mau lebih jauh harus ditambah kekuatan frekuensinya,'' kata Ari yang menyelesaikan tugasnya dalam satu semester.
Saat ini, dia masih memanfaatkan suplai energi dari aki untuk energi di masing-masing kotak itu. ''Jika menggunakan collar cell, ukuran kotak tidak akan sebesar ini,'' katanya.
Untuk membuat alat itu, Ari merogoh tabungannya Rp 1.200 ribu untuk membeli seluruh komponen. ''Itu belum komponen yang rusak,'' katanya sambil tersenyum. ''Wireless ini saya ganti dua kali karena rusak, saya harus mengeluarkan Rp 400 ribu lagi,'' lanjutnya. Meski begitu, Ari yang mendapat nilai A untuk tugas akhirnya, mengaku cukup puas. ''Fungsi yang saya targetkan tercapai,'' ujarnya.
Dalam penelitian TA-nya, Ari dibimbing dua dosen, Hariyanto S.kom, dosen mata kuliah Micro Controller dan I Gede Arya Uthama MMT dosen Metodologi Penelitian. ''Setiap kali ada kesulitan, saya selalu minta nasihatnya,'' sambung Ari.
Khusus kotaknya, dia dibuatkan ayahnya. ''Saat mau bikin kotak, ayah tidak tega melihat anak perempuannya memotong aluminium dengan gerinda, mengebor,''katanya. ''Masak anak perempuan pegang gerinda,'' lanjut Ari menirukan ucapan ayahnya.
Sebelum membuat alat itu, Ari mensurvei beberapa sungai di Surabaya. Rata-rata bendungan di Surabaya masih menggunakan alat ukur manual. Alat itu berupa meteran yang terpasang di tanggul atau pelapis pintu air. ''Cara kerjanya dengan melihat berapa tinggi air di meteran itu,'' katanya.
Dia juga sempat mensurvei kota-kota lain, antara lain Malang, Solo, dan Jakarta. Dia menemukan alat pendeteksi banjir di Jakarta dan Solo. ''Namun, alat tersebut hanya pendeteksi elektronik biasa, kalau rawan banjir lampu menyala kuning, kalau banjir, lampu merah menyala,'' ujarnya.
Saat pembuatan alat itu dalam proses, salah seorang karyawan PDAM Surabaya menyarankan, jika selesai, segera ajukan ke Dinas Pengairan. Sebab, alat tersebut berguna untuk mendeteksi banjir. ''Orang PDAM itu teman Ayah saya,'' katanya.
Kini, perempuan berkulit sawo matang itu ingin mengajukan karyanya ke Pemkot Surabaya. ''Mungkin karya ini bisa bermanfaat untuk mendeteksi banjir di Surabaya. Kalau berguna, saya akan senang sekali,'' katanya semangat. Jika alat tersebut dinilai kurang sempurna, dia siap menyempurnakan. (cfu)
Posted in Artikel on Januari 22, 2010 by digitallaboratory
SRF04
SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
skema srf04
Dimensi : 24mm (P) x 20mm (L) x 17mm (T).
Spesifikasi :
- - Tegangan : 5 VDC
- - Konsumsi Arus : 30 mA (rata-rata), 50 mA (max)
- - Frekuensi Suara : 40 kHz
- - Jangkauan : 3 cm – 3 m
- - Sensitivitas : Mampu mendeteksi gagang sapu berdiameter 3 cm dalam jarak > 2 m
- Input Trigger : 10 mS min. Pulsa Level TTL
- Pulsa Echo : Sinyal level TTL Positif, Lebar berbanding proporsional dengan jarak yang dideteksi
Tugas Akhir Ari Wahyuni, Bikin Telemetri Pendeteksi Banjir
Petugas Tak Perlu Lihat Alat Ukur di Tanggul
Banjir yang sering melanda Jatim dan beberapa daerah lain, mengilhami Ari Wahyuni membuat alat pengukur ketinggian air untuk tugas akhirnya. Dalam ujian, mahasiswi Stikomp (Sekolah Tinggi Ilmu Komputer) itu mendapat nilai A. Dia diwisuda Sabtu lalu.
ASTANTO AL BUDIMAN
---
SEBUAH paralon berbentuk L dipasang menempel di pintu air. Di dalam paralon itu terdapat pelampung yang bergerak sesuai ketinggian air sungai. Tepat di atas mulut paralon diletakkan sebuah sensor infra merah yang mengukur ketinggian pelampung di dalam paralon.
Sensor tersebut dilengkapi LCD mini dan sebuah alat komunikasi radio yang akan mengirimkan data itu ke receiver di kantor pengendalian banjir. Dengan demikian, petugas bisa memantau ketinggian air sungai setiap saat dari kantornya, tanpa harus melihat alat ukur yang ada di bibir sungai.
Hanya, saat ini alat tersebut masih dalam bentuk konsep. Ari Wahyuni, mahasiswi Stikomp yang membuat alat itu sebagai tugas akhir (TA), sudah mengujinya di kampus. ''Alat ini saya namakan Telemetri Pengukur Ketinggian Air,'' kata gadis berjilbab itu. ''Teruji bisa merekam perubahan ketinggian air sangat akurat dalam hitungan per detik,'' lanjutnya.
Receiver akan mengeluarkan bunyi berbeda pada setiap ketinggian air. ''Alat akan berbunyi otomatis jika ketinggian air berada di level-level rawan atau bahaya. Siaga dua atau siaga satu,'' kata karyawan salah satu Bank Syariah di Surabaya itu. Semakin bahaya, bunyi akan semakin cepat.
Di laboratorium, Ari menggambarkan ketinggian air tersebut dalam sebuah kotak transparan dari fiber berukuran 25 x 25 cm dan tinggi 15 cm. Kotak yang disebut transmitter itu, antara lain berisi sirkuit board, aki 12 volt, LCD mini, dan alat komunikasi berupa frekuensi radio PRW 24 GHZ. Sebuah kabel menjulur keluar kotak. ''Ini sensornya,'' kata Ari.
Dia kemudian menggerak-gerakkan telapak tangannya di depan sensor. Sebuah grafik muncul di laptopnya yang tersambung ke kotak receiver. Kotak tersebut ukurannya sama dengan kotak transmitter. Isinya, antara lain sirkuit board, kabel serial, LCD, dan aki 12 volt dua biji. ''Tampak sekali kepekaan sensor pendeteksi banjir ini,'' ujar mahasiswi program studi Sistem Komputer itu.
Kotak transmitter itulah yang, jika kelak diaplikasikan, ditempelkan di pintu air. Sedangkan receiver berada di kantor pengendali banjir. Transmitter bertugas mengirim data ke server, melaporkan berapa ketinggian air dari permukaan tinggi sungai. ''Transmitter ini harus berada sedikit di atas di permukaan sungai,'' ujarnya.
Dia perlu dua kali kerja menggarap transmiterr tersebut. Sebab, harus memprogram ulang sensornya, SRF05, agar bisa dibaca program lainnya. ''Sensor ini hanya mampu mendeteksi kedalaman empat meter dari ketinggian sungai. Jika kedalamannya lebih dari itu, harus memakai sensor SRF08,'' kata alumnus SMA Bhayangkari 1 Surabaya itu.
Jarak antara transmitter dengan paralon ditempatkan sedemikian rupa sehingga sensor tetap mampu membaca pelampung di dalam paralon. Sementara kotak transmitter-nya aman dari empasan air sungai. ''Karena itu, alat tersebut tidak diletakkan di pintu air paling tengah, cukup di pinggir saja,'' kata Ari. Yang penting, ketinggian air di dalam paralon sama dengan ketinggian air sungai. Bibir bawah paralon menghadang arus sungai agar air bisa masuk.
Data dalam bentuk grafik yang diterima receiver, akan disimpan dalam memori komputer. Dengan demikian, seluruh pergerakan air dapat terekam. ''Dari rekaman data ketinggian air itu bisa dihitung kecepatan ketinggian air dalam hitungan menit,'' ujar wanita kelahiran 23 Juni 1986 itu.
Receiver tersebut mampu menerima kiriman dari transmitter dalam jarak 300 meter. ''Itu bergantung kekuatan radio komunikasinya. Sekarang pakai PRW 24 GHZ, kalau mau lebih jauh harus ditambah kekuatan frekuensinya,'' kata Ari yang menyelesaikan tugasnya dalam satu semester.
Saat ini, dia masih memanfaatkan suplai energi dari aki untuk energi di masing-masing kotak itu. ''Jika menggunakan collar cell, ukuran kotak tidak akan sebesar ini,'' katanya.
Untuk membuat alat itu, Ari merogoh tabungannya Rp 1.200 ribu untuk membeli seluruh komponen. ''Itu belum komponen yang rusak,'' katanya sambil tersenyum. ''Wireless ini saya ganti dua kali karena rusak, saya harus mengeluarkan Rp 400 ribu lagi,'' lanjutnya. Meski begitu, Ari yang mendapat nilai A untuk tugas akhirnya, mengaku cukup puas. ''Fungsi yang saya targetkan tercapai,'' ujarnya.
Dalam penelitian TA-nya, Ari dibimbing dua dosen, Hariyanto S.kom, dosen mata kuliah Micro Controller dan I Gede Arya Uthama MMT dosen Metodologi Penelitian. ''Setiap kali ada kesulitan, saya selalu minta nasihatnya,'' sambung Ari.
Khusus kotaknya, dia dibuatkan ayahnya. ''Saat mau bikin kotak, ayah tidak tega melihat anak perempuannya memotong aluminium dengan gerinda, mengebor,''katanya. ''Masak anak perempuan pegang gerinda,'' lanjut Ari menirukan ucapan ayahnya.
Sebelum membuat alat itu, Ari mensurvei beberapa sungai di Surabaya. Rata-rata bendungan di Surabaya masih menggunakan alat ukur manual. Alat itu berupa meteran yang terpasang di tanggul atau pelapis pintu air. ''Cara kerjanya dengan melihat berapa tinggi air di meteran itu,'' katanya.
Dia juga sempat mensurvei kota-kota lain, antara lain Malang, Solo, dan Jakarta. Dia menemukan alat pendeteksi banjir di Jakarta dan Solo. ''Namun, alat tersebut hanya pendeteksi elektronik biasa, kalau rawan banjir lampu menyala kuning, kalau banjir, lampu merah menyala,'' ujarnya.
Saat pembuatan alat itu dalam proses, salah seorang karyawan PDAM Surabaya menyarankan, jika selesai, segera ajukan ke Dinas Pengairan. Sebab, alat tersebut berguna untuk mendeteksi banjir. ''Orang PDAM itu teman Ayah saya,'' katanya.
Kini, perempuan berkulit sawo matang itu ingin mengajukan karyanya ke Pemkot Surabaya. ''Mungkin karya ini bisa bermanfaat untuk mendeteksi banjir di Surabaya. Kalau berguna, saya akan senang sekali,'' katanya semangat. Jika alat tersebut dinilai kurang sempurna, dia siap menyempurnakan. (cfu)
soal LM35

Seperti kita tahu bahwa LM35, sensor suhu yg memiliki output yang linear sebesar 10mV/oCelcius. Jadi tiap kenaikkan 10mV, maka suhu bertambah 1 oC. Dengan tingkat akurasi 0.5 oC. Memiliki range pengukuran antara -55 s/d 150 oC.
Dengan menggunakan rangkaian dasar, atau yang disebut Basic Centigrade Temperature Sensor, maka si LM35 memiliki range pengukuran 0mV - 10mV/oC. Jika dibuatkan kesetaraaan antara voltage dengan suhu, maka akan terlihat sbb :
0V = 0 oC
10mv = 1 oC
100mV = 10 oC
1000mV = 100 oC
1500mV = 150 oC
Jika menggunakan rangkaian Full-Range Centigrade Temperature Sensor, lain lagi range pengukurannya.
Dengan melihat karakteristik tersebut, maka dengan teknik ADC (Analog to Digital Convertion) kita bisa melakukan konversi dari tegangan ke suhu.
Karena yang didiskusikan kali ini menggunakan mikrokontroler ATMEGA8535. Maka secara internal dia sudah memiliki ADC yang berjumlah 8 channel 10 bit. Range voltage dari 0 s/d volt_max sama dengan nilai 0 s/d 1024 (n10).
Secara internal, si uC menggunakan rumus sebagai berikut untuk mengeluarkan output ADC :
Hasil Konversi ADC = (Vin * 1024) / Vref Dimana Vin adalah output LM35.
Jika Vref diberi tegangan 5 V (5000 mV). Dan LM35 tidak mengeluarkan tegangan, maka
0 * 1024 / 5000 = 0
Jika LM35 mengeluarkan tegangan sebesar 1 mV, maka uC akan mengeluarkan angka digital:
1 * 1024 / 5000 = 0.2048 => 0
Jika LM35 mengeluarkan tegangan sebesar 10 mV, maka uC akan mengeluarkan angka digital :
10 * 1024 / 5000 = 2.048 => 2
Jika LM35 mengeluarkan tegangan sebesar 1 V (1000 mV), maka uC akan mengeluarkan angka digital
1000 * 1024 / 5000 = 204.8 => 205
Sekarang cara membacanya dibalik. Setiap kita mendapatkan output digital dari uC, berapa hasil konversinya dalam bentuk tegangan?. Dari pertanyaan tersebut dihasilkan kesimpulan, bahwa setiap satu digit LSB yang dikeluarkan ADC uC akan bernilai sebesar :
1 LSB = Vref / (2n - 1)
Jika Vref adalah 5000 mV, maka : 1 LSB-nya kurang lebih = 4.9 mV (pembulatan)
Sehingga rumus konversinya adalah :
SUHU = Ouput_ADC * Kenaikan_satu_LSB / Volt_per_Celcius
dimana :
Output_ADC = adalah hasil pembacaan ADC uC
Kenaikan_satu_LSB = 4.9 (jika Vref = 5V)
Volt_per_celcius = 10 (karakteristik LM35, 10mV/oC)
DAN ADA JUGA...............
Kali ini kami akan membahas lebih jauh mengenai sensor suhu dengan IC LM 35, dimana dalam pembahasan ini sensor di seting untuk pembacaan suhu antara 0 – 100 C. Sebelum itu apa sih IC LM 35 itu?
IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC) 3 pin yang berbentuk seperti transistor FCS9013, dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV/°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.
IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indikator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari suplai sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan (27oC). Berikut adalah bentuk simbol IC LM 35.
Adapun keistimewaan dari IC LM 35 adalahKalibrasi dalam satuan derajat celcius.
* Lineritas +10 mV/ º C.
* Akurasi 0,5 º C pada suhu ruang.
* Range – 55 º C – 150 º C.
* Dioperasikan pada catu daya 4 V – 30 V.
* Arus yang mengalir kurang dari 60 µA.
Bagaimana menghubungkan IC LM 35 dengan mikrokontroler?
Apabila kita ingin membaca suhu aktual dari sensor IC LM 35 ini menggunakan mikrokontroler maka kita perlu menggunakan ADC (analog to digital converter). Misalkan kita menggunakan mikrokontroler AVR Atmega 16 maka kita tidak perlu menambahkan IC ADC, karena didalam mikrokontroler AVR Atmega 16 sudah terdapat 8 channel ADC 10 bit, dimana port ADC terhubung dengan portA (silahkan lihat datasheet AVR Atmega16).
Apabila kita menginginkan sensor IC LM 35 ini untuk membaca suhu dengan range 0 – 100oC maka dapat dihitung bahwa tegangan keluaran dari sensor ini berkisar antara 0V – 1 Volt ( 10mV/oC), sedangkan ADC dari mikrokontroler dapat membaca tegangan antara 0 – 5V (bila Vreff diseting 5V), maka supaya pembacaan sensor lebih teliti dengan resolusi perubahan yang halus maka keluaran tegangan dari sensor yang semula berkisar antara 0 – 1V kita buat menjadi berkisar antara 0 – 5V dengan menggunakan rangkaian signal conditioning / pengkondisi sinyal. Suatu misal dengan menggunakan rangkaian penguat non-inverting amplifier, berikut adalah contoh rangkaiannya.
Dari gambar rangkaian diatas pengkondisisn sinyal analog terdiri dari penguat penyangga (buffer) dan penguat non-inverting amplifier, dimana penguat penyangga berfungsi untuk merubah tegangan impedansi tinggi menjadi tegangan sama pada impedansi rendah. Karena sensor suhu LM35 menghasilkan tegangan yang berubah-ubah sesuai dengan perubahan suhu, maka penguat penyangga memastikan agar sinyal ini tidak terpengaruh oleh pembebanan dari penguat berikutnya. Dan penguat non-inverting amplifier berfungsi untuk menguatkan sinyal yang keluar dari rangkaian buffer. Dimana didalam rangkaian diatas penguatan dari rangkaian palifier ini dapat diatur dengan mengubah posisi variabel resistor 100K.
Berikut adalah contoh program dengan bascom AVR untuk penampilan suhu dengan sensor IC LM 35 dengan menggunakan mikrokontroler AVR Atmega 16 dan ditampilkan ke LCD matriks 2*16 karakter.
$regfile "m16def.dat"
$crystal = 12000000
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off Noblink
Cls
Dim Adc0 As Integer
Dim Temp As Single
Dim S_temp As String * 5
Upperline
Lcd "Welcome In... "
Lowerline
Lcd "Juragan Elektro "
Wait 2
Cls
Upperline
Lcd "Sensor Suhu LM35"
Lowerline
Lcd "Temp= C"
Do
Adc0 = Getadc(0)
Temp = Adc0 / 10.23
S_temp = Fusing(temp , "#.##")
Locate 2 , 7
Lcd S_temp
Waitms 100
Loop
End
Sebelum menguji coba maka kalibrasikan terlebih dahulu rangkaian signal konditioning yaitu dengan cara lepas IC LM 35 dan beri tegangan pada masukan rangkaian signal conditioning tegangan 1V dan adjust VR100K supaya tegangan keluaran dari rangkaian signal conditioning sebesar 5V. Setelah selasai pasang kembali IC LM 35 ke rangkaian signal conditioning dan hubungkan keluaran rangkaian ke mikrokontroler dan hubungkan LCD ke portC. Apabila anda bingung bagaimana mengubungkan LCD ke portC maka lihatlah sambungan seperti gambar berikut.
VR 10K digunakan untuk mengatur kontras dari LCD. Kemudian download program diatas kemikrokontroler dan lihat hasilnya. Apabila pembacaan sensor terjadi osilasi yang tinggi maka pasanglah kapasitor elektrolit bernilai 47uF/16V untuk membuang/ mengurangi ripple pada tegangan keluaran rangkaian signal conditioning dan kapasitor non polar senilai 100nF untuk membuang effek arus kejut yang terinduksi ke sinyal analog ADC 0. Kedua kapasitor tersebut dipasang paralel dengan keluaran rangkaian signal conditioning atau paralel dengan portA.0(ADC0) mikrokontroler AVR Atmega16. Apabila masih terjadi osilasi maka periksa tegangan yang masuk ke AVCC (analog VCC) mikrokontroler, pasanglah rangkaian LPF (low pass filter > untuk memfilter frekuensi rendah) pada kaki tersebut (lihat dalam artikel www.juraganelektro.com > tutorial > mikrokontroler > minimum system AVR Atmega16) dan jangan lupa Vreff (ADC referensi) harus diberi tegangan 5V khusus untuk aplikasi ini.
Demikianlah uraian kami tentang sensor suhu IC LM 35. Semoga bermanfaat bagi anda. Apabila anda mengalami kesulitan silahkan menghubungki kami. Kritik dan saran yang membangun selalu kami nantikan. Terimakasih.
Langganan:
Postingan (Atom)

