這段程式碼會讀取搖桿的X軸和Y軸值,並將其分別映射到兩顆伺服馬達的角度範圍(0到180度),從而控制兩顆伺服馬達的轉動。
-----------------------------------接線方式---------------------------------------
搖桿:
VCC 接到 Arduino 的 5V
GND 接到 Arduino 的 GND
VRx 接到 Arduino 的 A0
VRy 接到 Arduino 的 A1
第一顆SG90伺服馬達:
VCC(紅線)接到 Arduino 的 5V
GND(棕線)接到 Arduino 的 GND
信號線(橙線)接到 Arduino 的 9 號腳位
第二顆SG90伺服馬達:
VCC(紅線)接到 Arduino 的 5V
GND(棕線)接到 Arduino 的 GND
信號線(橙線)接到 Arduino 的 10 號腳位
-----------------------------------程式碼如下---------------------------------------
#include <Servo.h>
Servo servo1; // 創建第一顆伺服馬達對象
Servo servo2; // 創建第二顆伺服馬達對象
int joyX = A0; // 搖桿X軸接到A0
int joyY = A1; // 搖桿Y軸接到A1
int servoPin1 = 9; // 第一顆伺服馬達接到9號腳位
int servoPin2 = 10; // 第二顆伺服馬達接到10號腳位
void setup() {
servo1.attach(servoPin1); // 連接第一顆伺服馬達到指定腳位
servo2.attach(servoPin2); // 連接第二顆伺服馬達到指定腳位
pinMode(joyX, INPUT); // 設定搖桿X軸為輸入
pinMode(joyY, INPUT); // 設定搖桿Y軸為輸入
}
void loop() {
int xValue = analogRead(joyX); // 讀取搖桿X軸值
int yValue = analogRead(joyY); // 讀取搖桿Y軸值
// 將X軸值映射到第一顆伺服馬達的角度範圍
int servoAngle1 = map(xValue, 0, 1023, 0, 180);
servo1.write(servoAngle1); // 設定第一顆伺服馬達角度
// 將Y軸值映射到第二顆伺服馬達的角度範圍
int servoAngle2 = map(yValue, 0, 1023, 0, 180);
servo2.write(servoAngle2); // 設定第二顆伺服馬達角度
delay(15); // 短暫延遲以穩定伺服馬達
}
留言
張貼留言