🔧 所需组件
- Arduino板 (例如 Arduino Uno 或 Arduino R4)
- I2C LCD 1602显示器
- 跳线
- 面包板(可选)
📌 接线连接

- I2C LCD 1602显示器:
- VCC: → Arduino 5V
- GND: → Arduino GND
- SDA: → Arduino A4 (在 Uno 上)或相应的 SDA pin
- SCL: → Arduino A5 (在 Uno 上)或相应的 SCL pin
注意: 这些显示器的典型 I2C 地址是 0x27. 如果需要,请使用 I2C 扫描仪进行验证。
💻 代码示例
此草图使用 LiquidCrystal_I2C 库。它将生成一个介于 1 到 100 之间的随机数,然后提示您(通过串行监视器)输入猜测值。根据您的输入,LCD 会显示“太高!”或“太低!”之类的提示,直到您猜对为止。
#include <LiquidCrystal_I2C.h>
// ----- LCD Settings -----
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 columns, 2 rows
// Global game variables
int secretNumber;
bool gameOver = false;
void setup() {
// Initialize Serial Monitor
Serial.begin(9600);
while (!Serial) { ; } // Wait for Serial to initialize (if needed)
// Initialize LCD
lcd.init();
lcd.backlight();
// Welcome message on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Guess The Number");
lcd.setCursor(0, 1);
lcd.print("1-100");
// Seed random generator using an unconnected analog pin
randomSeed(analogRead(0));
// Generate secret number between 1 and 100
secretNumber = random(1, 101);
// Prompt in Serial Monitor
Serial.println("Welcome to 'Guess The Number'!");
Serial.println("I'm thinking of a number between 1 and 100.");
Serial.println("Enter your guess:");
}
void loop() {
if (Serial.available() > 0 && !gameOver) {
int guess = Serial.parseInt();
if (guess == 0) return; // Skip if no valid number entered
// Clear LCD for new message
lcd.clear();
if (guess < secretNumber) {
lcd.setCursor(0, 0);
lcd.print("Too Low!");
Serial.println("Too Low! Try again:");
}
else if (guess > secretNumber) {
lcd.setCursor(0, 0);
lcd.print("Too High!");
Serial.println("Too High! Try again:");
}
else {
lcd.setCursor(0, 0);
lcd.print("Correct!");
lcd.setCursor(0, 1);
lcd.print("You Win!");
Serial.println("Correct! You win!");
gameOver = true;
}
// Wait a moment before next input
delay(1500);
// If game not over, re-prompt on LCD
if (!gameOver) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Guess 1-100");
Serial.println("Enter your next guess:");
}
}
}
📋 工作原理
- 游戏初始化:
- LCD 屏幕显示欢迎信息(“猜数字”)并指示范围(1-100)。
- 使用以下方式生成随机秘密数字:
random(1, 101).
- 通过串行监视器的用户输入:
- 玩家在串行监视器中输入猜测内容。
- 代码使用以下方式读取这些猜测
Serial.parseInt().
- 反馈机制:
- 如果猜测太低或太高,LCD 和串行监视器会提供反馈(例如,“太低!”或“太高!”)。
- 一旦猜出正确的数字,就会显示祝贺信息,并且游戏结束。
- 显示更新:
- 每次猜测之后,LCD 都会更新,确保即使在 16×2 的小屏幕上信息也清晰可见。
🎯 增强功能和想法
- 复位按钮:
- 添加一个按钮即可重置游戏,而无需重新启动 Arduino。
- 分数记ping:
- 跟踪猜测的次数并显示分数。
- 多层次:
- 引入关卡,其中数字范围随着玩家获胜而增加。
- 自定义角色:
- 在 LCD 上使用自定义字符作为有趣的图标(例如获胜时的笑脸)。
使用 I2C LCD 1602 在 Arduino 上构建复古的基于文本的游戏,尽情享受吧!如果您有任何问题或需要进一步调整,请随时提出。祝您游戏愉快!😊🎮✨