风筝
发表于: 2020-2-13 08:51:29 | 显示全部楼层

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-Game-Circuit-Diagram.png


上面给出了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引脚。

Buzz-Wire-Game-with-an-Arduino-Circuit-Connections.jpg


代码说明

本文末尾提供了此Arduino Buzz Wire游戏的完整代码。


首先在代码中包含LCD模块库的头文件。 LiquidCrystal_I2C.h库用于Arduino和LCD模块之间的I2C通信。

  1. #include <LiquidCrystal_I2C.h>
复制代码

之后,定义蜂鸣器、导线的起点和导线的端点使用的Arduino引脚编号。

  1. const int startPin = 2;
  2. const int endPin = 3;
  3. const int buzzer = 4;
复制代码

然后定义两个变量start和end_。这些变量将用于保存电线的读数。

  1. int start, end_;
复制代码

现在将蜂鸣器引脚定义为输出,并将导线引脚定义为INPUT_PULLUP。 Arduino具有内部上拉电阻,电阻值约为20k欧姆。这些电阻可以使用INPUT_PULLUP在内部连接。定义INPUT_PULLUP功能与在引脚和+ 5V之间连接20k欧姆电阻的功能相同。

  1. pinMode(buzzer, OUTPUT);
  2. pinMode(startPin, INPUT_PULLUP);
  3. pinMode(startPin, INPUT_PULLUP);
复制代码

在void loop()函数内,读取电线引脚的状态。

  1. start = digitalRead(startPin);
  2. end_ = digitalRead(endPin);
复制代码

现在比较电线引脚的读数。如果两个引脚均处于低电平,则意味着您已触摸导线,从而使蜂鸣器发出声音;如果导线的起始引脚为高电平,而端点引脚为低电平,则表明您已到达端点。

  1. if (start == LOW && end_== LOW ){
  2.     digitalWrite(buzzer, HIGH);
  3.     delay(1000);
  4.     digitalWrite(buzzer, LOW);
  5.     lcd.setCursor(0,0);
  6.     lcd.print("Try Again");
  7.     Serial.print("Try Again");      
  8.   }
  9.   else if (start == HIGH && end_== LOW){
  10.     lcd.setCursor(0,0);
  11.     lcd.print("Well Done");
  12.     Serial.print("Well Done"); }
复制代码

测试Buzz Wire游戏

连接硬件并上传给定代码后,即可开始玩游戏。请用手握住一个圆圈,并尝试使圆圈一直穿过焊接到锯齿形导线的二极管,而又不要让圆形导线碰到任何地方。如果触摸电线,则蜂鸣器将发出声音,并且液晶显示屏将显示“Try again”。如果您在不触摸导线的情况下完成游戏,那么它将显示“ Well done”。

Buzz-Wire-Game-with-an-Arduino-Working.jpg


以上内容就是使用Arduino制作Buzz Wire游戏的方法。


代码

本文使用的完整代码如下: main.rar (465 Bytes, 下载次数: 30)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-20 10:03 , Processed in 0.168050 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表