Sensor SFR04 adalah sensor ultrasonik yang diproduksi oleh Devantech. Sensor ini merupakan sensor jarak yang presisi. Dapat melakukan pengukuran jarak 3 cm sampai 3 meter dan sangat mudah untuk dihubungkan ke mikrokontroler menggunakan sebuah pin Input dan pin Output.
Sensor Devantech SRF-04 bekerja dengan cara memancarkan sinyal ultrasonik sesaat dan menghasilkan pulsa output yang sesuai dengan waktu pantul sinyal ultrasonik sesaat kembali menuju sensor. Dengan mengukur lebar pulsa pantulan tersebut jarak target didepan sensor dapat diketahui.
Untuk dapat memhami cara kerja dari sensor SRF04 ini perhatikan timming dari pulsa masukan dan keluaran sensor berikut ini:
Berdasarkan data timming diagram, sensor akan memberikan informasi jarak pembacaan dengan informasi berupa pulsa PWM dengan lebar 100µS sampai dengan 18mS.
Dengan 2 buah pin kontrol, antara lain sebuah pin input triger dan sebuah pin output data. Untuk mengaktifkan sensor maka modul diberi triger pulsa maka sensor akan mengeluarkan sinyal pwm dan duty cycle tersebut sebagai jarak objek dengan sensor .
Mikrokontroller memberikan sinyal pulsa high pada pin triger pulse input dari sensor untuk mengaktifkan sensor ultrasonik. Untuk menghitung lebar PWM mengunakan timer0. Pin echo pulse output terhubung dengan pin-pin pada mikrokontroler. Ketika pin echo pulse output high maka timer0 aktif dan ketika pin echo kembali bernilai low maka timer0 dimatikan dan data TCNT0 diambil sebagai data jarak.
Program akses Sensor Jarak (SRF04) dengan Bascom AVR
$regfile = “m8535.dat” ‘menggunakan Atmega8535 sebagai preprosesor
$crystal = 12000000 ‘menggunakan crystal clock 12 MHz
‘————————inisialisasi Timer—————————
Config Timer0 = Timer0 , Prescale = 1024
‘————————inisialisasi LCD—————————-
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0
Config Lcd = 16 * 2
‘———————-konfigurasi pin mikro————————
Config Portc.1 = Output
Config Pinc.0 = Input
Outus Alias Portc.1 ‘trigger
Ultra Alias Pinc.0 ‘aktif srf04
‘———————–deklarasi variabel—————————-
Dim Dae As Integer
Dim Data1 As Integer
Dim Data2 As Integer
Dim A As Integer
‘———————–deklarasi subrutin—————————-
Declare Sub Ultra()
‘———————– main program———————————
Cls
Home
Lcd “Demo srf04”
Lowerline
Lcd “oleh Fahmizal”
Wait 2
Do
Cls
Call Ultra()
Loop
End
‘—————-subrutin baca sensor ultrasonik———————-
Sub Ultra()
Enable Interrupts
Enable Timer0
‘———–kosongkan nilai variabel———————————-
Tcnt0 = 0
A = 0
Data1 = 0
Data2 = 0
Dae = Tcnt0
‘—————-memberi trigger ke srf04—————————-
Reset Outus
Waitus 10 ‘tunda sebesar 10 uS
Set Outus
Waitus 10 ‘tunda sebesar 10 uS
Reset Outus
‘————————————————————————–
Do
Loop Until Ultra = 1
Start Timer0
Do
Loop Until Ultra = 0
Stop Timer0
Dae = Tcnt0
Data1 = A * 256
Data2 = Data1 + Dae
Cls
Home
Lcd “Data jarak sensor”
Lowerline
Lcd Data2
Disable Interrupts
Disable Timer0
Waitms 10
End Sub
‘———kondisi jika terjadi overflow pada timer——————
Overflow:
A = A + 1
Return
==============================================================
ni dia video aplikasi sensor ultrasonik pada Robot-Wall Follower ato yg lebih dikenal dengan robot telusur dinding:
==============================================================
ni dia video aplikasi sensor ultrasonik pada Wall Follower ato yg lebih dikenal dengan telusur:
Posted by faqih on Desember 8, 2010 at 2:39 pm
assalamu’alaikum…
mas,,sy mau nanya nih,,,
sy kan dpt tgs matkul mikro,,
nah,,sy tgsnya bikin alat yg pake srf04,,
sy coba program di atas, dengen perubahannnya di port/pin nya mas,,sy pake port/pin C,,,
tp pas di compile di bascom,,kok ada errornya ya mas,,
errornya “label not found [pind.5…….”
itu knp ya mas?
Posted by fahmizaleeits on Desember 14, 2010 at 9:05 am
Waalaikumsallam…itu terjadi kesalahan pada inisialisai portnya…coba buka lagi help editor pada bascom AVR disana ada bantuan petunjuk cara penulisanya…
Posted by layudh on Januari 3, 2013 at 10:32 am
mas maksudnya label not found itu apa??? dicari di help editornya gak lengkap…
Posted by layudh on Januari 3, 2013 at 10:35 am
maaf mas pas bagian memberi trigger, itu teh outms atau outus??? bedanya apa??? soalnya d bascom ke duanya juga ada…
Posted by holand on Desember 21, 2010 at 3:51 pm
mas, kalo program itu bisa dipake untuk 2 buah srf04 gak ??
Posted by fahmizaleeits on Desember 21, 2010 at 4:57 pm
sample program diatas hanya digunakan untuk satu buah srf04, kalo mau nambah beraarti rutin programnya ditambah dan I/O nya juga harus ditambah inisialisasinya.
Posted by Barkah on Desember 30, 2010 at 5:06 pm
Assalamu’alaikum wr.wb
Mas, saya mau tanya soal harga produk2 dari mas fahmi harganya berapa ya? kalau boleh tolong kirim katalog produk ke alamat emailku.
Q kepingin jadi reseller produk dari mas fahmi. di solo yg jualan sensor blom ada, jd mohon dengan sangat. di solo prospeknya bagus.
Posted by fahmizaleeits on Januari 1, 2011 at 11:29 am
Waalaikumsallam wr. wb. mas barkah…untuk katalog harganya mungkin bisa ditanyakan langsung ke admin evotech mas coba kunjungi situsnya di http://id-evotech.com/ terimakasih mas
Posted by muhlis on Januari 5, 2011 at 3:35 pm
mas berapa harga sensor srf 04 ? kalau ada bisa pesan lewat mana
Posted by fahmizaleeits on Februari 1, 2011 at 1:38 pm
info pemesanan dan harga silakan kunjungi http://id-evotech.com/ terimakasih atas kunjungannya mas
Posted by ikhwan andrianto on Januari 8, 2011 at 4:42 pm
Assalamu’alaikum wr.wb
mas.. saya mau tanya..
kalo pakek sensor jenid lain pengaruh pa ndak sama sample diatas..(saya pakek pink parallax).. mohon pencerahannya..
Posted by fahmizaleeits on Februari 1, 2011 at 1:46 pm
Walaikumsallam…wr.wb.. pada posting ini ialah akses SRF04, untuk akses PING ))) hampir sama dengan SRF04 hanya saja pin trigger dan datanya berada pada satu pin yg sama untuk detailnya klik tautan berikut https://fahmizaleeits.wordpress.com/2010/10/30/sensor-jarak-ping-paralax/
Posted by dydactic on Januari 18, 2011 at 4:42 am
misi mas numpang tanya… sebenernya efek mendasar pake crystal internal dengan external apa ya? kan sy pake internal 1mhz ama external 12mhz untuk waitms 1000 misal, kan ttp sekitar 1secon.. mohon pencerahannya mas.. cz sy pk atmega128, mu pk 16Mhz.. kan umumnya rata2 pk 12Mhz.. tp ttp bascom, krn sy satu aliran dgn mas, bascom paling mudah.. hehehe.. mohon pencerahannya.. terimakasih…
Posted by sulis on Januari 27, 2011 at 10:39 pm
om minta tolong
kalo sensor kecepatan dengan srf04 atau srf06 gimana rangkaian sama program nya
mohon bantuan nya
Posted by fahmizaleeits on Februari 1, 2011 at 2:06 pm
maaf ane belum pernah coba SRF06.. 🙂
Posted by sulis on Januari 27, 2011 at 11:49 pm
kalo bisa di tag ato kirim ke notice14@gmail.com ya
makasi banyak
Posted by fahmizaleeits on Februari 1, 2011 at 2:07 pm
maaf belum bisa hehehe…thanks atas kunjugannya 🙂
Posted by rahmat on Februari 3, 2011 at 3:47 pm
mas mau tanya
listing diatas itu tampil diLCDnya masksimal y sampe 3 mter,
ato ada list progrm yg laen biar tambah jauh jaraknya
terima kasih atas jawabannya
Posted by Iswanto on Februari 8, 2011 at 9:18 pm
Ass.wr.wb. Bagus bos postingnya
Kunjungi blog saya
http://blog.umy.ac.id/iswanto/;http://iswanto.staff.umy.ac.id/
Posted by fahmizaleeits on Februari 17, 2011 at 7:39 pm
Terimakasih atas kunjungannya mas is 😀
Posted by sulis on Februari 27, 2011 at 9:27 am
kalo pengukur kecepatan dan percepatan menggunakan srf04 bisa kah om?
Posted by fahmizaleeits on Maret 1, 2011 at 3:51 pm
setahu ane ni sensor kebanyakan diaplikasikan buat jarak, tapi sepertinya bisa buat diaplikasikan sebagai kecepatan…coz waktu belajar fisika dulu ada rumus, dimana V (kecepatan) = S ( jarak) / t (waktu), sedangkan percepatan ialah turunan dari kecepatan… selamat mencoba 😀
Posted by muhlis on Maret 25, 2011 at 2:43 am
asslm mas bisa minta tolong bantuan
saya muhlis mahasiswa atem muhammadiyah makassar
sekarang lagi penyusuna tugas akhir, saya butuh program sensor srf 04 menggunakan at89s51.
saya lagi angkat TA tongkat tuna netra mas, mohon bantuaanx di kirim di email aja muhlis_astro@yahoo.com
thanks sebelumnya
Posted by fahmizaleeits on April 9, 2011 at 5:43 pm
Wslm, sama aja mas pake bascom avr ma mcs51 cuma beda regfilenya saja ma initial portnya saja, info lebih bisa di lihat di help editor mcs51
Posted by saud on April 26, 2011 at 3:23 pm
maaf mas, salam kenal. saya lagi buat penelitian tentang miniatur rem mobil otomatis menggunakan sensor jarak, yang saya gunakan mcs52 pada robot follower. tolong pencerahan dari mas…. idenya tx
Posted by fahmizaleeits on April 29, 2011 at 2:37 am
hmmm menarik sakali itu mas, ane juga dah pernah merancangnya mas, yaitu pengereman dengan kontrol pid, tapi plantnya pada percobaan mobile robot belum diterapkan pada mobil beneran hehehhee 😀
Posted by prakoso on Oktober 11, 2011 at 2:52 am
terimakasih mas, tulisan2nya sangat membantu , semoga makin sukses! 😀
Posted by fahmizaleeits on Oktober 12, 2011 at 12:49 pm
trims atas kunjungannya mas 😀
Posted by prakoso on Oktober 13, 2011 at 10:04 pm
maap mas, dengan listing spt diatas, bisa minta gambar rangkaiannya ngga ya? soalnya, setelah sy donlot ke rangkaian saya kok ga bisa.. terimakasih sekali.
Posted by fahmizaleeits on Oktober 20, 2011 at 9:15 pm
gak pake skema rangkaiann mas… tinggal jumper saja pin yg bersesuaian dengan konfigurasi programmnya ^_^
Posted by artha on November 25, 2011 at 3:32 pm
mantp mas video’a…
lo bleh tau gmn program utk pid cntrol’a tu mas… lo bsa krim k email sya..
Posted by Fahmizal on November 26, 2011 at 10:28 pm
trims ya… programnya sama kayak Line Follower PID… cuma baca sensornya saja pake Ultrasonik ^_^
Posted by epong on Februari 18, 2012 at 11:46 am
kalo line follower kan sensornya banyak mas, kl dengan sensor jarak konversi logika jaraknya gmn mas????
Posted by Fahmizal on Februari 20, 2012 at 8:28 pm
di range aja mas…terus dikategorikan ke biner deh…nah tu kan sama kayak line follower hehehe 😀
Posted by epong on Februari 23, 2012 at 10:22 pm
cara bikin rangenya mas?
ada contoh sedikit buat bikin range dan pengkatagorian ke biner gak mas?
Posted by nito on Desember 27, 2011 at 7:41 pm
mas fahmi setelah membaca artikel anda,. saya punya gambara membuat alat pengukur tinggi badan,..
tampilan numeriknya pada LCD boleh juga Seven segmen. kira2 apa saja yang saya butuhkan untuk membuat alat tsb.
terimakasih
Posted by Fahmizal on Januari 1, 2012 at 4:14 pm
terutama kamu harus membuat sistem rangakaian mikrokontrolernya terlebih dahulu ya ^_^
Posted by ardillahprawira on Maret 1, 2012 at 8:15 am
mau nanya kalo srf04 ana baca-baca review yang pernah pake itu kadang ada masalah hang.
http://arduino.cc/forum/index.php/topic,50048.5/wap2.html
kira2 apa solusinya mas?
Posted by bienThar on April 10, 2012 at 5:46 pm
mas klo srf 04 dipasang di atmega 16 bisa apa ndak..?
truz di pasang di port apa?
makasi.. 🙂
Posted by nasrie on Mei 21, 2012 at 8:51 pm
mas kalo 2 sensor srfnya di pasang di 1 atmega 16 bisa ap nggakya mas…?
mohon dibantu mas
tolong di jawab d sini ; nasriebin@yahoo.co.id
makasi…
Posted by jos gandos on Oktober 16, 2012 at 9:52 pm
mas nanya..itu angka 256 nya dari mana ya di dapatkan????di rumus tsb???
Posted by gagas on November 19, 2012 at 9:52 pm
ass mas salam kenal, mhn tanya kalo sensornya srf 04 d ganti sensor tranducer ultrasonik gmana pengaruhnya
Posted by nunu on Februari 14, 2013 at 12:21 pm
label not found pas di pinc kenapa? bagaimana caranya terimakasih
Posted by urang3rut on November 8, 2014 at 1:37 pm
mas tolong dibantu pas di compile hasilnya “label not found pas di pinc kenapa? bagaimana caranya terimakasih
Posted by anton hidayat on September 17, 2015 at 4:57 pm
da saya anton hidayat pembimbing dari Padang… alah makan fahmi…hehehehe..salam urang awak
Posted by nadia on Maret 2, 2016 at 10:52 am
Mas bagi saya bhsa program arduino dan ping,terima kasih
Posted by Karima Rahmawati Rizki on November 18, 2017 at 4:09 pm
asalamualaikum..saya mau nanya kalo sensor SFR04 bisa gak ya dihubungkan dengan raspberry pi ???