brontoseno electric

12:22 AM
6
Mengakses rotary encoder dengan menggunakan timer inetrupt anychange


      Sensor Encoder ini sangat marak di gunakan di dalam robot mobile , terutama digunakan untuk robot yang memerlukan navigasi secara otomatis. Kegunaan sensor ini adalah sebagai penghitung jarak robot terhadap putaran, jadi kita tau dimana dan kapan kita akan berhenti.Prinsip kerja dari rotary encoder ini adalah menghitung putarnan yang berpusat pada shaft rotary tersebut , setiap putaran yang terjadi rotary mengeluarkan pulse counter up maupun counter down, jadi kita hanya perlu membaca nilai counter yang dikeluarkan oleh rotary ini saja.Untuk lebih mudahnya saya akan membagikan contoh program dan menjelaskan tentang cara kerja program membaca rotary dengan fitur interupt anychange.



Program di bawah ini adalah contoh untuk membaca cacahan dari ke dua pulsa encoder A dan B  



// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
    //  Saat terjadi interupt di PIND.2 dan signalnya sama dengan signal di PIND.0 maka variabel rotary[kiri]
   //   akan melakukan counter down jika tidak berarti rotary[kiri] akan melakukan counter up. Kenapa            //   demikian keuntungan menggunakan anychange ini sangat tinggi , selain mengurangi nois akibat getara        //   pada rotary anychange juga berfungsi mencegah bounching pada pembacaan rotary , sehingga ketelitian    //   rotary menjadi meningkat 2 kali lipat dari pulsa awal. Pulsa yang dibaca naik dan turunnya sekaligus          //   yang membuat nilai counter encoder ini meningkat ketelitiannya menjadi 2 kali lipat.

    if(PIND.2==PIND.0)    
        rotary[kiri]--;
    else rotary[kiri]++;
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
    // Place your code here
    if(PIND.3==PIND.1)
        rotary[kanan]++;
    else rotary[kanan]--;
}

Dari pengalaman saya jika kita menggunakan falling atau rissing akan banyak menimbulkan banyak nois, jadi saya sarankan teman-teman semua untuk menggunakan anychange saja.Untuk source programnya lengkap kalian bisa download langsung link di bawah ini.


Encoder download source
Datasheet encoder


By. andra risciawan


6 komentar:

  1. source code nya ngga bs d download mas

    ReplyDelete
    Replies
    1. Ya nanti saya perbaharui ... sabar mas ya .. segera saya rilis kembali nanti ..

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. dimana program penampilan LCDnya mas ?

    ReplyDelete
  4. kok gk bisa di download mas.... minta tolong kirim lewat email mas

    ReplyDelete