Arduino在构建爱好项目和游戏方面非常受欢迎,并且我们以前曾使用Arduino来构建Snake游戏,Ping pong游戏,Space race游戏等。今天,我们正在使用Arduino- Buzz有线游戏或Steady Hand游戏来构建另一种受欢迎的游戏。。
对于此项目,我们将使用Arduino Uno,蜂鸣器和两条铝线。还连接了一个16x2 LCD来显示游戏状态。迷宫线的两端将连接到Arduino的数字引脚2和3,手柄线连接到Arduino的接地引脚。数字引脚定义为INPUT_PULLUP引脚。因此,当手柄线接触迷宫线时,它将数字引脚状态更改为低电平,并且蜂鸣器发出声音。
迷宫线的末端连接了一个二极管,因此当您越过该二极管并用圆形手柄线触摸迷宫线时,只有一个引脚(引脚3)将变为低电平。在这种情况下,液晶显示屏上会显示一个祝贺文字(完成)。
所需组件
- Arduino Uno
- 铝线
- 16x2 LCD
- I 2 C模块
- 面包板
- 蜂鸣器
- 二极管
电路原理图
上面给出了Arduino Buzz Wire Game的电路图。I2C模块的SCL和SDA引脚连接到Arduino的A5和A4引脚,而I2C模块的V CC和GND引脚连接到Arduino的5V和GND引脚。Buzzer的正极连接到Arduino的数字引脚4,负极连接到GND。剪断铝线并将其弯曲成锯齿形。在导线的一端焊接二极管。然后剪下另一根导线以制成手柄,并将一端弯曲成环。
16x2 LCD也可以与Arduino接口,而无需使用I2C模块。
将Arduino的D2和D3引脚连接到Zig-Zag线的两端,并将手柄线连接到Arduino的GND引脚。
代码说明
本文档末尾提供了此Arduino Buzz Wire Game的完整代码。
通过包括LCD模块的库文件来启动代码。LiquidCrystal_I2C.h库用于Arduino和LCD模块之间的I2C通信。
#包括
之后,定义蜂鸣器的Arduino引脚,导线的起点和导线的端点。
const int startPin = 2; const int endPin = 3; const int蜂鸣器= 4;
然后定义两个变量 start & end_。 这些变量将用于保存电线的读数。
int start,end_;
现在将蜂鸣器引脚定义为输出,并将导线引脚定义为 INPUT_PULLUP 。Arduino具有内部上拉电阻,电阻值约为20k欧姆。这些电阻可以使用 INPUT_PULLUP 在内部连接。定义INPUT_PULLUP的功能与在引脚和+ 5V之间连接〜20k欧姆电阻的功能相同。
pinMode(蜂鸣器,输出); pinMode(startPin,INPUT_PULLUP); pinMode(startPin,INPUT_PULLUP);
在 空循环内, 读取电线引脚的状态。
开始= digitalRead(startPin); end_ = digitalRead(endPin);
现在比较电线销的读数。如果两个引脚均处于低电平,则意味着您已触摸导线,从而蜂鸣器会发出声音;如果导线的起始引脚为高电平,而端点引脚为低电平,则表明您已到达端点。
if(start == LOW && end _ == LOW){digitalWrite(蜂鸣器,HIGH); 延迟(1000); digitalWrite(蜂鸣器,低); lcd.setCursor(0,0); lcd.print(“再试一次”); Serial.print(“再试一次”); } if if(start == HIGH && end _ == LOW){lcd.setCursor(0,0); lcd.print(“ Well Done”); Serial.print(“ Well Done”); }
测试Buzz Wire游戏
连接硬件并上传给定代码后,您就可以开始玩游戏了。因此,请用手握住一个圆圈,并尝试使带圆圈的线一直穿过焊接到锯齿形线的二极管,而不要让圆形线接触任何地方。如果您触摸电线,则蜂鸣器将发出声音,并且液晶显示屏将显示“ Try again ”。如果您在不触摸导线的情况下完成游戏,那么它将显示“ 完成得很好 ”。
这是您可以使用Arduino制作Buzz Wire游戏的方法。下面提供了有效的视频和完整的代码。