用Edge copilot AI 寫程式_使用搖桿來控制兩顆SG90伺服馬達













這段程式碼會讀取搖桿的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);  // 短暫延遲以穩定伺服馬達

}


留言