|
Arduino在制作小产品项目和游戏方面非常受欢迎,我们可以使用Arduino来制作贪吃蛇游戏、Ping pong游戏、太空对战游戏等。今天,我们使用Arduino开发板来制作另一种受欢迎的游戏:Buzz Wire游戏。
在本篇文章,我们将使用Arduino Uno开发板、蜂鸣器和两条铝线。还连接了一个1602 LCD来显示游戏状态。迷宫线的两端将连接到Arduino的数字引脚2和3,手柄线连接到Arduino的接地引脚。数字引脚定义为INPUT_PULLUP引脚。因此,当手柄线接触迷宫线时,它将数字引脚状态更改为低电平,并且蜂鸣器发出声音。
迷宫线的末端连接了一个二极管,因此当您越过该二极管并用圆形手柄线触摸迷宫线时,只有一个引脚(引脚3)将变为低电平。这时,液晶显示屏上会显示一个祝贺文字。
所需的组件 ● Arduino Uno开发板 ● 铝线 ● 16x2 LCD显示模块 ● I2C模块 ● 面包板 ● 蜂鸣器 ● 二极管
电路原理图
上面给出了Arduino Buzz Wire游戏的电路图。 I2C模块的SCL和SDA引脚连接到Arduino的A5和A4引脚,而I2C模块的VCC和GND引脚连接到Arduino的5V和GND引脚。 Buzzer的正极连接到Arduino的数字引脚4,负极连接到GND。剪断铝线并将其弯曲成锯齿形。在导线的一端焊接二极管。然后剪下另一根线以制成手柄,并将一端弯曲成环。
将Arduino的D2和D3引脚连接到Zig-Zag线的两端,并将手柄线连接到Arduino的GND引脚。
代码说明 本文末尾提供了此Arduino Buzz Wire游戏的完整代码。
首先在代码中包含LCD模块库的头文件。 LiquidCrystal_I2C.h库用于Arduino和LCD模块之间的I2C通信。 - #include <LiquidCrystal_I2C.h>
复制代码之后,定义蜂鸣器、导线的起点和导线的端点使用的Arduino引脚编号。 - const int startPin = 2;
- const int endPin = 3;
- const int buzzer = 4;
复制代码然后定义两个变量start和end_。这些变量将用于保存电线的读数。
现在将蜂鸣器引脚定义为输出,并将导线引脚定义为INPUT_PULLUP。 Arduino具有内部上拉电阻,电阻值约为20k欧姆。这些电阻可以使用INPUT_PULLUP在内部连接。定义INPUT_PULLUP功能与在引脚和+ 5V之间连接20k欧姆电阻的功能相同。 - pinMode(buzzer, OUTPUT);
- pinMode(startPin, INPUT_PULLUP);
- pinMode(startPin, INPUT_PULLUP);
复制代码
在void loop()函数内,读取电线引脚的状态。 - start = digitalRead(startPin);
- end_ = digitalRead(endPin);
复制代码现在比较电线引脚的读数。如果两个引脚均处于低电平,则意味着您已触摸导线,从而使蜂鸣器发出声音;如果导线的起始引脚为高电平,而端点引脚为低电平,则表明您已到达端点。 - if (start == LOW && end_== LOW ){
- digitalWrite(buzzer, HIGH);
- delay(1000);
- digitalWrite(buzzer, LOW);
- lcd.setCursor(0,0);
- lcd.print("Try Again");
- Serial.print("Try Again");
- }
- else if (start == HIGH && end_== LOW){
- lcd.setCursor(0,0);
- lcd.print("Well Done");
- Serial.print("Well Done"); }
复制代码
测试Buzz Wire游戏 连接硬件并上传给定代码后,即可开始玩游戏。请用手握住一个圆圈,并尝试使圆圈一直穿过焊接到锯齿形导线的二极管,而又不要让圆形导线碰到任何地方。如果触摸电线,则蜂鸣器将发出声音,并且液晶显示屏将显示“Try again”。如果您在不触摸导线的情况下完成游戏,那么它将显示“ Well done”。
以上内容就是使用Arduino制作Buzz Wire游戏的方法。
代码 本文使用的完整代码如下:
main.rar
(465 Bytes, 下载次数: 38)
|