Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

2 Mayıs 2021 Pazar

Joystick Modülü kullanarak Servo Motor Kontrolü

Joystick Modülü kullanarak Servo Motor Kontrolü


Joystick modülü, kullanımı en kolay modüldür ve projelerinize daha fazla esneklik katar. Bir çok mikrodenetleyici ile kullanılabilir ama biz Arduino kullanıyoruzAnalog Joystickler analog değerleri döndürür. Bunlar temelde potansiyometrelerdir. Bu değerler 0 ile 1023 arasında değişmektedir. Joystick dinlenme konumunda olduğunda analog değer 512 olacaktır. Arduino analog pinleri verileri yatay ve dikey pinlerden okuyacak ve butonu okumak için dijital pin kullanılacaktır. . Joystick modülünün 5 pimi vardır ve bunlar
  • Besleme gerilimi (VCC)
  • Zemin
  • X tuşu (Yatay tuş).
  • Y tuşu (Dikey Tuş)

Joystick aşağıya basılarak etkinleştirilebilen bir "seçmek için basın" basma düğmesi de vardır. Bunlar, modülünüzü nereden satın aldığınıza bağlı olarak farklı olabilir. Kullandığımız joystick analogdur ve basit yönlü joysticklerden daha doğru okumalar sağlar. 





















Joystick modülünün arduino ile bağlantısı

Bağlantı şeması çok kolaydır. Arduino 5 v'yi joystick'in VCC'sine bağlayın. Sonra A0 ve A1'i joystick'in VER ve HOR'una bağlayın. Son olarak, Arduino'nun 2. pinini joystick'in SEL'e ve Arduino'nun GND'sini joystick'in GND'sine bağlayın.joystick modülü arduino ile arayüz oluşturuyor

Arduino Joystick

A0  -------VER

A1 ------- KOR

Pin2 ------- SEL

GND ------- GND

Arduino ile joystick arayüzünün kodu

// Oyun çubuğu modülü kodu

int x_key = A1 ;                                                 // initializing A1 for storing the joystick’s x key value

int y_key = A0 ;                                                 // initializing A0 for storing the joystick’s y key value

int Push_Button= 2 ;                                       // initializing digital pin 2 for joystick’s press to select button

int Horizontal_Position = 0 ;                         // Declaring a variable for storing the value

int y_Position = 0 ;                                           // Declaring a variable for storing the value

int button_State = 0 ;                                     // Declaring a variable for storing the value

void setup ( ) {

  Serial.begin ( 9600 ) ;                                    // initializing serial communications at 9600 bps:

  pinMode ( x_key, INPUT ) ;                       // Selecting Arduino analog A1 pin as input

  pinMode ( y_key, INPUT ) ;                       // Selecting Arduino analog A0 pin as input

  pinMode (Push_Button, INPUT_PULLUP ) ;     // This will activate pull-up resistor on the push-button pin

  // If you have Arduino version previous to Arduino 1.0.1, then use these commands for activating pull-up resistor.

  // pinMode ( button_Pin , INPUT ) ;

  // digitalWrite ( button_Pin , HIGH ) ;

}

void loop ( ) {

Horizontal_Position = analogRead ( x_key ) ;  // Reading the value from A1 and storing in Horizontal_Position

  y_Position = analogRead ( y_key ) ;                       // Reading the value from A0 and storing in y_Position

  button_State = digitalRead ( Push_Button) ;     // Reading the digital pin 2 is high or low

  Serial.print ( " Value of X key is " ) ;                        // Printing “ Value of X key is ” on the disply

  Serial.print ( Horizontal_Position ) ;                        // Printing value of x key on the display

  Serial.print ( " | Value of Y key is " ) ;                     // Printing “ Value of Y key is ” on the screen

  Serial.print ( y_Position ) ;                                   // Printing value of y key on the display

  Serial.print ( " | Button State is " ) ;                        // Printing “ Button state ” on the display

  Serial.println ( button_State ) ;                               // Printing the button is high or low on the display

  delay ( 1000 ) ;                                                 // This will add delay between readings

}

İki servo motorlu Arduino kullanarak joystick tabanlı servo motor kontrolü

















joystick tabanlı servo motor kontrol devre şeması ve gerçek uygulama yukarıda ve aşağıda gösterilmiştir.Şimdi joystick modülü yardımıyla iki servo motoru nasıl kontrol edebileceğimizi göreceğiz. İki adet servo motor kullanıyoruz. Joystick modülünün x ekseni ile bir servo motor kontrol edilebilmekte, diğer servo motor ise joystick modülünün y ekseni ile kontrol edilmektedir. Bu örnekte, bir joystick kullanarak 2 servo motoru kontrol edeceğiz. Bu örnek, oyun denetleyicileri ve elektronik oyuncak arabalar gibi birçok projede kullanılmaktadır.














Joystick ile servo motor kontrolü için gerekli bileşenler

Gerekli bileşenler aşağıdaki gibidir

  • 2 servo
  • Oyun kolu
  • Arduino uno (herhangi birini kullanabilirsiniz)
  • Breadboard

Servo motorun üç bağlantısı vardır.

  • Pozitif
  • Olumsuz
  • Sinyal

Bağlantılar çok daha kolay. Servoları ve kumanda çubuğunu şekilde gösterildiği gibi bağlayın.

Joystick tabanlı servo motor kontrol kodu

Bu kod için önce servo kütüphanesini indirmeniz gerekecek.

// Controlling 2 Servos Using a Joystick.

#include < Servo.h >                       // including the library of servo motor

int First_Signal_Pin = 6 ;                // initializing pin 6 for first servo

int Second_Signal_Pin =  7 ;         // initializing pin 7 for first servo

int Horizontal_Joystick_Pin = A0 ;  // initializing A0 for horizontal movement

int Vertical_Joystick_Pin = A1 ;  // initializing A1 for vertical movement

// initializing the min and max values for horizontal and vertical movement

int Horizontal_Min = 0 ;

int Horizontal_Max = 180 ;

int Vertical_Min = 0 ;

int Vertical_Max = 180 ;

Servo First_Servo ;

Servo Second_Servo ;

// Declaring variables for storing values

int Horizontal_Value ;

int Horizontal_Servo_Value ;

int Vertical_Value ;

int Vertical_Servo_Value ;

void setup ( )

{

  First_Servo.attach ( First_Signal_Pin ) ;                                // Enabling pin 6 for first servo

  Second_Servo.attach ( Second_Signal_Pin ) ;                    // Enabling pin 7 for first servo

}

void loop ( )

{

  Horizontal_Value  = analogRead ( Horizonta_Joystick_Pin ) ;  // Reading the value from A0

  Vertical_Value  = analogRead ( Vertical_Joystick_Pin ) ;    // Reading the value from A1

// Mapping the values for horizontal and vertical movement of joystick.

 Horizontal_Servo_Value  = map ( Horizontal_Value, 0 , 1023, ServoH_Min , ServoH_Max ) ;

  Vertical_Servo_Value  = map ( Vertical_Value, 0, 1023, ServoH_Min , ServoH_Max ) ;

// Moving the servos

  First_Servo.write ( Horizontal_Servo_Value ) ;

  Second_Servo.write ( Vertical_Servo_Value ) ;

  delay ( 2000 ) ;    // Delay of 2 seconds

}

Gördüğünüz gibi arduino ve servo motor kontrol kodu ve devre şeması ile joystick'i Arduino uno R3 kullanarak kullanmak çok kolaydır.


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.