- Arduino Nano
- Breadboard dan Jumper
- Motor DC
- Optointerrupter, R330, R10k
- L293D
- LabVIEW
- PID Toolkit
- Arduino IDE
Kaki D2 Arduino terhubung dengan output sensor optointerrupter.
Kaki D3 Arduino terhubung dengan input IN1 L293D.
Ini video perbedaan antara kontrol dengan PID dan kontrol tanpa PID:
File program dalam video di atas dapat diunduh di link ini: https://drive.google.com/drive/folders/1eTSD9uS4BYDKnjTh-4zGobjz_nekam5V?usp=sharing
hi saya ingin bertanya bagaimana untuk control servo imaq vision?
ReplyDeletemaaf saya baru belajar dan ingin tahu bagaimana membuatnya..
#sharingiscaring
Oya, apa itu servo imaq vision mas Akmal? Bisa diperlihatkan gambarnya? Maaf, saya baru tahu.
ReplyDeletePak. Dian klo kontrol PID yang pada PID gain harus di masukin juga nilanya pak.
ReplyDeleteya betul
DeletePak. din punya sy setelah di run.pembacaan sensor sama setpoin gk sama seperti yang di vidiokesalahan ada dimana ya pak
ReplyDeleteOya? apakah semuanya sudah sama?
ReplyDeleteSudah pak..bukanya kalo PID semakin mendekati nilai setpoinkan pak. Malah kadang berhenti sistemya. Baru direset jalan lagi...kenapa ya pak
ReplyDeleteboleh lihat fotonya atau videonya?
DeleteUtk mengirim vidio atau foto di blog ini gimana ya pak dian.trim
ReplyDeleteKirim lewat email: dian.artanto@gmail.com
DeleteUtk mengirim vidio atau foto di blog ini gimana ya pak dian.trim
ReplyDeleteSudah di kirim pak
ReplyDeleteOya pak apakah arduino berpengaruh karena arduino sy bekas pake dari lifa base yg sudah di download
Sy optocoupler juga beli yg sudah jadi dari Depok Instrumen beikut piringan 36 lubang.
ReplyDeletePak Dian nilai 150 di program labview untuk kalibrasinya ya pak
ReplyDeleteKalo yang dibagi 20 untuk apa ya pak DIAN trims
Dikali 150 agar menghasilkan nilai RPM putaran motor yang diperoleh dari sensor enkoder. Jadi RPM adalah putaran per menit. Sedangkan program pembacaan enkoder adalah setiap 100 milidetik. Sehingga agar menjadi menit, dari 100 milidetik, harus dikalikan 600. Kebetulan dalam satu putaran, sensor enkoder membaca pulsa optointerupter sebanyak 4 kali (karena ada 4 lubang di enkoder). Dengan demikian, tidak lagi dikalikan 600, tetapi 600/4=150.
DeleteKemudian dibagi 20, karena nilai PWM dari Arduino hanya bisa sampai 255 maksimumnya. Padahal Setpointnya maksimumnya adalah 5000. Jadi supaya bisa 255, tinggal dibagi saja dengan 20. Ok, semoga paham.
pak mau tanya, kalo pembacaan sensor encoder nya saya buat 1000 milidetik nanti hasil akhir nya pasti ada koma nya pak.
Deleteapa ada pencerahan cara mengubah nilai yg bisa koma.?
TeriMa kasih pak infonya. Sangat berharga...buat sy sekali lagi terima kasih
ReplyDeletepak dian kalo pengambialn data pada program (semisal berbentuk text) apakah di tambah libray di program labview sedangkan sudah saya coba ditambah program kaya into to tekt malah program jadi error, bagaimana penambahan programnya ya pak..trimakasih
ReplyDeleteMudah saja, ada 2 cara, Cara pertama, klik kanan pada kotak grafik, pada popup yang muncul pilih Export, kemudian Export Data to Excel. Tempelkan data dengan mem-paste di salah satu kolom di Excel, maka semua data akan muncul.
DeleteCara kedua, adalah dengan menggunakan icon Write to Measurement File. Lebih jelasnya bisa dilihat di blog ini, di bagian ketiga: http://5menitbelajarlabview.blogspot.co.id/p/tangga-ke-3.html
Baik pak Dian meluncur ke blog
ReplyDeletepak dian kan yg bapak itu menggunakan arduino ya trs sensor dan yg lainnya .. sedangkan saya hanya menggunakan motor dc nya udah gt saya menggunakan myRIO .. dari blok digram yg bapak buat kira-kira jika buat saya itu harus diganti yg mana ya pak ..
ReplyDeletekalau pakai myRIO, tinggal ikuti saja contoh program yang diberikan oleh National Instruments. Banyak kok di Youtube, search saja pakai kata kunci PID LabVIEW myRIO. Ok.
Deletepak dian itu Momen inersia rotor (J) =
Deleterasio redaman dari sistem mekanik (b ) =
sama gaya konstan motor yg bapak pakai berapa pak =
Aduh maaf mas Rahmat, saya nggak tahu parameternya. Saya hanya asal pakai dan langsung menerapkan toolkit yang ada di LabVIEW. Sebaiknya mas Rahmat mencari datasheet motor untuk mengetahui parameternya. Ok, sukses mas Rahmat.
Deletehello my friend, i need your help
ReplyDeleteI'm sorry, I don't know about the motor's paramter. I just use the toolkit from LabVIEW, and did'not consider about all parameter. So, if you need those parameter, you should search datasheet.
ReplyDeletewill it work if i remove the opto sensor from the circuit?
ReplyDeleteNo, it will not work, i use optosensor for counting the dc motor speed
Deleteaah okay. can i use a Arduino Uno instead of Nano? and how to know if the Arduino board is already connected to Labview or not?
DeleteYes, you can use Arduino Uno, both are the same. we can see if both are connected, from text or graphics that appear on the front panel display.
ReplyDeletehi thank u. i have a few more questions if u dont mind :) if i replace the 125c51 sensor with a re08a rotary encoder kit, will the project still work? must change anything in the block diagram or what?
Deletehttp://www.robotshop.com/media/files/PDF/users-manual-re08a.pdf << this is the encoder kit datasheet.
Yes, it will work, you only need to replace the constant number 150 to 75.
DeleteThe constant number in the Labview block diagram? Or the arduino coding?
DeleteI can't find the value 150 :(
DeleteLabVIEW block diagram
Deletethank u so much. i have an issue, when i turn on the PID, the the motor loses control. i cannot control the speed anymore and the system crashes. when the PID is off, then i can control the motor speed. do you know why this is happening?
DeleteYes, you can use Arduino Uno, both are the same. we can see if both are connected, from text or graphics that appear on the front panel display.
ReplyDeleteWah mantap pak dian sukses buat pak dian
ReplyDeletePak Din, ini saya coba kok eror ya...ada simbol di blok diagram yg tidak terdeteksi...simbol setelah output range,,mohon pencerahan ?
ReplyDeletePak Din, ini saya coba kok eror ya...ada simbol di blok diagram yg tidak terdeteksi...simbol setelah output range,,mohon pencerahan ?
ReplyDeletewaduh, maaf baru tahu kalau ada pertanyaan. Semoga sudah beres ya, maaf.
DeletePak, ini port i/o saya gag muncul, mohon solusinya
ReplyDeletemaaf, baru balas, mas Alvian harus instal driver NI-VISA LabVIEW
Deletepak dian, maaf saya memakaai driver modul l298, untuk konfigurasinya menjadi seperti apa ya?
ReplyDeletebila programnya tidak diubah, maka pakai saja pin D3 di arduino, masukkan ke IN1, dan IN2 digroundkan, dan ENABLE1 diberi 5V. IN3 dan IN4 serta ENABLE2 dibiarkan saja. ok, semoga bisa.
DeleteAtau bisa juga cara lain, IN1 dihubung dengan 5V, IN2 dihubung ke Ground, dan ENABLE 1 dihubungkan ke pin D3 Arduino.
Maaf pak Dian, apakah memungkinkan program ini menggunakan LINX juga?
ReplyDeleteSaya belum tahu kalau LINK. Jadi, ada 2 aliran di sini:
DeleteAliran 1: membuat Arduino melakukan pembacaan sensor enkoder dan penghitungan kecepatannya. LabVIEW hanya digunakan sebagai penampil data.
Aliran 2: membuat Arduino hanya membaca sensor, sedangkan penghitungan kecepatan dan tampilan data dilakukan di LabVIEW.
Aliran 1 adalah yang saya lakukan di atas. Sedangkan Aliran 2 seharusnya dilakukan oleh LINX. Namun, saya tidak tahu, apakah di LINX sudah menyediakan librari untuk penghitungan kecepatan ini.
Begitu mas Hasan, semoga bisa menjawab.
pak dian apa ada kontak nmr hp mungkin yg bisa dihubungi. mau menanyakan projek. klo boleh kirim via email ya pak.
ReplyDeletefahmi14041995@gmail.com
boleh, email saya: dian.artanto@pmsd.ac.id
DeleteSaya masih belum paham pertanyaannya? hehehe. Tentunya kalau waktu pembacaannya dibuat lebih lama, update datanya juga menjadi lebih lama. :)
Delete"pak mau tanya, kalo pembacaan sensor encoder nya saya buat 1000 milidetik nanti hasil akhir nya pasti ada koma nya pak.
apa ada pencerahan cara mengubah nilai yg bisa koma.? "
Very good, help me in this line and code I can not find the order of labview that commands
ReplyDeleteif(Serial.read()==char(13))
I can send another one instead of char(13)
yes, it is used to get the end of data that sent from LabVIEW to Arduino. So, if Arduino receives char(13) = Carriage Return, it means the data that receive already complete.
Deletemau tanya pak. untuk mengubah pin pembacaan sensornya di bagian mana ya?? di coding arduinonya apa d labviewnya?? sensor saya sudah terlanjur terpasang pada pin A0. ( saya menggunakan arduino uno).
ReplyDeletedi koding arduinonya,
Deletehanya saja, karena pembacaan sensornya menggunakan pin dengan kemampuan intterupt, maka sebaiknya menggunakan pin D2 atau D3. Apabila mas Akip tetap mau menggunakan pin A0, maka harus ditambahkan library pintchange, agar dapat membuat kaki A0 menjadi kaki interrupt secara software. download saja librarynya di https://github.com/GreyGnome/PinChangeInt.
ok semoga berhasil
mau tanya pak, kalau untuk penerapan di motor stepper bagaimana ya?
ReplyDeletemas Fembi, bagaimana kabarnya???
Deletealhamdulillah kabar baik pak
Deletehanya saja perkembangan alatnya yang stagnan hehe
pak dian, bolehkah saya meminta file blok diagram lab viewnya ?
ReplyDeletetentu boleh, silahkan download link di atas
Deleteterima kasih pak dian, saya sudah download front panel+blok diagram labviewnya. ini sangat membantu tugas saya. jika nanti ada kendala, bolehkah saya sharing ?
Deletesip sip, boleh boleh
DeleteThis comment has been removed by the author.
ReplyDeletemaaf belum bisa balas, oya, dikirim lewat email ya, baik saya balas lewat email saja. sip mas Putra
DeleteThis comment has been removed by the author.
ReplyDeleteSelamat malam pa dian, saya ingin bertanya saya kan menggunakan motor stepper tetapi hampir sama dengan uji coba pa dian. Tapi saya belum paham untuk kontrol posisi PID dari motor stepper nya seperti apa. Mohon bantuannya, terimakasih banyak
ReplyDeleteMaaf baru balas mas Agung, untuk motor stepper, ada permasalahan di pengaturan kecepatan yang terbatas. Untuk mengatur hingga kecepatan penuh sangat tergantung pada pengaturan tunda waktu (delay), yang tidak bisa dibuat 0, karena kalau 0, malah motor steppernya tidak berputar. Tetapi jika dibuat mendekati 0, ada kemungkinan terjadi selip juga. Dari percobaan yang pernah saya lakukan, minimal delay pulsa untuk step motor stepper 100 mikrodetik ke atas hingga 100 milidetik. Ketika dibuat 1 detik, terlalu lambat, sehingga rentang pengaturan kecepatannya hanya terbatas. Untuk itu, kalau bisa usul, saya sarankan tidak mengatur kecepatan, tetapi mengatur posisi poros, akan lebih mudah dibanding pengaturan kecepatan. Tentu saja ketelitiannya akan terbatas pada resolusi step motor stepper.
DeleteSelamat siang pak Dian. Saya ingin bertanya. Bagaimana cara mengatasi sensor interrupter yang tidak bisa membaca speed rpm motor ? saya menggunakan opto intterupter itr 9608-F. Dikarenakan saya kesulitan mencari sensor 125c51 seperti yang di tutorial bapak. Terima kasih
ReplyDeleteTerima kasih banyak pak Dian, saya sudah kirim pertanyaan di email bapak 👍
ReplyDeleteassalamualaikum pak dian, saya mau nanya, misal menggunakan motor rc yang ada pada drone itu rangkaiannya menuju arduino dan programnya gimana ya pak? mohon bantuannya soalnya untuk tugas akhir kuliah, terimakasih
ReplyDeletepak dian mau konsultasi tapi lewat WA apakah bisa minta nomornya terkait masalah kontrol pid
ReplyDeleteTerimakasih banyak mas
ReplyDeletecara menghitung proses tuning PID.nya bagaimana pak?
ReplyDeletepak cara menghitunh proses tuning PID nya gmna pak?
ReplyDeleteThis comment has been removed by the author.
ReplyDeletecoding arduinonya itu sudah sesuai pak, di kodingnya tidak ada perhitungannya?
ReplyDeletekalau utk 4 motor bldc bisa kah mas ?
ReplyDeletekak komunikasi arduino ke labview nya gimana ya? sudah saya hubungin ke arduino tapi port nya ga kebaca di labview kak, solusinya gimana ya kak?
ReplyDelete