Pengujian Kode Biner Keluaran

50 Terlihat setelah diberikan sebuah tambahan resistor, keluaran dari sensor ini menjadi sebesar 9,08 VDC saat kondisi high dan 0,766 VDC saat kondisi low . Tegangan keluaran ini nantinya akan masuk kedalam pegendali utama, dan akan di olah menjadi sebuah besaran sudut. Oleh karena tegangan yang boleh masuk kedalam pin pengendali utama hanya sebesar 5 VDC untuk kondisi high , maka sistem kontrol keluaran sensor rotary encoder perlu tambahan sebuah pembagi tegangan. Gambar 4.8. Pengujian akhir pengendali keluaran rotary encoder . Setelah diberikan sebuah pembagi tegangan, keluaran yang dihasilkan oleh sensor menjadi sebesar 4,778 VDC untuk kondisi high dan 0.029VDC untuk kondisi low . Dengan hasil tersebut, maka keluaran dari sensor absolute rotary encoder sudah aman dan dapat dimasukkan kedalam pin arduino.

4.3.1.2. Pengujian Kode Biner Keluaran

Absolute Rotary Encoder Pengujian kode biner dilakukan untuk mengetahui nilai variasi kode biner yang di hasilkan oleh sensor rotary encoder . Pengujian dilakukan dengan menggunakan 10 buah LED yang menandakan 10 bit keluaran dari sensor rotary encoder yang digunakan. Hasil pengukuran dapat dilihat pada tabel 4.1. 51 Tabel 4.1. Hasil pengujian kode biner keluaran rotary encoder . Output Biner Bit Ke- Desimal Desimal BCD 9 8 7 6 5 4 3 2 1 0 0 0 1 0 1 0 0 1 1 0 166 106 0 0 1 0 1 1 0 1 1 0 182 116 0 0 1 1 0 0 0 1 1 0 198 126 0 0 1 1 0 1 0 1 1 0 214 136 0 0 1 1 1 0 0 1 1 0 230 146 0 0 1 1 1 1 0 1 1 0 246 156 0 1 0 1 1 0 0 1 1 0 358 166 0 1 0 1 1 1 0 1 1 0 374 176 0 1 1 0 0 0 0 1 1 0 390 186 0 1 1 0 0 1 0 1 1 0 406 196 0 1 1 0 1 0 0 1 1 0 422 206 0 1 1 0 1 1 0 1 1 0 438 216 0 1 1 1 0 0 0 1 1 0 454 226 0 1 1 1 0 1 0 1 1 0 470 236 0 1 1 1 1 0 0 1 1 0 486 246 0 1 1 1 1 1 0 1 1 0 502 256 1 0 0 1 1 0 0 1 1 0 614 266 1 0 0 1 1 1 0 1 1 0 630 276 1 0 1 0 0 0 0 1 1 0 646 286 1 0 1 0 0 1 0 1 1 0 662 296 1 0 1 0 1 0 0 1 1 0 678 306 1 0 1 0 1 1 0 1 1 0 694 316 1 0 1 1 0 0 0 1 1 0 710 326 1 0 1 1 0 1 0 1 1 0 726 336 1 0 1 1 1 0 0 1 1 0 742 346 1 0 1 1 1 1 0 1 1 0 758 356 1 1 0 1 1 0 0 1 1 0 870 366 1 1 0 1 1 1 0 1 1 0 886 376 1 1 1 0 0 0 0 1 1 0 902 386 1 1 1 0 0 1 0 1 1 0 918 396 1 1 1 0 1 0 0 1 1 0 934 406 1 1 1 0 1 1 0 1 1 0 950 416 1 1 1 1 0 0 0 1 1 0 966 426 1 1 1 1 0 1 0 1 1 0 982 436 1 1 1 1 1 0 0 1 1 0 998 446 1 1 1 1 1 1 0 1 1 0 1014 456 1 1 1 1 1 1 1 1 1 1 1023 465 52 Dari hasil pengujian yang dilakukan didapatkan 360 macam variasi biner, sedangkan pada tabel 4.1 hanya menampilkan hasil pengukuran sebanyak 36 macam variasi biner yang dimulai dari 0010100110 2 sampai 1111111111 2 . Pada tabel 4.1 hasil percobaan yang ditunjukkan hanya 36 jenis variasi biner dengan kenaikan 10 bit. Terlihat hasil pada tabel 4.1 kode biner yang dihasilkan tidak dimulai dengan kode biner 10 bit seperti pada umumnya, yaitu 0000000000 2 , melainkan dimulai dengan 0010100110 2 . Hal ini dikarenakan tipe sensor rotary encoder yang digunakan adalah tipe absolute , yang pada dasar teori subbab 2.4.1.1 telah dijelaskan bahwa kode biner yang dihasilkan oleh rotary encoder tipe absolute sangat unik karena bergantung pada susunan segmen pada piringan optik yang ada pada sensor tersebut. Pengkodean biner pada sensor ini sendiri adalah BCD code , dimana BCD code merupakan sistem pengkodean biner bilangan desimal yang sistem konversinya bukan secara keseluruhan, melainkan konversi satu per satu. Cara konversi kode biner menjadi desimal pada BCD code dilakukan dengan membagi 10 bit keluaran rotary encoder menjadi 3 bagian, dimana setiap bagiannya terdiri dari 4 bit dimulai dari bit paling kecil hingga bit paling besar secara berurutan. Dikarenakan pada sensor ini keluaran yang dihasilkan hanya 10 bit, maka diberikan 2 bit tambahan yang nilainya tidak mempengaruhi nilai 10 bit keluaran sebenarnya dari sensor rotary encoder yaitu 00 2 untuk bit 11 dan 12. Seperti terlihat pada tabel 3.2, 4 bit pertama bit 0, 1, 2, 3 merupakan nilai satuan desimal, kemudian 4 bit selanjutnya bit 4, 5, 6, 7 merupakan nilai puluhan desimal, dan 4 bit terakhir bit 8, 9, 10, 11 merupakan nilai ratusan desimal. Berikut ini adalah contoh konversi BCD code yang dihasilkan oleh sensor rotary encoder menjadi desimal berdasarkan tabel 3.2. BCD : 1111111111  0011-1111-1111 BCD : 0010100110  0000-1010-0110 1111  8+4+2+1 x 1 = 15 0110  0+4+2+0 x 1 = 6 1111  8+4+2+1 x 10 = 150 1010  8+0+2+0 x 10 = 100 0011  0+0+2+1 x 100 = 300 0000  0+0+0+0 x 100 = 0 Desimal : 15+150+300 = 465 Desimal : 6+100 = 106 Dapat dilihat pada hasil perhitungan tersebut nilai maksimum dan minimum desimal adalah 465 dan 106. Karena hasil perhitungan menunjukkan nilai desimal tersebut ada 360 nilai, maka nilai desimal tersebut dapat di konversi kembali menjadi 53 sudut dari 0°-359°. Oleh karena itu dapat disimpulkan bahwa sensor ini dapat menghasilkan perubahan sudut sebesar 1° untuk setiap satu perubahan 1 bit kode biner. Untuk mengkonversi nilai desimal yang didapatkan menjadi besaran sudut, maka yang perlu diperhatikan adalah rentang nilai sudut yang diinginkan. Pada tugas akhir ini rentang nilai yang dipilih ada -179° sampai 180° dengan nilai tengah adalah 0°. Nilai tengah ini merupakan nilai setpoint yang ingin dicapai oleh batang pendulum sehingga batang pendulum tegak lurus keatas. Berikut ini potongan coding program untuk mendapatkan nilai sudut. Desimal = a + b + c + d + e + f + g + h + i + j; Sudut=DesTemp-Desimal; ifSudut180 { SudutTemp = Sudut-180; SudutTemp = SudutDelta-SudutTemp; Sudut = SudutTerkecil-SudutTemp; } Variable a sampai j pada potongan program diatas merupakan nilai desimal yang dihasilkan oleh keluaran sensor untuk masing-masing bit, dimulai dari variable a untuk bit0 sampai variable j untuk bit9. Kemudian variable Desimal adalah jumlah desimal keseluruhan bit dari sensor. Setelah itu, cari nilai desimal dari sudut 0° untuk menentukan rentang nilai sudut dari -179° sampai 180°hal ini dilakukan dengan cara manual. Kemudian dilakukan pengecekan secara manual kembali untuk melihat apakah rentang nilai sudut sudah benar. Cara yang dilakukan adalah dengan melihat nilai sudut apakah ada sudut yang melebihi 180° atau lebih kecil dari -179°. Jika ada yang di luar rentang nilai sudut yang di inginkan, maka nilai sudut tersebut akan dipaksa menjadi minimal -179° atau maksimal 180°. Cara yang digunakan adalah dengan menambahkan nilai yang berlebih tersebut kepada nilai sudut yang kurang. Variable SudutDelta adalah nilai selisih sudut yang terbaca dengan rentang sudut normal yang sudah ditentukan kemudian ditambah 1. Misal hasil pengujian didapatkan sudut terkecil adalah -138° dan 54 sudut terbesar adalah 221°, maka SudutDelta adalah 42 dan SudutTerkecil adalah -138°. Variable SudutTemp adalah nilai sudut sementara yang digunakan untuk menentukan nilai sudut 0°. Variable Sudut adalah nilai sudut yang rentang nilainya adalah -179° sampai 180°.

4.3.1.3. Pengujian Sudut Absolute Rotary Encoder