Sebelumnya kita telah belajar bagaimana motor dc bekerja dan bagaimana mengontrolnya dengan micro. Tidak hanya dengan membalik polaritas supply untuk mengendalikan arah putaran motor tapi juga banyak teknik lain untuk mengendalikan motor.
a. PWM
Disini akan dipelajari cara pengendalian motor dengan mengubah-ubah tegangan catuan secara temporar dan secara cepat sehingga didapat tegangan rata-rata, teknik ini disebut PWM/pulse width modulation. Tegangan yang diperoleh digunakan untuk mendapat kecepatan tertentu. Kecepatan dapat diubah dengan memvariasikan waktu on ataupun off.
Perhatikan contoh berikut:
Kita mensuply 10volt selama 40ms dan akan mematikan (0volt) selama 10ms. Jika mengulang siklus ini secara cepat maka akan diperoleh tegangan rata-rata. Dalam kasus ini tegangan off 20% dari waktu total, sehingga tegangan rata-rata motor adalah 80%x10volt=8volt. Dengan tegangan 8volt ini motor akan lebih lambat jika dibandingkan ketika diberi 10volt.
PWM sangat berguna ketika kita ingin memperlambat motor untuk belok maupun berputar.
b. Torsi
Torsi adalah ukuran kekuatan motor. Makin besar torsi maka motor semakin kuat dan semakin berat motor untuk diputar. Torsi motor dc tergantung pada kecepatan motor, yang diukur dalam RPM/revolution per minute. Umumnya makin besar RPM makin besar torsi, demikian sebaliknya.
2. Motor Servo
Disini akan dipelajari bagaimana servo bekerja dan bagaimana memprogramnya.
–Bagaimana servo bekerja:
Seperti yang kita tahu bahwa servo terdiri dari rangkaian pengontrol, gear, potensiometer dan DC motor. Potensiometer terhubung dengan gear demikian pula DC motor. Ketika DC motor diberi signal oleh rangkaian pengontrol maka dia akan bergerak demikian pula potensiometer dan otomatis akan mengubah resistansinya. Rangkaian pengontrol akan mengamati perubahan resistansi dan ketika resistansi mencapai nilai yang diinginkan maka motor akan berhenti pada posisi yang diinginkan.
–Mengontrol servo:
Pengontrollan servo dilakukan dengan memberikan pulsa secara kontinyu selama 1ms sampai 2ms, tergantung posisi yang ingin dicapai. Untuk menjaga posisinya maka pulsa 1ms sampai 2ms itu diulang-ulang sekitar 50 sampai 60kali.
Pulsa 1ms akan memposisikan servo pada 0 derajat, sedangkan 2ms akan memposisikan servo pada maximum putaran. Jika diberi pulsa 1,5ms maka servo akan berputar setengah putaran.
Perhatikan gambar berikut:
Pada bagian ini akan dibahas bagaimana memprogram motor stepper.
Memberikan signal pada pin1 sampai pin4 dengan urutan seperti pada tabel berikut (1,2,3,4,1…)maka akan didapat putaran stepper yang clockwise (searah jarum jam). Untuk membalik arah putaran kita tinggal membalik urutan (4,3,2,1,4…).
4. Analog dan Digital—(ADC/analog to digital converter)
Semua microcontroller adalah digital, yang berarti hanya mengenal dua keadaan yaitu on dan off. Untuk pembacaan sensor seperti sensor tumbukan dan sejenisnya outputnya digital sehingga mudah diolah oleh micro, sedangkan sensor seperti sensor cahaya outputnya berupa tegangan yang bervariasi (analog). Maka agar output bisa digunakan oleh micro maka diperlukan ADC, untuk mengubah ke digital (5volt atau 0 volt).
Ada micro yang sudah terintegrasi dengan fitur ADC dan ada juga yang perlu menambahkan interface ADC secara terpisah. Yang perlu diperhatikan dalam ADC adalah resolusinya. Kebanyakan yang digunakan dalam robotic mempunyai resolusi 8 bit. Range 8 bit adalah dari 0 sampai 255 untuk merepresentasikan 0volt sampai 5volt. Yang berarti ADC dapat mendeteksi perubahan setiap 5/255 volt atau 0,02volt.
5. Sensor Cahaya
Prinsip dari rangkaian sensor cahaya adalah voltage devider/ pembagi tegangan. Seperti yang kita ketahaui sensor cahaya merupakan resistor yang berubah-ubah resistansinya sesuai intensitas cahaya yang diterima. Kita bisa menggunakan sensor cahaya ini secara sederhana dengan merangkainya seri dengan resistor murni dan mengambil tegangan sensor kemudian dimasukkan ke ADC.
Maka didapat rangkaian sebagai berikut:
Dari rangkaian diatas didapat persamaan:
Vout dimasukkan ke ADC.
Kebanyakan rangkaian yang menggunakan ADC harus dihubungkan ke ground untuk memungkinkan pembacaan yang tepat.
6. Menggunakan Sensor Sharp GP2D02
Sharp GP2D02 adalah sensor jarak/kedekatan dengan infra merah. Ini dapat digunakan untuk mendeteksi objek didepannya. Dibutuhkan diode untuk dihubungkan ke micro.
Vin defaultnya adalah 3 volt, sehingga ini tidak dapat dihubungkan secara langsung ke 5 volt karena melebihi maksimum karakteristik dari sensor (3 volt). Maka dibutuhkan diode pada Vin sebelum masuk ke micro. Ketika output mikro high maka sensor tidak akan aktif. Sedangkan ketika output mikro low (sbg ground) akan timbul arus ke sensor dan sensor akan aktif. Ingat pemasangan diode jangan terbalik. Sebaiknya diberi isolasi ataupun heatsink.
Vcc dihubung ke sumber 5volt. Komunikasi antara mikro dan sensor adalah serial. Timing diagram berikut menunjukkan operasi sensor dimana clock line = Vin, data=Vout.
Untuk membaca data dari sensor ini, kita perlu mengaktifkan sensor selama 70ms atau lebih, sehingga sensor telah mempunyai data yang siap untuk dibaca. Kemudian mulai clock selama >=1ms dengan lebar <=0,2ms, pada saat clock low maka kita dapat mengambil datanya. Data diambil sebanyak 8 bit, bit pertama yang diambil sebagai MSB. Setelah data 8bit terambil maka kita buat sensor tidak aktif (Vin high) selama 1,5ms atau lebih. Kemudian kita mengaktifkan sensor lagi selama >=70ms demikian seterusnya.
Data 8 bit itu dapat kita representasikan sebagai jarak dengan rasio tertentu dan dapat ditampilkan ke LCD atau penampil lainnya.
Sumber:
http://www.electronicsteacher.com/robotics/robotics-tutorial/intermediate-robotics/