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

Arduino UNO 自制 LCD 跑酷小游戏:硬件接线与代码全解析

物料清单

组件数量
Arduino UNO1
1602 RGB 背光 LCD(I2C 或并口均可)1
面包板1
220 Ω 电阻1
12 mm 轻触开关1
公对公杜邦线若干
USB-A 转 B 型数据线1

硬件接线详解(并口 1602 为例)

电源与背光

数据与控制线(4-bit 模式)

LCD 引脚Arduino 引脚说明
DB4 (Pin11)D6数据位 4
DB5 (Pin12)D5数据位 5
DB6 (Pin13)D4数据位 6
DB7 (Pin14)D3数据位 7
E (Pin6)D9使能信号
RS (Pin4)D11寄存器选择
V0 (Pin3)D12对比度 PWM 调节(或接 GND 固定)

按键接线

轻触开关跨面包板中沟放置,一脚接 GND,另一脚接 Arduino D2(内部上拉)。

游戏原理

经典“跑酷”玩法:主角自动向右跑,按键跳跃躲避上下随机生成的障碍块。LCD 两行分别显示上下轨道,自定义字符绘制主角跑动/跳跃动画、地形块。得分随距离递增,碰撞即游戏结束。

核心代码逻辑

完整代码

#include <LiquidCrystal.h>
#define PIN_BUTTON 2
#define PIN_AUTOPLAY 1
#define PIN_READWRITE 10
#define PIN_CONTRAST 12
// ... 自定义字符常量定义 ...
LiquidCrystal lcd(11, 9, 6, 5, 4, 3);  // RS, E, DB4-DB7
// ... 变量声明 ...
void initializeGraphics() { /* 创建 7 个自定义字符 */ }
void advanceTerrain(char* terrain, byte newTerrain) { /* 半字符滚动 */ }
bool drawHero(byte pos, char* upper, char* lower, unsigned int score) { /* 绘制+碰撞检测 */ }
void buttonPush() { buttonPushed = true; }
void setup() { /* 引脚模式、中断、LCD 初始化 */ }
void loop() { /* 状态机:等待开始→滚动地形→按键跳跃→碰撞判定→计分 */ }

扩展建议

制造工艺

  1. 基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
  2. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  3. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  4. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  5. DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
  6. Arduino + 模拟摇杆互动游戏:五向 LED 反馈
  7. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  8. Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
  9. DIY Arduino Nano 示波器:10 Hz–50 kHz / 128×64 LCD
  10. 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
  11. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
  12. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南