Rabu, 11 April 2012

Motor DC dengan Speed Encoder

Gara-gara kemarin ada yang order motor dc dengan speed encoder, akhirnya project driver motor kemarin masih terbelengkalai.  Banting stir untuk nyobain baca data dari rotary encoder yang sudah built in motor ini dengan arduino.

ada yang penasaran dengan bentuk motor yg murah meriah ini, dan inilah penampakannya

spesifikasi dari motor dc rotary encoder ini bisa di lihat di empunya toko robot

Okeh lanjut, kita perhatikan datasheet dari motor dc yg di lengkapi dg encoder ini



Spesifikasi Warna Kabel
Motor
Input +5 to +12 VDC Merah
Ground Biru
Speed Encoder
Input +5 VDC Orange
Ground Hitam
Output Open Collector Kuning
116 pulsa

setelah diamati data output Encoder adalah open collector, berarti agar bisa langsung masuk ke port dari arduino, harus di kasih pull up. pull up bisa external atau bisa dari internal arduino. mungkin bisa di baca disini untuk tipe2 output dari encoder 

untuk pull up sendiri sebagai referensi bisa di lihat di website resminya arduino
kita konfigurasi pin2 sebagai berikut

 Langsung dari output (open collector) atau kabel kuning yang ada di rotary encoder tersebut masuk ke pin 2 digital. Untuk pull upnya ikut di programnya.

oh ya motor dengan speed encoder ini outputnya hanya berupa 1 data jadi tidak bisa mendeteksi motor itu cw/ccw

setelah terpasang semuanya, saatnya kita melakukan program di arduino, buka editor arduino masing-masing, berikan program seperti dibawah ini



int ledPin = 13; // LED connected to digital pin 13
int inPin = 2;   // encoder output connected to digital pin 2
int val = 0;     // variable to store the read value
int counter = 0;
int encoderLast = LOW;


 void setup() {
   digitalWrite(inPin,HIGH); // pul up arduino
   pinMode(ledPin, OUTPUT);  //pin 13set to output
   pinMode (inPin,INPUT); //pin 2 set to input
  Serial.begin(9600); //to serial monitor
 }

 void loop() {
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);    // sets the LED when encoder works
  if((encoderLast == LOW)&&(val==HIGH))
  {
    counter++;
    Serial.println(counter); //write in serial monitor
  }
  encoderLast = val;
 
   }

setelah selesai silahkan compile dan program.
percobaan rotary encoder dengan arduino ini adalah langsung di baca di serial monitor. nextime akan dicoba untuk di baca di LCD
Selamat mencoba

Tidak ada komentar:

Posting Komentar