Joystick Modülü kullanarak Servo Motor Kontrolü
- 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.
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.
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.