Sensor Jarak [PING))) Paralax]


Sensor PING merupakan sensor ultrasonik yang dapat mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik dengan frekuensi 40 KHz dan kemudian mendeteksi pantulannya. Tampilan sensor jarak PING ditunjukkan pada Gambar berikut:

Sensor  ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, Ping))) terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya.

Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun. Ping  hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping. Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping dengan objek.

Untuk penjelasan atau prinsip aksesnya sama kok ma srf04, hanya saja untuk sensor PING hanya memakai 3 pin, pin trigger sama echo digunakan dalam 1 pin, sehingga dengan menggunakan sensor PING kita dapat menghemat penggunaan I/O mikrokontroler. Konfigurasi pin sensor PING sbagai berikut:

Timming akses sensor PING)))

Program  akses Sensor Jarak [ PING))) ]dengan Bascom AVR

$regfile = “m8535.dat”
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.1 , Rs = Portc.0

Config Timer1 = Timer , Prescale = 64

Sigout Alias Portb.0
Sigin Alias Pinb.0
Dirsig Alias Ddrb.0
Dim Data_timer As Integer
‘==================================================
Inisialisasi:
Waitms 100
Initlcd
Locate 1 , 1
Lcd “demo ping”
Wait 1
Cls
Utama:
Gosub Ambil_datatimer
Locate 1 , 1
Lcd Data_timer
Wait 1
Cls
Goto Utama
‘==================================================
Ambil_datatimer:
Dirsig = 1
Set Sigout                                               ‘bankitkan pulsa
Waitus 10
Reset Sigout

‘terima pulsa ubah dulu jadi input
Dirsig = 0                                               ‘jadi input
Set Sigout                                              ‘pull up internal diaktifkan
Bitwait Sigin , Set
Data_timer = 0
Timer1 = 0
Start Timer1

Do
If Sigin = 0 Then
Data_timer = Timer1
Stop Timer1
Exit Do
End If

If Tifr.2 = 1 Then                                ‘cek register timer1 overflow?
Stop Timer1
Tifr.2 = 1
Data_timer = 0
Exit Do
End If
Loop
Stop Timer1
Return

==============================================================

ni dia video aplikasi sensor ultrasonik pada Robot-Wall Follower ato yg lebih dikenal dengan robot telusur dinding:

