XY轴摇杆运用

需要注意,必须是 ADC 引脚才能够接纳模拟信号输入

SG90舵机(Arduino)/XY轴摇杆运用(Arduino)

/** 接线
 *  PS2摇杆      Arduino
 *  x           A0
 *  y           A1
 *  sw          7
*/
const int yg_x_pin = A0;
const int yg_y_pin = A1;
const int yg_btn_pin = 7;  // 摇杆按下的输入引脚 
void setup() {
  // 摇杆引脚连接
  pinMode(yg_btn_pin, INPUT);
  digitalWrite(yg_btn_pin, HIGH);
  Serial.begin(9600);
}
void loop() { 
  // x/y 引脚读取需要运用 analogRead,按钮运用 digitalRead 即可
  yg_x_val = analogRead(yg_x_pin);
  yg_y_val = analogRead(yg_y_pin);
  yg_btn_val = digitalRead(yg_btn_pin); 
  // Serial.print("tX: ");
  // Serial.print(yg_x_val, DEC);
  // Serial.print("tY: ");
  // Serial.print(yg_y_val, DEC);
  // Serial.print("tZ: ");
  // Serial.println(yg_btn_val);
}

SG90舵机

SG90舵机(Arduino)/XY轴摇杆运用(Arduino)

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * 5v       红色
 * GND       棕色
 * 8         黄色      
**/
#include <Servo.h>
Servo myservo;
void setup() {
  // 连接上引脚,注意这里每个舵机的后两位值是不一样的,假如发现舵机滚动的视点不对时能够设置后边两位数组,默许情况下无需设置
  // myservo.attach(引脚, 脉冲宽度最小值, 脉冲宽度最大值);
  // D5 能够输出 PWM , D5 引脚对应 gpio14
  myservo.attach(8, 500, 2500); 
}
void loop() {
    int pos;
   // 慢慢滚动到 180 度
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    delay(15);
  }
   // 慢慢滚动到 0 度
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15);
  }
}