dominoFiber     domiRobot     Forum


Projeler - Joystick İle DC Motor Kontrol

Joystick İle DC Motor Kontrol
Bu projemizde joystick İle dc motorun hız ve yön kontrolüne ait devreyi paylaşıyoruz. Joystick kolunun ileriye itilmesiyle motor ileriye, joystick kolunun geriye çekilmesiyle de motor geri yöne dönecektir. Joystck kolu hangi oranda ileriye ya da geriye hareket ettirilirse motora o oranda güç ugulanır ki böylece motorun yön kontrolüyle beraber hız kontrolü de yapılmış olur. Projemizde aynı zamanda motora uygulanan güç eşzamanlı olarak LCD ekranda % cinsinden görüntülenmektedir.

Amaç
Joystick modül ile dc motorun yön ve hız kontrolünü yapabilme becerisini kazanmak.

Seviye
Orta seviye

<a href="http://www.youtube.com/watch?v=JUKJaWlhQew" target="_blank">http://www.youtube.com/watch?v=JUKJaWlhQew</a>
Video 1: DC motorun joystick ile yön ve hız kontrolü

Fotoğraf 1: Motor hızı lcd ekrandan okunur

Fotoğraf 2: Devrenin tamamlanmış hali

Fotoğraf 3: Devrenin tamamlanmış hali

Fotoğraf 4: Devrenin tamamlanmış hali

Şema 1: Fritzing çizimi

Şema 1: ISIS çizimi

Malzeme listesi
[ur=http://www.domirobot.com/dfrobot-gravity-joystick-module-v2-pmu2288l]Joystick modül[/url]
Arduino Leonardo R3
Erkek-Dişi Renkli Esnek Jumper Kablosu
Erkek-Erkek Renkli Esnek Jumper Kablosu
16x2 I2C/TWI Seri Mavi LCD Ekran
DC Motor
BD135 NPN transistör
180Ω Resistor
Breadboard

Hatırlatmalar ve Olası Problemler
Joystick kolu ortada iken motor durmuyorsa arduino kodunda 521 sayısını kullanmış olduğunuz joysticki dikkate alarak değiştiriniz. Örnek devrede kullanılan joystick orta konumda iken mevcut kodlamada 521 sayısına denk gelmektedir. Hangi sayıyı yazacağınızı bilmiyorsanız deneme yanılma ile ya da joystickenin konumunu seri port ekranında gözlemleyerek bu sayıyı tespit edebilirsiniz. Montaj öncesinde devrede kullanılan kompenentlerin sağlamlık kontrılünü yapmayı ihmal etmeyiniz. Daha güçlü motorlar için daha fazla akıma dayanan transistör kullanmalısınız.

Arduino kodları
Kod: [Seç]
/*
www.domirobot.com
DC motor joystick kontrol
OCAK 2017
@2017, All Rights Reserved
@2017 Tüm Hakları Saklıdır.  */

int ileri_pin = 11;
int geri_pin = 10;
int potansiyometrePin = A0;
int potansiyometreValue = 0;
int potansiyometre=0;
int ileri_hiz=0;
int geri_hiz=0;
int ileri_hiz_yuzde= 0;
int geri_hiz_yuzde= 0;

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
  pinMode(ileri_pin, OUTPUT);
  pinMode(geri_pin, OUTPUT);
  lcd.begin(16,2);
}

void loop() {
  potansiyometreValue = analogRead(potansiyometrePin);
  ileri_hiz= map(potansiyometreValue, 530, 1023, 175, 255);
  geri_hiz= map(potansiyometreValue, 494, 0, 175, 255);
  ileri_hiz_yuzde= map(ileri_hiz, 175, 255, 0, 100);
  geri_hiz_yuzde= map(geri_hiz, 175, 255, 0, 100);
 
  if( potansiyometreValue > 530){lcd_ileri_hiz(); ileri_git();}
  if( potansiyometreValue < 494){lcd_geri_hiz(); geri_git();}
  if( potansiyometreValue == 521){dur();}
}

void lcd_ileri_hiz(){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ILERI HIZ : %");
      lcd.print(ileri_hiz_yuzde);
      lcd.setCursor(0,1);
      lcd.print("GERI  HIZ : %0");
      delay(20); 
}

void lcd_geri_hiz(){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ILERI HIZ : %0");
      lcd.setCursor(0,1);
      lcd.print("GERI  HIZ : %");
      lcd.print(geri_hiz_yuzde);
      delay(20);
}

void ileri_git(){
      analogWrite(ileri_pin, ileri_hiz);
      analogWrite(geri_pin, 0);
}

void geri_git(){
      analogWrite(ileri_pin, 0);
      analogWrite(geri_pin, geri_hiz);
}

void dur(){
      analogWrite(ileri_pin, 0);
      analogWrite(geri_pin, 0);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ILERI HIZ : %0");
      lcd.setCursor(0,1);
      lcd.print("GERI  HIZ : %0");
      delay(20);

Download
İhtiyaç duyulması halinde projeye ait dosyaları download/joystick dc motor linkinden indirebilirsiniz.



Joystick satın al

  • Joystick satın alJoystick satın alJoystick satın al