L293 entegresi ile step motor sürebileceğiniz gibi dc motorda sürebilirsiniz.ULN2003’e benzer bir çalışma şekli gösterir fakat ULN2003 e göre 2 motoru da kontrol edebilme ve ayrıca bu motorlara yön verebilme yeteneği vardır. Çok karmaşık bir devre kurmanızı gerektirmez. Basit bir kaç kablo bağlantısı mikroişlemcinizle aradaki bağlantıyı sağlayarak sizin mikroişlemcinin sağladığı küçük akım ve gerilimin döndürmediği motoru döndürmenizi sağlayacaktır.

F8TQPXMFTY4CX3G.LARGE

 

Bağlantı şemamız bu şekildedir. Çalışma mantığı aslında çok basittir. Inputlar mikroişlemcinin portlarının bağlantısıdır. Eğer sol üstteki input 1 olursa motor dönmeye başlar.  Sağ üstte ki inputtan geldiğinde sağda ki motor dönmeye başlayacaktır. Aynı anda sol altta ki input 1 olduğunda ise motor durur.

Eğer sağ üst input 0 sağ alt 0 olursa motor ters yönde dönmeye başlayacaktır.

L293 hakkında Bilgi için Datasheet

Sağ Üst Sağ Alt Sol Üst Sol Alt

   1              0              0            0               Sadece sağ motor dönüyor

  1               1               1             0              Sadece sol motor dönüyor sağ motor durdu      

FE362KSFTY4CX3L.LARGE

Yukarda vermiş olduğum tablo örnek bir kullanımı gösteriyor. 

Voltaj regulatör olarakda 5volt kullanabilirsiniz. Eğer isterseniz mikro işlemci yerine sensör de bağlayabilirsiniz.

eğer isterseniz arduino yerine msp430 veya pic te kullanabilirsiniz. 8.pine daha yüksek voltajlar vermeniz halinde daha iyi bir dönüş sağlayabilirsiniz.

Fakat Diğer kısımlara 5volt vermeniz daha iyi olacaktır.

 

Kod

// --------------------------------------------------------------------------- Motorsint motor_left[] = {2, 3};int motor_right[] = {7, 8};// --------------------------------------------------------------------------- Setupvoid setup() {Serial.begin(9600);// Setup motorsint i;for(i = 0; i < 2; i++){pinMode(motor_left[i], OUTPUT);pinMode(motor_right[i], OUTPUT);}}// --------------------------------------------------------------------------- Loopvoid loop() { drive_forward();delay(1000);motor_stop();Serial.println("1");drive_backward();delay(1000);motor_stop();Serial.println("2");turn_left();delay(1000);motor_stop();Serial.println("3");turn_right();delay(1000);motor_stop();Serial.println("4"); motor_stop();delay(1000);motor_stop();Serial.println("5");}// --------------------------------------------------------------------------- Drivevoid motor_stop(){digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW);delay(25);}void drive_forward(){digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); }void drive_backward(){digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); }void turn_left(){digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW);}void turn_right(){digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); }

 

 

 

 

 

 

 

  • halil ibrahim

    Merhaba
    Ben bi proje yapacagim
    Arduino katrtla
    İleri geri devirli bir motor olacak zaman ayarli ilk ilere calistiginda ortalama 20 dk gibi zamanla otomatik baslayacak durdurma sivic yardimiyla manuel olacak 20 dk kadar bekleyip geri calisacak yine ayni bi 20 dakika kadar calisip durdurma sivic yardimiyla sonlu olacak sonra tekrar 20 dakika bekleyim ileri devam edecek bu sekilde dongulu ayarlaya bilecegim bir kart .. hangi kart ve yaninda neler oneri bekliyorum İyi CALİSMALAR simdiden yatdiminiz icin tesekkur ederim….