Arduino搭建盲猜数字小游戏

2023-10-28

1.本文整理自视频 太极创客 零基础入门学用Arduino 第一部分 合辑.
需要的硬件:一个Arduino Uno开发板、一个200-500欧姆电阻、一个共阴极数码管、一个按键、数条杜邦线、跳线
在这里插入图片描述
2.显示数字其实就是显示各个数码管,注意需要在点亮led后进行要给清理显示内容的操作,下面介绍了显示1.2.3的四路。先在setup()里面设置IO为输出模式,然后在loop()里面设置显示。
在这里插入图片描述

void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}


void loop()
{
//显示数字1
	digitalWrite(4,HIGH)
	digitalWrite(7,HIGH)
	delay(500)
//清理显示内容
	digitalWrite(3,LOW)
	digitalWrite(4,LOW)
	digitalWrite(5,LOW)
	digitalWrite(6,LOW)
	digitalWrite(7,LOW)
	digitalWrite(8,LOW)
	digitalWrite(9,LOW)
	delay(500)
//显示数字2
	digitalWrite(3,HIGH)
	digitalWrite(4,HIGH)
	digitalWrite(5,HIGH)
	digitalWrite(8,HIGH)
	digitalWrite(9,HIGH)
	delay(500)
//清理显示内容
	digitalWrite(3,LOW)
	digitalWrite(4,LOW)
	digitalWrite(5,LOW)
	digitalWrite(6,LOW)
	digitalWrite(7,LOW)
	digitalWrite(8,LOW)
	digitalWrite(9,LOW)
	delay(500)
//显示数字3
//…………
//清理显示内容
	digitalWrite(3,LOW)
	digitalWrite(4,LOW)
	digitalWrite(5,LOW)
	digitalWrite(6,LOW)
	digitalWrite(7,LOW)
	digitalWrite(8,LOW)
	digitalWrite(9,LOW)
	delay(500)
}
//用while语句来替换掉一些重复的代码
void setup()
{
  int pinNumber=3;
  while(pinNumber<=9)
    {
      pinMode(pinNumber,OUTPUT);
      pinNumber=pinNumber+1;
    }
}
//替换掉如下代码
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}

3.if和if……else和switch case的区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.自定义函数。清除显示函数

void setup()
{
  int pinNumber=3;
  while(pinNumber<=9)
    {
      pinMode(pinNumber,OUTPUT);
      pinNumber=pinNumber+1;
    }  
    randomSeed(analogRead(A0));//产生真的随机数 
}

void loop()
{
  int myNumber;
  if(!digitalRead(2))//如果2脚为低电平,即按下
{
  myNumber=getRandomNumber(0,10);//产生随机数字0-9
}  
  displayNumber(myNumber);//显示数字
  delay(500);
  displayClear();//清除显示
  delay(500);
}
//下面都是自定义的三个函数
int getRandomNumber(int minNumber,int maxNumber)//定义一个返回值是整型的函数
{
  int randomNumber;//定义整型变量randomNumber
  randomNumber=random(minNumber,maxNumber);//运用Arduino自带的函数random取随机值
  Serial.print("randomNumber = ");//串口打印字符串"randomNumber ="
  Serial.println(randomNumber);//串口打印randomNumber的值,并换行
  Serial.println("");//串口打印空白,并换行
  return randomNumber;//将变量randomNumber的值返回函数
}

void displayClear()//定义清除显示的函数
{
  //清理显示内容
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
}