62 responses to this post.

  1. Posted by joko on Desember 22, 2010 at 1:19 pm

    mas,…
    contoh program untuk sensor ultrasonic merk DT SENSE ada g ms? thx

    Balas

  2. Posted by ikhwan on Januari 27, 2011 at 7:17 am

    maas saya ada tugasuntuk sensor ultrasonic ping tpi dihubungka menuju motor DC. klo pakek contoh program diatas itu gmana ..?? mohon pencerahan mas…

    Balas

    • ane bingung maksud pertanyaan mas yg ini “maas saya ada tugas untuk sensor ultrasonic ping tpi dihubungka menuju motor DC” apa maksudnya dari data jarak buat ngatur putaran motor DC mas? ato apa?

      Balas

  3. Posted by sulis on Januari 27, 2011 at 9:38 am

    mas tanya
    itu ngukur jarak bisa detect kalo ada pantulan kan?
    kalo misal itu dikembangin jadi apa aja ya mas selain jadi penggaris?
    tq tq

    Balas

  4. Posted by richard on Februari 3, 2011 at 6:27 pm

    Mas mau tanya ni..klo sensor ping itu bisa tidak buat ngukur level ciran (Cairan bening atau air tiak berwarna),, makasih

    Balas

  5. maaf mas schematic yang anda gunakan seperti apa ya? kok saya bingung, soalnya di PING))) hanya ada 3 pin yaitu vcc, Gnd, dan Out, tapi kok di script ini mas menggunakan
    Sigout Alias Portb.0
    Sigin Alias Pinb.0
    Dirsig Alias Ddrb.0

    Balas

  6. Ass.wr.wb. Bagus bos postingnya
    Kunjungi blog saya
    http://blog.umy.ac.id/iswanto/;http://iswanto.staff.umy.ac.id/

    Balas

  7. Posted by imam on Februari 12, 2011 at 1:30 pm

    mas maw tnya kl ngakses ping m pwm bersamaan gmn caranya?
    aq cb gabung program ping m pwm dr posting mas kok gak bs ya?kl ad contoh program.tlg di e-mailin (imamriadin@yahoo.com)

    Balas

    • ni pernah q alami juga mas…kenapa tidak bisa itu karena timer pwm dan timer buat ping-nya berada pada fungsi timer yg sama, oleh karena itu harus dibedakan…pada bascom avr dapat dikonfigurasi sebagai berikut:

      Config Timer1 = Pwm ‘ deklarasi ini menjelaskan bahwa timer 1 (16 bit) digunakan sebagai pwm
      Config Timer0 = Timer , Prescale = 1024 ‘deklarasi ini menjekaskan bahwa timer 0 (8 bit) digunakan sebagai timer biasa, selain tu fungsi timer ini dapat digunakan juga sebagai counter…

      selamat mencoba😀 semoga pemberitahuan sedikit ini dapat membantu mas imam. terimakasih atas kunjungannya😀

      Balas

  8. mas, caranya mengakses ping dengan codevision gimana?

    Balas

  9. Posted by imam on April 18, 2011 at 8:02 pm

    mas kl untuk merubah data yg dihasilkan dari ping dijadikan ke cm gmn?mhn bantuanya..kl ad contoh programNya tlg diksh tw mas..thx

    Balas

    • hmmm ane dah sedikit lupa caranya… harus baca referensi lagi… seingat ane sangat bergantung pada stingan timer dan crystal mikronya jika menggunakan cara timer, bisa juga pake cara delay menunggu echo-nya aktif, nah nilai delay tersebut dicoba2 aja secara eksperimental… seingat ane lagi beriksar pada 40-60 mikrosekon. selamat mencoba😀

      Balas

  10. Posted by jko on Mei 29, 2011 at 9:24 am

    Mas.., Bisa Posting materi (teori & coding) Wall Follower menggunakan PID gak..??? kyk d video mas fahmi…!!! coz kerent bgt.

    Balas

  11. Posted by Nelson on Juni 8, 2011 at 12:37 pm

    mas… bisa posting yg pke bhs C++ gk??
    thx

    Balas

  12. Posted by nining on Juni 17, 2011 at 11:29 am

    mas kalo buat PID untuk robot wall follower gimana ya ngatur error nya ???
    kalo line folower kan sedikit mudah di pahami .. kalo wall bingung ????

    Balas

  13. Posted by alfan on Juli 4, 2011 at 12:04 pm

    mas, saya dah program sensor pingnya, trus pas saya coba ga bisa jalan (ga aktif..) knp ya??

    Balas

  14. Posted by aink on Juli 18, 2011 at 11:59 pm

    mau nanya bagaimana cara membuta program pada codevisionavr untuk menampilkan jarak dengan satuan mm.

    Balas

  15. Posted by ed on Juli 28, 2011 at 11:29 pm

    bisa koreksi g kesalahan list program sy.,.,,. rencananya mau buat sistem kontrol.,., tapi pas masuk logika tertentu eh malah g ada tampilan lagi.,.. malah harus diriset,.,..,
    $regfile = “m16def.dat”
    $crystal = 11059200
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Config Timer1 = Timer , Prescale = 64
    Sigout Alias Portd.0
    Sigin Alias Pind.0
    Dirsig Alias Ddrd.0
    Config Porta = Output

    Dim Data_timer As Integer
    Dim Jarak As Single
    Dim Nilaibulat As Single
    Dim A As Single
    Dim B As Single
    Dim C As Single
    Dim D As Single
    Dim Ketinggian_air As Single
    Dim F As Byte

    Inisialisasi:
    Waitms 100
    Initlcd
    Locate 1 , 1
    Lcd “demo ping”
    Wait 1
    Cls

    Utama:
    Gosub Ambil_datatimer
    Locate 1 , 1
    Lcd Fusing(jarak , “##.##”) ; ” cm”
    Locate 2 , 1
    Lcd Fusing(d , “##.##”) ; ” cm”
    Wait 1
    Cls
    Goto Utama

    Ambil_datatimer:
    Dirsig = 1
    Set Sigout
    Waitus 10
    Reset Sigout

    Dirsig = 0
    Set Sigout
    Bitwait Sigin , Set
    Data_timer = 0
    Timer1 = 0
    Start Timer1
    Do
    If Sigin = 0 Then
    Data_timer = Timer1
    Jarak = Data_timer / 10
    ‘Nilaibulat = Fusing(Jarak , “##.##”)
    A = 57
    B = 0.5
    C = Jarak * B
    D = A – C
    ‘ketinggian_air = Fusing (D , “##.##”)
    Stop Timer1
    Exit Do
    End If
    Do
    If D 48 And D 50 And D 52 And D < 54 Then
    F = 7
    Porta = F

    Loop Until D 48.,., n g jalan2 lagi.,.,.,

    email aja mas ya.,.,.
    edy+syahroni33@yahoo.com
    maksi sebelumnya.,.,.,

    Balas

  16. mas…maksudx tifr itu apa n kok pake .2??
    di tifr.2

    Balas

    • akhirnya seneng nemu komentar yg kritis… sebenarnya tifr.1 penjelesannya ialah

      ‘when the timer overflows, a flag named TOV0 in register TIFR is set

      ‘You can use this to execute an ISR

      ‘To reset the flag manual in non ISR mode you must write a 1 to the bit position

      ‘in TIFR:

      Set Tifr.1

      trims kunjungannya ^_^

      Balas

  17. Posted by danel on Februari 10, 2012 at 11:32 am

    mas.. saya mw bwt TA dispenser otomatis, kira2 bs tidak sensor Ping digunakan untuk mengontrol ketinggian air pada gelas air minum… dimana pada jarak tertentu sensor m’hasilkan keluaran untuk mematikan kran…
    mohon penjelasannya mas…
    terima kasih

    Balas

  18. mas, mau nanya kalo sensor ping bisa ditempatkan di outdoor gak? terus bisa dikasih penutup / cover ga buat pelindungnya?

    Balas

  19. Posted by indra on Februari 22, 2012 at 8:21 pm

    mas mau tanya kao PID untuk lf uda fix nih,,trus saya pengen nyoba sensor samping,,itu ditaruh dimana ya prosedur deteksi croos untuk mapping???oia untuk menyimpan data cross gmn ya mas source code pake bascom????

    ni programnya mas:
    $regfile = “m8535.dat”
    $crystal = 11059200
    $eeprom

    ‘============sensor============
    Sensor Alias Pina
    Porta = 255
    ‘============motor=============
    ‘Pwmka Alias Portd.5
    Kamaju Alias Portd.1
    Kimaju Alias Portd.2
    ‘Pwmki Alias Portd.4

    Config Portd.1 = Output
    Config Portd.2 = Output
    ‘============tombol============
    Config Pinc.7 = Input
    Config Pinc.6 = Input
    Config Pinc.5 = Input
    Config Pinc.4 = Input

    Tombol1 Alias Pinc.7
    Tombol2 Alias Pinc.6
    Tombol3 Alias Pinc.5
    Tombol4 Alias Pinc.4

    Set Portc.7
    Set Portc.6
    Set Portc.5
    Set Portc.4
    ‘============lcd===============
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portb.5 , Rs = Portb.7

    Config Lcd = 16 * 2
    Cursor Off
    Dim S1 As Word
    Dim S2 As Word
    Dim S3 As Word
    Dim S4 As Word
    Dim S5 As Word
    Dim S6 As Word
    Dim S7 As Word
    Dim S8 As Word
    Cls
    ‘============pwm===============
    Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    ‘Config Portd = Output
    ‘====deklarasi subrutin=======
    Declare Sub Pwm(byval Kiri As Byte , Byval Kanan As Byte)
    Declare Sub Scaningsensor
    Declare Sub Settingkecepatan
    Declare Sub Kdd
    Declare Sub Kpp
    ‘====deklarasi PID============
    Dim Sensor As Byte
    Dim Pwm_max As Integer , Pwm_ka As Integer , Pwm_ki As Integer
    Dim Kp As Integer , Kd As Integer , Pv As Integer , Error As Integer , Sp_sensor As Integer , P As Integer , Last_error As Integer , Pid As Integer , Pd As Integer
    Dim Ki As Integer , I1 As Integer , I2 As Integer , I3 As Integer , I As Integer
    Dim D1 As Integer , D2 As Integer , D3 As Integer , D As Integer , N1 As Integer , N2 As Integer , Ts As Byte

    ‘============================================================================
    Inisialisasi:

    Readeeprom Kp , 0
    Readeeprom Kd , 0
    Readeeprom Pwm_max , 10
    Pv = 0
    Error = 0
    Sp_sensor = 0
    Ki = 0.6
    Ts = 10
    Waitms Ts ‘TIME SAMPLING
    Call Pwm(0 , 0)

    ‘=======PENGATURAN==========

    Atur:
    S8 = Pina
    Locate 1 , 2
    Lcd Pina.7
    S7 = Pina
    Locate 1 , 4
    Lcd Pina.6
    S6 = Pina
    Locate 1 , 6
    Lcd Pina.5
    S5 = Pina
    Locate 1 , 8
    Lcd Pina.4
    S4 = Pina
    Locate 1 , 10
    Lcd Pina.3
    S3 = Pina
    Locate 1 , 12
    Lcd Pina.2
    S2 = Pina
    Locate 1 , 14
    Lcd Pina.1
    S1 = Pina
    Locate 1 , 16
    Lcd Pina.0
    Waitms 5

    Locate 2 , 4
    Lcd “TEST SENSOR”
    Waitms 1

    If Tombol1 = 0 Then
    Cls
    Call Settingkecepatan
    End If
    If Tombol2 = 0 Then
    Cls
    Call Kpp
    End If
    If Tombol3 = 0 Then
    Cls
    Call Kdd
    End If
    If Tombol4 = 0 Then
    Cls
    Reset Kamaju
    Reset Kimaju
    Call Pwm(255 , 255)
    Goto Utama
    End If
    Goto Atur
    ‘===========MULAI===========
    Utama:
    If Sensor = &B00000000 Then Goto Utama
    If Pina.3 = 1 Then Goto Lurus ‘diasumsikan INI ADALAH NILAI sp
    If Pina.4 = 1 Then Goto Lurus
    Call Scaningsensor
    Isi_pwm:
    ‘=====ERROR=======
    Error = Sp_sensor – Pv
    ‘======PROPOTIONAL CONTROL===
    P = Kp * Error
    ‘=====DERIVATIF CONTROL====
    D1 = Kd * 8 ‘dikalikan mode pwm 9 bit
    D2 = D1 / Ts
    D3 = Error – Last_error
    D = D2 * D3
    ‘=======KONSTANTA INTEGRATIF=====
    I1 = Ki / 8
    I2 = Error + Last_error
    I3 = I1 * I2
    I = I3 * Ts
    ‘=======ERROR LAMPAU=======
    Last_error = Error
    ‘===proportional-INTEGRATIF-derivative control===
    Pd = P + D
    Pid = Pd + I
    ‘====HITUNG KONDISI======
    Pwm_ka = Pwm_max + Pid
    Pwm_ki = Pwm_max – Pid
    Pwm_ka = Pwm_ka + Pid
    Pwm_ki = Pwm_ki – Pid
    If Pwm_ka >= 0 And Pwm_ki >= 0 Then Gosub Maju
    If Pwm_ka = 0 Then Gosub Kanan ‘ batasan PWM
    If Pwm_ka >= 0 And Pwm_ki < 0 Then Gosub Kiri
    If Pwm_ka < 0 Then Pwm_ka = 0 – Pwm_ka
    If Pwm_ki Pwm_max Then Pwm_ka = Pwm_max
    If Pwm_ki > Pwm_max Then Pwm_ki = Pwm_max

    Pwm1a = Pwm_ka ‘ isi PWMnya
    Pwm1b = Pwm_ki

    ‘Home
    ‘Lcd “nilai pwm_ka : ” ; Pwm1a ;
    ‘Lowerline
    ‘Lcd “nilai pwm_ki : ” ; Pwm1b ;

    ‘====subrutin motor====
    Lurus:
    Reset Kamaju
    Reset Kimaju
    Call Pwm(160 , 160)
    Goto Utama
    ‘======================
    Maju:
    Reset Kamaju
    Reset Kimaju
    Return
    Kanan:
    Set Kamaju
    Reset Kimaju
    Return
    Kiri:
    Reset Kamaju
    Set Kimaju
    Return

    ‘=======sub pwm=========
    Sub Pwm(byval Kiri As Byte , Byval Kanan As Byte)
    Pwm1a = Kanan ‘0C1A=PORTD.5=PWMKA
    Pwm1b = Kiri ‘0C1B=PORTD.4=PWMKI
    End Sub

    ‘===========SUB ISI BOBOT ATAU ERROR=========
    Sub Scaningsensor
    Select Case Sensor
    Case &B0000_0001 : Pv = -7
    Case &B0000_0011 : Pv = -6
    Case &B0000_0111 : Pv = -6

    Case &B0000_0010 : Pv = -5
    Case &B0000_0110 : Pv = -4
    Case &B0000_1110 : Pv = -4

    Case &B0000_0100 : Pv = -3
    Case &B0000_1100 : Pv = -2
    Case &B0001_1100 : Pv = -2

    Case &B0000_1000 : Pv = -1
    Case &B0001_1000 : Pv = 0
    Case &B0001_0000 : Pv = 1

    Case &B0011_1000 : Pv = 2
    Case &B0011_0000 : Pv = 2
    Case &B0010_0000 : Pv = 3

    Case &B0111_0000 : Pv = 4
    Case &B0110_0000 : Pv = 4
    Case &B0100_0000 : Pv = 5

    Case &B1110_0000 : Pv = 6
    Case &B1100_0000 : Pv = 6
    Case &B1000_0000 : Pv = 7

    Case &B0000_0000 : Pv = 8

    ‘===========SAAT KELUAR GARIS========

    If Pv > 1 Then : Pv = 10 : Goto Isi_pwm : End If
    If Pv < -1 Then : Pv = -10 : Goto Isi_pwm : End If

    If Pv 0 Then : Pv = 8 : End If
    End Select
    End Sub
    ‘=============ATUR KP================
    Sub Kpp
    Do
    Locate 1 , 1
    Lcd “KP=” ; Kp ; “” ;

    If Tombol1 = 0 Then
    Cls
    Incr Kp
    Waitms 200
    If Kp > 255 Then
    Cls
    Kp = 0
    End If
    End If

    If Tombol2 = 0 Then
    Cls
    Decr Kp
    Waitms 200
    If Kp 255 Then
    Kd = 0
    End If
    End If

    If Tombol2 = 0 Then
    Cls
    Decr Kd
    Waitms 200
    If Kd 255 Then
    Cls
    Pwm_max = 0
    End If
    End If
    If Tombol2 = 0 Then
    Cls
    Decr Pwm_max
    Waitms 200
    If Pwm_max < 5 Then
    Pwm_max = 255
    End If
    End If
    If Tombol3 = 0 Then
    Cls
    Writeeeprom Pwm_max , 10
    Exit Do
    End If
    Loop
    End Sub

    Balas

    • sensor sampingnya pake adc ato komparator…kalo teknik deteksi simpang ato cross dengan sensor samping dapat kamu lakukan dengan cara status… pertama saat sensor samping mendeteksi line (hitam) maka kamu buat aja status kondisi, misal deteksi_hitam=1… nah setelah itu jump ke subrotin pengecekan, jika saat di subrotin penegcekan deteksi putih itu tandanya ada toogle kondisi dari hitam ke putih… nah tandanya ada simpang kalo selama subrotine pengecekan tak ada toogle tandanya tak ada simpang…itu algoritma sederhanya mas…silakan dicoba semoga berhasil😀

      Balas

  20. Posted by indra on Februari 25, 2012 at 5:29 pm

    mas kalo untuk membaca dan menulis ato melihat kondisi sebelumnya itu apa harus pake writeeeprom ma readeeprom,,oia mas maksud dari writeeeprom var, adress itu gimana mas???apa sama dengan if then gtu mas,,maaf mas bnyak nanya,,soale masih setengah2 tau mas…

    Balas

  21. Posted by lukman on April 14, 2012 at 12:42 am

    mas kalo menggunakan codevision atau bahasa c nya gimana???

    Balas

  22. Mas saya pake program mas dimodif2 dkit..hasilnya sdh akurat… cm sy g ngrti..ada bbrapa sy baca di contoh2 program yg lain dan artikel2.. itu diperlukan rumus 2s=v.t tp di program sy tdk pk dikasih rmsnya itu utk mndptkan jarak,pk timer aj sdh ckup akurat. penjlasanya gmn ya tuh mas?terimakasih

    Balas

  23. Posted by dika on Mei 28, 2012 at 1:25 pm

    mas kalau sensor ini dibuat untuk otomatisasi air conditioner bisa gak?

    Balas

  24. Posted by azis eko saputro on Mei 29, 2012 at 3:31 pm

    MAS bntu sya dunkk..
    bngung nich gmn bhasa program jika memakai Sensor ping ini lalu output.a Alarm??
    sy mnggunakan IC AT89S51..
    apa bsa menggunakan bhasa Assembler??
    #mhon bntuan.a mas, krim k email azisekosaputro@gmail.com

    Balas

  25. Posted by cahyono on Juni 2, 2012 at 11:07 am

    mas tolong bantuanya gimana cara mengerjakan 2 buah sensor ping secara bersamaan. . menggunakan bascom 8051. . .
    dan bagaimna cara mereset timer pada bascom 0851.
    trims. .

    Balas

  26. Posted by purnama on Juni 12, 2012 at 1:23 pm

    mas..minta bantuan nya…saya mau buat robot mobil pengikut dinding…tlong kirim program nya ya mas….terus apa saja materi yg harus di kuasai nya…

    terimakasih.

    di tunggu blasan nya..

    Balas

  27. Posted by purnama on Juni 12, 2012 at 1:38 pm

    programnya menggunakan AVR mas…

    Balas

  28. mas fahmi…. mau tanya itu data timernya lebar pulsa atau waktu tempuh.. kalau iya satuannya menopo geh.. (us, ms atau s) ngapunten…. dereng ngertos matur nuwun…

    Balas

  29. Mas fahmi,,sebelumnya saya ucapkan banyak terimakasih untuk semua informasinya.saya mau tanya mas,kebetulan saya sedang membuat sensor jarak dengan ping ini.dan programnya juga saya gunakan yang dari mas fahmi.setelah saya coba hasilnya ternyata langsung ngitung jarak yach,yang Data_timer nya itu.bukan menghitung kec. gelombangnya.dan tampilan di LCD nya juga bilangan bulat dengan satuan CM, kalau misalnya saya pengin nampilin nilainya dalam bentuk bilangan desimal,bisa ngga mas??misalnya dua angka dibelakang koma.atau satuannya jadi MM.
    dan saya bingung juga, knapa formula yang Jarak = kec. suara/2 X waktu. ko ngga dipake?
    maaf mas banyak nanya,ma’lum masih newbie

    Terimakasih banyak,
    ditunggu jawabanya.

    Balas

  30. maaf kk..minta rumus sensor ping donk.kan disensor ping ada counter.nah rumusnya apa tuh?thx

    Balas

  31. E_last = 0
    Pilih = 1

    Kons_p Alias P(1)
    Kons_i Alias P(2)
    Kons_d Alias P(3)

    Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Down
    Timer0 = 255
    Config Timer0 = Timer , Prescale = 1024

    On Ovf0 Pid
    Enable Timer0
    Enable Interrupts

    Declare Sub Kontrol_suhu
    Declare Sub Kontrol_posisi

    mau tanya mksud pnjelasannya ap ka

    Balas

  32. Posted by dian on Desember 7, 2012 at 4:36 pm

    sebelumnya terimakasih atas ilmunya, karna saya banyak menimba ilmu dari blog mas ini. dan mau nanya mas, saya mau mmbuat penstabil cairan didalam tangki menggunakan PING sbgai pembacaan kitinggian cairan. singkat kata apabila cairan didalam tangki berada dilevel bawah ( Level low) maka pompa akan aktif untuk mengisi kembali cairan didalam tangki,sampai cairan berada dilevel atas(level high) maka pompanya mati secara otomatis. dan pembacaan ketinggian cairan yang di baca oleh PING akan ditampilkan di LCD 2×16. kira2 ada bahan yang bisa jadi pencerahan ngak..?

    CTT: menggunakan ATMega8535 dan bascom avr

    syukron..

    Balas

    • itu bahan2nya sudah kamu dekripsikan… maksudmu bahan2 lain kah… ya mungkin mekanisme level airnya bisa menggunakan teknik variabel resistant menggunakan sistem bandul… etc

      Balas

  33. Posted by azhar on Januari 3, 2013 at 9:21 am

    Apakah semua sensor ping PWM nya sama mas?
    bisa dijelaskan…?

    Balas

  34. Posted by ALfian Fortrandyka on April 3, 2013 at 11:00 pm

    mas, mau tanyagmana coding nya ; data jarak buat ngatur putaran motor DC mas, misal ; jarak semakin pendek maka kecepatan motor akan semkin cepat , apabila jarak nya jauh/panjang motor DC kecepatan normal.
    gmana ya mas ?

    Balas

  35. Posted by dian on April 24, 2013 at 8:55 pm

    $regfile = “m8535.dat”
    $crystal = 8000000

    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E
    = Portc.1 , Rs = Portc.0

    Config Timer1 = Timer , Prescale = 64

    Sigout Alias Portb.0
    Sigin Alias Pinb.0
    Dirsig Alias Ddrb.0
    Dim Data_timer As Integer
    ‘================================================== Inisialisasi:
    Waitms 100
    Initlcd
    Locate 1 , 1
    Lcd “demo ping” Wait 1
    Cls
    Utama:
    Gosub Ambil_datatimer
    Locate 1 , 1
    Lcd Data_timer
    Wait 1
    Cls
    Goto Utama
    ‘================================================== Ambil_datatimer:
    Dirsig = 1
    Set Sigout ‘bankitkan pulsa
    Waitus 10
    Reset Sigout

    ‘terima pulsa ubah dulu jadi input
    Dirsig = 0 ‘jadi input
    Set Sigout ‘pull up internal diaktifkan
    Bitwait Sigin , Set
    Data_timer = 0
    Timer1 = 0
    Start Timer1

    Do
    If Sigin = 0 Then

    Data_timer = Timer1
    Stop Timer1
    Exit Do
    End If

    If Tifr.2 = 1 Then ‘cek register timer1 overflow? Stop Timer1
    Tifr.2 = 1
    Data_timer = 0
    Exit Do
    End If
    Loop
    Stop Timer1
    Return
    ‘=====================================================

    Mas bsa tlong koreksi g program ne.
    inti dri program ne untuk menampilkan hasil pembacaan sensor ping pada lcd dalam satuan cm. pas mau di compile ada erornya.
    mohon pencerahannay.

    Balas

  36. Posted by budihari on Mei 12, 2013 at 1:37 pm

    klo untuk cepat rambat dalam air gmn gan.. untuk mengukur ketinggian air

    Balas

  37. Saya punya sedikit masalah dengans ensor Ping yang saya gunakan. Daya yang dipakai oleh robot yang saya miliki berasal dari baterai charger, jika daya baterai mulai sedikit lemah proses pembacaan dari sensor Ping mulai error. Apakah ada cara untuk mengatasi hal itu. Tentunya selain proses penggantian baterai.

    ini blog saya: http://bocah-cakil.blogspot.com

    Balas

  38. Posted by tulus situmeang on September 21, 2014 at 11:47 pm

    mas bisa minta flowchart untuk sensor PING))) nya aja…
    bagai mana sistem pembacaan jarak nya…?

    Balas

  39. Posted by Wisnu Adi Pamungkas on Februari 2, 2016 at 5:14 pm

    Selamat sore mas, mau tanya untuk penggunaan sensor ping sebagai referensi kecepatan putaran motor (PWM) –. kenapa sering terjadi error ya? itu pengaruh dari apa ya? voltage? ato ada yang lain? saya memakai arduino mega 2560…terima kasih.

    Balas

  40. Posted by Ryan on April 27, 2016 at 10:58 pm

    Gini mas saya punya konsep sensor pinknya mau saya taru di porta 0 dan saya pakai lcd saya ama kaya mas di port c lalu saya ingin jika jarak pada lcd 30 cm maka kelauaran waktu untuk mengatur lampu selama 4 detik gmna yha mas bisa bantu gha mas lewat emil juga boleh mas Ryanramadhan6665333@gmail. Com

    Balas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: