Sabtu, 25 Juli 2020

Cara Gampang Membaca Count Encoder Dengan Arduino

Apa itu Sensor Encoder?   Encoder ialah salah satu sensor yang paling banyak digunakan dalam bidang industri, encoder memiliki kemampuan untuk menjumlah jumlah putaran sesuatu yang berputar dari pulsa yang dihasilkan dari encoder itu sendiri. Namun pulsa tersebut bisanya timbul dari pemicu yang terhubung/ tercouple pada aktivis/aktuator. Seperti jumlah putaran motor DC, putaran motor servo, Dll. Diaplikasikan Kemana? Pengaplikasiannya pun beragam, seperti mengenali posisi mesin CNC, posisi lengan robot, penghitung jumlah putaran, pengkondisian sebuah alat mulai start stop, Dll. Bagaimana Cara Menghitung Pulsa Encoder ? Untuk lebih mengerti apa itu encoder? mari kita coba mengkalkulasikan pulsa encoder dengan Arduino. Adapun yang perlu teman rencanakan yaitu : 1. Board Arduino (Yang aku pakai MEGA2560) 2. Encoder / motor DC dengan internal encoder. 3. Library PinChangeInt  (Link Download dibawah postingan) Baca : Cara memasukan library baru ke Arduino Setelah antisipasi telah ada langkah berikutnya adalah : Wiring : Contoh Perwiringan Encoder [GAMBAR] 3. Sesuaikan Wiring Channel A dan B Arduino ke Pin yang ada di program Arduino. 4. Jika Encoder sobat membutuhkan daya , jangan lupa beri daya sesui kebutuhan sensor. Program : 1. Copy Sketch berikut ini ke dalam Arduino IDE sahabat. /* Membaca Count Encoder dengan Arduino IND : Sesuaikan Pin Channel A dan B teman, PinChangeInt berfunsi baik dalam pin Analog EN  : Please careful to select your pin Channel A and B, PinChangeInt best performance in Analog Pin   Arduino Uno :   A0 A1 A2 A3 A4 A5   Arduino Mega :   A10 A11 A12 A13 A14 A15 IND : Jika memakai pin digital maka setiap channel mesti diberi resistor pull up       Keterangan lengkap baca isi libray dari PinChangeInt EN  : If you use digital Pin, insert every pin channel with pull up resistor Created by : Jufrika Danil Date       : 19/12/2017 */   #include       //library   #include //library   #define encoder1PhaseA A10  //A10 Channel A   #define encoder1PhaseB A11  //A11 Channel B    long encoder1Position=0; void setup()   // put your setup code here, to run once:   pinMode (encoder1PhaseA,INPUT); //set as input   pinMode (encoder1PhaseB,INPUT); //set as input     //Set Encoder PullUp   digitalWrite(encoder1PhaseA,HIGH);   digitalWrite(encoder1PhaseB,HIGH);   PCintPort::attachInterrupt(A10, doEncoder1, CHANGE); //learn type Change, Rising   Serial.begin (9600); //Standard Serial Monitor void loop()   // put your main code here, to run repeatedly:  float newposition = encoder1Position; //store encoder position to newposition variable  Serial.print   ("count: ");  Serial.print (newposition);  //print in serial monitor  Serial.println (); // function void to read encoder void doEncoder1()   if (digitalRead(encoder1PhaseA) == digitalRead(encoder1PhaseB))       encoder1Position--;     else       encoder1Position++;   2. Compile Program tersebut dan tentukan library terbaca (tidak ada fatal error). 3. Hubunkan Arduino dan pastikan Port dan Board Arduino sobat telah benar. 4. Upload Program dan Buka Serial Monitor. 5. Putar ke Kiri atau ke kanan maka pulsa encoder akan terbaca mirip gambar berikut. DOWNLOAD LIBRARY 
Sumber http://jufrikablog.blogspot.com


EmoticonEmoticon