Ads 468x60px

Pengukur Jarak dengan Ultrasonik Parallax PING

Weee e e e..halo dulur kabeh..
Artikel kali ni saya coba sharingkan pengalaman saya menggunakan sensor ultrasonic sebagai pengukur jarak. Nah sebelumnya seperti biasa sruput kopinya dulu..
Sensor yang digunakan adalah modul Parallax PING yang ssudah jadi dan tinggal pakai. Maksude g perlu da rangkaian elka lain, Cuma minsys mikrokontroler untuk kontrolnya. Nah ini dia barangnya .



Sensor PING ini memiliki 3 kaki yaitu sebagai supply +5 volt (+5), ground (GND), dan signal (SIG). Frekuensi gelombang yang dipancarkan adalah 40kHz. Teori operasinya berdasarkan time diagram berikut.



Sensor ini bekerja bila pada pin SIG diberikan trigger pulsa TTL positif selama 5 us. Setelah mendapat trigger baru memancarkan gelombangnya. Setelah dipacarkan oleh, penerima bertugas menangkap echo/pantulan. Nah prinsipnya sederhana saja kan..Hoahhhh ngantuk e, nyruput kopi dulu ah…
Berdasarkan prinsip kerja dan time diagram di atas, ntuk interface ke ultrasonik, terdapat aturan yang cukup mudah, yaitu:
1. Pada SIG diberi sebuah pulsa (tcut)sebesar 5 mikro detik. ini berati dengan mengeset mikrokontroler sebagai output dan memberikan data ke ultrasonik.
2. Mikrokontroller menunggu sampai pin SIG dari ultrasonik mengeluarkan sinyal kondisi "high" dengan mengeset mikro sebagai input.
3. Selama kondisi input mikro “high” maka dilakukan perhitungan lamanya sampai input “low”.
4. Data hasil perhitungannya kita tampilkan di LCD ya..
Kalau pengen tau datasheetnya download disini.. Di bawah ini adalah soucecode pengukur jarak yang saya buat dengan codevision avr..monggo dibaca..
#include
#include
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include

// Declare your global variables here

unsigned int i;
unsigned char buf[16];
float jarak;

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=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=0x00;
DDRB=0x00;

// 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=0x00;

// 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;

// LCD module initialization
lcd_init(16);

lcd_gotoxy(0,0);
lcd_putsf("jajal");
delay_ms(1000);

while (1)
{
// Place your code here
i=0;

DDRD.1=1;
PORTD.1=1;
delay_us(5);
PORTD.1=0;
DDRD.1=0;
PORTD.1=1;

while (PIND.1==0)
{};
while (PIND.1==1)
{ i++;
}

jarak=i*0.01572;
sprintf(buf,"jarak = %0.02f",jarak);
lcd_gotoxy(0,0);
lcd_clear();
lcd_puts(buf);
delay_ms(100);

};
}

Sensor ini banyak diaplikasikan dalam pembuatan robot cerdas yang sering dilombakan dalam KRCI..Sekian ya, semoga bermanfaat, silahkan kasih feedback ya. Salam pagi yang indah

Alat Ukur Tingkat Kejernihan Air

Halo sodara semua sebangsa tanah dan sebangsa air (waduh kliru, sebangsa dan setanah air) hehe. Dini hari ini saya lagi pengen sharingkan alat yang dulu pernah saya buat ketika dapat tugas kuliah instrumentasi. Wah sayangnya alat ini sederhana banget, maklumlah ilmu pas-pasan. Alat ini adalah penentu tingkat kejernihan air. Ini cerita seriusnya..(eitss, nyruput kopi dulu donk…)
Air merupakan suatu kebutuhan yang sangat penting dalam kehidupan manusia. Karena itu, kualitas air yang bisa dikonsumsi manusia harus diperhatikan. Parameter-parameter yang bisa digunakan untuk menentukan kualitas air antara lain kejernihan, kondutifitas listrik, rasa, bau. Parameter itu menentukan kemurnian dari air itu dan sehat atau tidaknya untuk dikonsumsi manusia.
Salah satu parameter kualitas air yaitu kejernihan, dapat dinyatakan dengan kemampuannya untuk meneruskan cahaya yang mengenainya. Dengan kondisi itulah dibuat sebuah alat yang mampu mendeteksi transmisi cahaya dari air itu dengan sensor fotodioda. Dengan alat ini mampu ditentukan tingkat kejernihan air.
Peralatan yang digunakan dalam proses percobaan ini antara lain power supply DC +5, +12, dan -12, IC LM741, potensiometer 10k, resistor 1k, 400k, 330, IC ATMega 8535L, LED putih, LCD Character 16x2, gelas ukur 400 ml, tinta printer e-print hitam, dan air.

Ini dia skema rangkaiannya
a. Blok sensor dan sumber cahaya


b. Blok penguat


c. Blok display


d. Blok Mikrokontroler



Masing-masing blok rangkaian dihubungkan dengan power supply DC. Jarak fotodioda dan led diatur pada 22 cm. Gelas ukur diisi air dengan volume 400 ml, kemudian diletakkan tepat diatas fotodioda. Setelah itu, tegangan keluaran dari blok penguat dimasukkan ke input ADC mikrokontroler untuk diolah yang kemudian ditamoilkan ke LCD. Tampilan di LCD berupa tegangan keluaran penguat, intensitas cahaya, dan Tingkat kejernihan air. Kemudian setiap penambahan tinta, hasil pengolahan mikrokontroler ditampilkan ke LCD.
Yah…Cuma itulah alatnya, sangat sederhana saja. Pada dasarnya untuk mencoba mengaplikasikan sebuat sensor menjadi alat yang lebih berguna..hehe
OOO iyo ni foto alate..