亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino + 模拟摇杆互动游戏:五向 LED 反馈

所需元件

接线对照

摇杆引脚Arduino
VRxA0
VRyA1
SWD2(内部上拉)
VCC/GND5V/GND

LED 分别接 D7(按键)、D8(上)、D9(右)、D10(左)、D11(下),串联 220 Ω 电阻。

代码

#define joyX A0
#define joyY A1
const int btnPin = 2;

const int LED_UP    = 8;
const int LED_RIGHT = 9;
const int LED_LEFT  = 10;
const int LED_DOWN  = 11;
const int LED_BTN   = 7;

void setup() {
  pinMode(btnPin, INPUT_PULLUP);
  pinMode(LED_UP, OUTPUT);
  pinMode(LED_DOWN, OUTPUT);
  pinMode(LED_LEFT, OUTPUT);
  pinMode(LED_RIGHT, OUTPUT);
  pinMode(LED_BTN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int x = analogRead(joyX);
  int y = analogRead(joyY);
  int btn = digitalRead(btnPin);

  // 串口调试
  Serial.print(x); Serial.print('\t'); Serial.println(y);

  // 四向判定(阈值约 10/1020/500)
  digitalWrite(LED_LEFT,  (x <= 10 && y >= 500) ? HIGH : LOW);
  digitalWrite(LED_RIGHT, (x >= 1020 && y >= 500) ? HIGH : LOW);
  digitalWrite(LED_UP,    (x >= 500 && y >= 1020) ? HIGH : LOW);
  digitalWrite(LED_DOWN,  (x >= 1020 && y >= 1020) ? HIGH : LOW);
  // 对角同时触发时熄灭对应灯
  if (x >= 1020 && y >= 1020) {
    digitalWrite(LED_UP, LOW);
    digitalWrite(LED_RIGHT, LOW);
  }

  // 按键
  digitalWrite(LED_BTN, (btn == LOW) ? HIGH : LOW);

  delay(100);
}

玩法扩展

制造工艺

  1. 国际象棋:从古代起源到现代制造的专家概览
  2. 弹球机:经典街机游戏的历史、设计与制造
  3. 足球:从古老游戏到现代创新
  4. 美式橄榄球的演变与工艺:从古老游戏到现代NFL标准
  5. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  6. Arduino UNO + MAX7219 自制《UFO攻击》复古射击游戏机
  7. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  8. 3D RGB Arduclock — 蓝牙控制全彩LED时钟带RTC与闹钟
  9. MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
  10. DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
  11. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  12. DIY Arduino 加湿器控制器:继电器安全控制高压电路