void displayNumber(int ledNumber)//定义通过判断显示0-9
{
switch (ledNumber)
  {
  case 1://显示数字1
    digitalWrite(4,HIGH);
    digitalWrite(7,HIGH);
    break;
  case 2://显示数字2
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(8,HIGH);
    break;    
  case 3://显示数字3
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    break; 
    ///
    case 4://显示数字4
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    break; 
    case 5://显示数字5
    digitalWrite(3,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    break;
    case 6://显示数字6
    digitalWrite(3,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    break;
    case 7://显示数字7
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(7,HIGH);
    break;
    case 8://显示数字8
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    break;
    case 9://显示数字9
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    break;
    case 0://显示数字0
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    break;
  default:
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH); 
  }   
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino搭建盲猜数字小游戏 的相关文章

  • Mac OS 10.9 不显示 Arduino 的 USB 调制解调器

    我正在尝试选择 dev tty usbmodem on my Arduino Lenardo设备 操作系统是Mac OSX 10 9 问题是它没有显示 我什至尝试安装FTDI http www ftdichip com Drivers VC
  • 如何在 Arduino 上比较 __FlashStringHelper* 和 char*?

    我有一个将文本行输出到串行的板 我需要将这些文本行与我所知道的文本进行比较 本质上 我想做strcmp thestring F knownstring 但是似乎没有一个采用 FlashStringHelper 类型的 strcmp 版本 有
  • Arduino:使用串口和软件串口与蓝牙模块

    我的目的是使用 Arduino 通过 HC 05 蓝牙模块在 PC 和 Android 设备之间建立通信 我使用 PC 和 Arduino 串行监视器 之间的 USB 通信以及 SoftwareSerial 来连接到 HC 05 我的问题是
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 如何通过蓝牙在Raspberry Pi 4和Arduino Nano BLE之间进行读写?

    我能够通过 Rpi4 的 bluepy 和 Arduino Nano BLE 的 ArduinoBLE h 连接 Raspberry Pi 4 和 Arduino Nano BLE 不幸的是 当我尝试从 Rpi4 写入 Arduino Na
  • 同时使用 GPRS 和 GSM

    我正在尝试使用 GSM GPRS 调制解调器的 GPRS 功能将数据发送到远程服务器 但我无法这样做 我在 Arduino 论坛上发布了一个问题 但没有得到任何回复 这是问题的链接 https robotics stackexchange
  • Arduino从SD卡读取最后一行

    我对 Arduino 业务还很陌生 如何从 SD 卡读取最后一行 通过以下代码片段 我可以读取第一行 n 之前的所有字符 现在我想添加一个 向后 声明 或其他内容 到目前为止我的代码 include
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • C++:将成员函数作为普通函数指针传递的闭包

    我正在尝试调用外部库的成员函数 该函数接受函数指针作为参数 Timer every unsigned long period void callback void 但不幸的是我想传递的参数是一个成员函数 void MyClass the m
  • 使用串口通过 Arduino 将多个值发送到 Raspberry

    我有一个关于 Arduino 和 Raspberry Pi 之间串行通信的问题 事实上 我想使用 Arduino 将 2 个变量发送到 Raspberry Pi 并以不同的方式使用它们 这是我的 Arduino 草图 int one 1 i
  • 在声明对象之前在全局函数中使用类的成员函数

    我有一个事件处理函数 在该函数中调用了类的成员函数 事件处理函数在类 cpp 文件中声明 但不是类的一部分 它不是成员函数 当我编译代码时 编译器表示该函数在范围内 因为它正在调用全局事件处理函数中的成员函数 我的问题如下 有没有办法在全局
  • 如何提高 PySerial 读取速度

    我目前正在构建一台使用 Arduino Mega2560 作为主控制器的机器 Arduino 通过串口连接 获取命令 执行它并每 1ms 吐出一堆测量数据 我有一个运行 Python 的 Raspberry Pi 为用户提供一个漂亮的 GU
  • 使用 Arduino 来操作 Android [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人尝试过让 Android 和 Arduino 相互通信吗 我在网上找到了几个项目 Amarino http www amarino tool
  • Arduino 高低

    我有一个 Arduino 我想知道到底是什么HIGH and LOW意思是 就实际值而言 它们是否有符号ints unsigned ints unsigned char是 他们的价值观是什么 我猜HIGH and LOW可能是unsigne
  • 仅从日期计算夏令时

    我正在使用 Arduino 和实时时钟芯片 该芯片补偿了闰年等 因此它始终具有正确的日期 但我认为由于区域复杂性 它不处理夏令时 时钟可以给出日 月 年 从 1 开始 以及星期几 星期日 0 到星期六 6 因为我需要与用户输入的日期和时间进
  • Arduino 错误:未命名类型?

    我已经编写了一个库 但遇到错误未命名类型的问题 我已经尝试了一切 搜索了几个小时 但没有运气 库放置在arduino sketch文件夹的 libraries 文件夹中 请帮忙 我使用的是 OSX 但 Windows 上也出现同样的问题 这
  • 带 firebase 的 Nodemcu(ESP8266)

    这是我上传到 ESP8266 以连接到 firebase 的代码 include
  • 如何将 Android 应用程序正确连接到支持蓝牙的 Arduino 微控制器上的 RFCOMM 套接字?

    我正在与我大学的一些学生合作开发一个简单的蓝牙 Android 应用程序 该应用程序将用于与连接有蓝牙模块的 Arduino 微控制器进行串行通信 RFCOMM 据我所知 我正在使用正确的蓝牙地址和 UUIDRFCOMM SPP 00001
  • PHP 通过 TCP/IP 发送消息

    我尝试通过 TCP IP 从 PHP 网站向 Arduino 发送消息 使用以下代码我可以从 php 网站发送消息 问题是 当第一次调用该网站时 消息不会立即发送 网站刷新几次后 消息就会到达 但逻辑上很多次 就像网站刷新量一样 已经尝试将
  • 无法访问超过 255 个的 Modbus 寄存器 SimpleModbus

    我是法国学生 我已经使用 SimpleModbus 1 周了 它工作得很好 直到我尝试实现一个具有大量寄存器 1000needed 使用从站 1 无法访问超过 255 个的寄存器 无论我做什么 一旦寄存器读数超过 255 我就会收到超时错误

随机推荐

  • 如何在 Django 中设置环境变量

    Django 是基于 Python 构建的强大 Web 框架 提供开箱即用的强大功能 它最重要但有时被忽视的功能之一是它能够使用环境变量处理配置 环境变量提供了一种在代码库之外设置配置的方法 从而提供更好的安全性和灵活性 本文旨在简化 Dj
  • Linux 中的 dig 命令及有用示例

    dig 代表 Domain Information Groper 是一个用于收集域名服务器信息的命令行网络工具 dig 命令是另一个强大的工具 类似于nslookup用于诊断 dns 相关问题 我们可以使用 dig 命令查询各种 dns 服
  • 在 Apache 中启用 .htaccess 的综合指南:配置、最佳实践和用例

    htaccess 文件是一个功能强大的配置工具 允许您控制和自定义 Apache Web 服务器上网站行为的各个方面 本指南将介绍如何在 Apache 中启用 htaccess 讨论最佳实践并提供常见用例示例 以帮助您充分利用此功能 1 了
  • 如何在 cPanel/WHM 中全局启用 Gzip 压缩

    Apache mod deflate模块负责 DEFLATE 输出过滤器 允许服务器的输出在通过网络发送到客户端之前进行压缩 mod deflate是替代mod gzip它与旧版本的 Apache 一起使用 仅具有 cPanel 访问权限的
  • JavaScript 中 var、let 和 const 有什么区别?

    变量声明只是告诉计算机变量存在以及它应该以什么值开始 与其他编程语言类似 JavaScript 也允许声明变量 JavaScript 中可以使用三个关键字来声明变量 let var 和 const 每个关键字对于如何使用它们创建的变量都有不
  • 升级 Fedora:分步教程

    如果您是 Fedora 的新用户 您可能不知道它有不同的版本 Fedora 的最新版本称为 主 版本 也称为 当前 版本 这意味着开发人员发布了以前的版本 用户可以从较低版本升级到该版本 在本文中 我们将了解如何升级 Fedora 版本 继
  • 如何在 Windows 上创建可启动 CentOS U 盘

    本教程将引导您完成在 Windows 上创建可启动 CentOS USB 记忆棒的过程 您可以使用此 USB 记忆棒在任何支持从 USB 启动的计算机上启动并测试或安装 CentOS 先决条件 8GB 或更大的 USB 记忆棒驱动器 Mic
  • 如何在 Ubuntu 20.04 上安装 Go

    Go 通常被称为golang是由 Google 创建的现代开源编程语言 可让您构建可靠且高效的应用程序 Go 是一种编译语言 这意味着您需要编译源代码以创建用于运行软件的可执行文件 许多流行的应用程序 例如 Kubernetes Docke
  • 如何在 Ubuntu 20.04 上安装 Atom 文本编辑器

    Atom是由 GitHub 开发的开源 跨平台代码编辑器 它有一个内置的包管理器 嵌入Git控制 智能自动完成 语法突出显示和多个窗格 从本质上讲 Atom 是一个基于 Electron 构建的桌面应用程序 使用 HTML JavaScri
  • 创建 Linux 交换文件

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 大多数情况下 在虚拟机上运行 Linux 时 不存在交换分区
  • 如何在 Vim / Vi 中删除行

    Vim 或其前身 Vi 预装在大多数 Linux 发行版和 macOS 上 如果您是系统管理员或普通 Linux 用户 了解 Vim 的基础知识非常重要 很多时候 在处理文本文件时 您需要删除一行或多行 本文介绍如何在 Vim Vi 中删除
  • 如何使用 Linux 命令行文本编辑器 Nano

    使用命令行时 您经常需要创建或编辑文本文件 Vim 和 Emacs 是两个最强大和流行的命令行编辑器 它们都有一个陡峭的学习曲线 可能会让新用户感到害怕 对于那些需要简单编辑器的人来说 有 nano GNU nano 是一款适用于 Unix
  • Bash 等待命令

    wait是等待给定作业完成并返回的命令退出状态等待的命令 自从wait命令影响当前 shell 执行环境 它在大多数 shell 中作为内置命令实现 在本文中 我们将探讨 Bash 内置功能wait命令 Bash wait命令 的一般语法w
  • 如何在 Ubuntu 18.04 上安装 Nginx

    Nginx 发音为 engine x 是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理互联网上一些最大网站的负载 Nginx 可以用作独立的 Web 服务器 也可以用作反向代理 for Apache和其他网络服务器 与 Ap
  • 如何在 Linux 中列出 Cron 作业

    Cron 是一个调度守护程序 允许您安排按指定时间间隔执行任务 这些任务称为 cron 作业 可以安排按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于执行系统维护操作 例如 可以设置 cron 作业
  • 如何在 Ubuntu 18.04 上安装 Eclipse IDE

    Eclipse是使用最广泛的Java集成开发环境 IDE 它可以通过插件进行扩展 也可以用于其他编程语言的开发 例如 C JavaScript 和PHP Ubuntu 存储库中提供的 Eclipse 安装包 版本 3 8 1 已过时 最简单
  • 设置 Nginx 反向代理

    反向代理是一种接受客户端请求 将请求发送到一个或多个代理服务器 获取响应并将服务器的响应传递给客户端的服务 由于其性能和可扩展性 NGINX 通常用作 HTTP 和非 HTTP 服务器的反向代理 典型的反向代理配置是将Nginx放在前面No
  • chmod 777 是什么意思

    您正在尝试修复您的Web服务器的权限问题 并在互联网上找到了信息 说您需要递归chmod 777网络目录 在此之前 请确保您了解什么是chmod R 777这样做 以及为什么永远不应该将权限设置为 777 本文解释了基本的 Linux 权限
  • 为什么更推荐使用组合而非继承关系?

    前言 最近在看公司项目的代码 看到了大量的继承体系 而且还是继承了多层 维护 阅读都十分的困难 在查阅了一些资料以后 包括 Effective Java 一书中的第16条提到 组合优先于继承 那继承到底会暴露什么问题呢 为什么更推荐优先使用
  • Arduino搭建盲猜数字小游戏

    1 本文整理自视频 太极创客 零基础入门学用Arduino 第一部分 合辑 需要的硬件 一个Arduino Uno开发板 一个200 500欧姆电阻 一个共阴极数码管 一个按键 数条杜邦线 跳线 2 显示数字其实就是显示各个数码管 注意需要