الأردوينو

كيف يمكن استخدام الـ Joystick مع الأردوينو؟

يمكن استخدام الـ Joystick مع الأردوينو عن طريق توصيلها بالمدخل الأنالوجي A0 و A1 والمدخل الرقمي 2 و 3.

يمكن استخدام الدالة analogRead لقراءة القيم المستقبلة من المدخل الأنالوجي A0 و A1 ، ويمكن استخدام الدالة digitalRead لقراءة القيم المستقبلة من المدخل الرقمي 2 و 3.

يمكن استخدام هذه القيم للتحكم في حركة الأشياء في الواجهة الرسومية المراد التحكم بها من خلال الـ Joystick.

يمكن استخدام الشفرة التالية كدليل لاستخدام الـ Joystick مع الأردوينو ولتحكم في محرك السيرفو:

“`
#include

Servo myservo; // create servo object to control a servo

int x_pin = A0; // select the input pin for joystick X
int y_pin = A1; // select the input pin for joystick Y
int button_pin = 3; // select the input pin for button

int x_val; // variable to store the value read from joystick X
int y_val; // variable to store the value read from joystick Y

int button_val; // variable to store the value read from button

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(button_pin,INPUT_PULLUP); // set the button_pin as an input with a pullup resistor
Serial.begin(9600); // initialize serial communication at 9600 bits per second
}

void loop() {

x_val = analogRead(x_pin); // read the value from the joystick X
y_val = analogRead(y_pin); // read the value from the joystick Y

button_val = digitalRead(button_pin); // read the value from the button

if (button_val == LOW) { // if the button is pressed
myservo.write(90); // move the servo to angle 90
} else { // if the button is not pressed
myservo.write(map(x_val, 0, 1023, 0, 180)); // move the servo based on the value from joystick X
}

// print the values to serial monitor
Serial.print(“X: “);
Serial.print(x_val);
Serial.print(“, Y: “);
Serial.print(y_val);
Serial.print(“, Button: “);
Serial.println(button_val);

delay(100); // wait for a moment before reading again
}
“`