arduino程序-MC猜数字1(基础知识)

news2025/1/16 20:02:45

arduino程序-MC猜数字1(基础知识)

  • 1-18 MC猜数字0-介绍
  • 1-19 MC猜数字1-电路搭建
    • 电路图
    • 所需元件
      • 10根杜邦线(公对公)
      • 10根左右面包板跳线
      • 数码管
      • 按键
      • 电阻1个(200~500欧姆)
      • 面包板
      • Arduino UNO R3*1
    • 搭建电路
    • 相关程序

1-18 MC猜数字0-介绍

在这里插入图片描述

按键开关和显示数字,每次按下开关会产生随机的数字

数字产生于arduino开发板

可以使用意念控制数字?(数字是随机的,如何做?,猜的准确)

1-19 MC猜数字1-电路搭建

制作一个可以进行猜数字游戏的制作

不仅搭建电路,还有更多知识

在这里插入图片描述

将arduino拿出来,实际动手搭建

此处只是构建电路,理论知识暂时放下

电路图

在这里插入图片描述

所需元件

10根杜邦线(公对公)

在这里插入图片描述

10根左右面包板跳线

一般论盒卖,连接面包板小孔
在这里插入图片描述

数码管

在这里插入图片描述

按键

在这里插入图片描述

电阻1个(200~500欧姆)

在这里插入图片描述

面包板

在这里插入图片描述

Arduino UNO R3*1

官方版,质量好,价格高,更容易配置,兼容性好与arduinoIDE

非官方的克隆版,价格低,可能需要单独安装驱动程序
在这里插入图片描述

搭建电路

请看视频
在这里插入图片描述
在这里插入图片描述

数码管上下各5个引脚

电阻一端插在上面5个引脚中间的那个引脚,另一端插在靠近蓝色的一排
在这里插入图片描述
在这里插入图片描述

找四个红色面包板跳线
电阻左右相邻的孔插入跳线一端,另一端引出
在这里插入图片描述

下方两个跳线插入到中间的孔的相邻两个孔,如图所示,中间下方的引脚留空
在这里插入图片描述

在拿出4根长的黄色跳线
插入如下
在这里插入图片描述
在这里插入图片描述

黄色线一端3号引脚,一端短红色线一端,如图
在这里插入图片描述

黄色线一端4号引脚,一端长橘黄色线一端,如图
在这里插入图片描述

绿色5号引脚
在这里插入图片描述

紫色6号引脚

在这里插入图片描述

黄色7号引脚,

在这里插入图片描述

橘黄色长线,8号引脚,
在这里插入图片描述

白色9号引脚

在这里插入图片描述

按键开关,相连不同侧,同侧不相连
在这里插入图片描述
在这里插入图片描述

一端2号引脚,一端按键开关
在这里插入图片描述

黑色导线,一端在接地引脚,另一端蓝色导轨一排

在这里插入图片描述

电路搭建好后,可通过太极创客网站测试程序测试
显示从0到9,
在这里插入图片描述

当按下按键开关显示是一个b字
在这里插入图片描述

此时电路搭建成功

相关程序

在这里插入图片描述

程序若是上方直接运行,显示效果并不好,程序与结果不一致

原因显示完1,7号引脚打开,再显示2的时候,没有对前面的如7号引脚进行关闭,这就导致在显示下一个数字的时候会被上方的影响到

如何做加入清理显示内容的函数,将3~9的引脚全部给低电平熄灭

每次显示完一个数字都进行内容清理
在这里插入图片描述

修改后效果如下:
在这里插入图片描述

完整代码如下:
http://www.taichi-maker.com/homepage/arduino-basic-tutorial-index/arduino-basic-tutorial-20/

/*
20 MC猜数字 - 2 LED数码管 
太极创客
www.taichi-maker.com

此程序用于太极创客<<零基础入门学用Arduino教程>>
20 MC猜数字 - 2 LED数码管 
课程的演示实验使用。

2017-04-21
*/

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

}

// the loop function runs over and over again forever
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, HIGH);
    digitalWrite(4, HIGH); 
    digitalWrite(5, HIGH); 
    digitalWrite(7, HIGH); 
    digitalWrite(8, 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);
}

思考:
显示到1,2,3,4,5,6,7,8,9,0数字

/*
19 MC猜数字 - 1 电路搭建
太极创客
www.taichi-maker.com

此程序用于太极创客<<零基础入门学用Arduino教程>>中
MC猜数字电路测试使用。

2017-04-21
*/
void setup() {
pinMode(2, INPUT_PULLUP);
for (int i = 2; i <= 9; i++) {
pinMode(i, OUTPUT);
}

}

// the loop function runs over and over again forever
void loop() {
int myNumber = 0;
while(myNumber <= 9){
displayNumber(myNumber);
delay(500);
displayClear();
myNumber++;
while(!digitalRead(2)){
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
delay(500);
}
}
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 number){
switch(number){
case 1:
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
break;
case 2:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 3:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 4:
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
break;
case 5:
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 6:
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 7:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
break;
case 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:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 0:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
default:
digitalWrite(5, HIGH);
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验2-4-4 求简单交错序列前N项和

//实验2-4-4 求简单交错序列前N项和//计算序列 1 - 1/4 1/7 - 1/10 ... 的前N项之和。 #include<stdio.h> #include<math.h> int main(){int n;scanf("%d",&n);//输入在一行中给出一个正整数N。double sum0;for(int i1;i<n*3;i3){//i3>题目…

maven项目容器化运行之4-子模块利用Jenkins和maven使用docker插件调用远程docker构建服务

一.背景 之前期望把开发和部署分开&#xff0c;在上篇文章maven项目容器化运行之3-优雅的利用Jenkins和maven使用docker插件调用远程docker构建服务并在1Panel中运行-CSDN博客已经实现了。主要思路是开发配置了pom文件&#xff0c;但是不管docker镜像打包。提交代码库后&#x…

马丁短链03用户信息脱敏

为什么后端脱敏&#xff1a; 因为如果给前端做&#xff0c;请求返回数据之后未脱敏&#xff0c;只在网页显示上脱敏&#xff0c;攻击者可以做一些简单请求直接看到返回信息&#xff0c;只能防一些小白。所以要在服务器这里做。 复杂的方法&#xff1a; 在controller层设置自定…

AI学习(1)软件的选择,cuda和pytorch的安装

文章目录 1.使用VScode开发&#xff0c;结合anaconda配置python环境2.安装pytorch库3.深度学习相关的库1.numpy&#xff08;科学计算库&#xff09;2.pandas(数据分析处理库)3.matplotlib&#xff08;可视化库&#xff09;4.seaborn&#xff08;可视化库&#xff09; 1.使用VSc…

VBA数据库解决方案第十三讲:如何获取数据库中表的相关信息

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

python lambda 表达式用法

1. lambda 表达式基础知识 python 含有 lambda 关键字&#xff0c;可使用 lambda 表达式创建匿名函数。 &#xff08;注&#xff1a;匿名函数可理解为没有函数名、函数体只包含一行代码的函数&#xff09; lambda 表达式的一般形式为&#xff1a;lambda arg_1, arg_2, …: ex…

2024年8月1日(前端服务器的配置以及tomcat环境的配置)

[rootstatic ~]# cd eleme_web/ [rootstatic eleme_web]# cd src/ [rootstatic src]# ls views/ AboutView.vue HomeView.vue [rootstatic src]# vim views/HomeView.vue [rootstatic src]# nohup npm run serve nohup: 忽略输入并把输出追加到"nohup.out" 构建项目…

定义和使用自己的子程序——函数的介绍

定义和使用自己的子程序——函数的介绍 1.函数基础语法1.1.基础语法1.2.例题1——距离函数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 2.void类型3.变量作用域和参数传递3.1.局部变量和全局变量3.2.形式参数和实际参数3.3.例题2——歌唱比赛题目描述输入格式输出…

ADSL常见故障及维护

ADSL常见故障及维护 ADSL的最简单故障判断方法&#xff1f; 解答&#xff1a;可根据ADSL Modem面板上的信号灯的显示情况进行问题的初步判断&#xff0c;如下&#xff1a; “ADSL”等&#xff1a;用于显示Modem的同步情况&#xff0c;常亮绿灯表示Modem与局端能够正常同步&…

JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存

文章目录 一、JVM基本介绍——概念、组成、重点1.1 JVM是什么1.2 JVM由哪些部分组成&#xff0c;运行流程是什么&#xff1f;1.3 JDK、JRE、JVM 关系1.4 学习什么 二、JVM组成2.1 什么是程序计数器2.2 你能详细地介绍堆吗2.3 什么是虚拟机栈2.4 垃圾回收是否涉及栈内存2.5 栈内…

2024.8.1(前端服务器的配置以及tomcat环境的配置)

回顾 [roottomcat ~]# cd eleme_web/public/img/ [roottomcat img]# ls 1.jpg [roottomcat public]# cd [roottomcat ~]# cd eleme_web/ [roottomcat eleme_web]# cd src [roottomcat src]# vim views/HomeView.vue [roottomcat src]# nohup npm run serve ctrlc后网页不出…

guitar pro为什么没声音 guitar pro8播放不了 Guitar Pro播放无声音或无光标解决办法

吉他是一种非常有魅力的乐器&#xff0c;用途也非常广泛&#xff0c;在吉他学习和训练过程中&#xff0c;我们会用到吉他打谱软件Guitar Pro。但有用户发现在使用Guitar Pro没有声音或无法播放的情况。下面我们看看Guitar Pro为什么没声音以及解决办法。 一、Guitar Pro为什么没…

8.1IO进程线程

笔记 进程 一.多进程引入 1.1引入目的 程序员写程序时&#xff0c;一个程序可能由多个任务组成&#xff0c;如果使用的是单进程&#xff0c;或单任务&#xff0c;那么该任务执行阻塞时&#xff0c;其他任务就无法执行&#xff0c;必须等到该任务解除阻塞后&#xff0c;才能…

【Linux】(26) 详解磁盘与文件系统:从物理结构到inode机制

目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block&#xff08;超级块&#xff09; 3.Group Descriptor Block&#xff08;块组描述符&#xff09; 4.Data Blocks (数据块) 5.Inode…

spring boot 实现 Stream 钉钉事件订阅

1: 参考链接 https://open.dingtalk.com/document/orgapp/develop-stream-mode-push-server 2&#xff1a;钉钉开放平台订阅配置 配置之后运行一下上面提供的链接 里面的main方法&#xff0c;验证通道 3&#xff1a;订阅启动方式 EventListenerThread eventListenerThrea…

玩转ComfyUI】基于函数计算一键部署AI生图平台 ComfyUI

登录阿里云 1.前往函数计算控制台。 在推荐您创建 AliyunFcDefaultRole默认角色对话框中&#xff0c;单击创建。 3.在角色快捷创建页面&#xff0c;单击同意授权。 4.在实验操作面板顶部&#xff0c;单击 图标打开新的标签页&#xff0c;然后在地址栏中输入如下地址并回车&…

会展信息服务预约小程序开展品牌管理

如舞台、漫展、商业展会等场景都需要会展服务&#xff0c;场地建设、方案提供、人员配备&#xff0c;尤其是高线城市&#xff0c;服务开展度比较高&#xff0c;客商双方为多次互需关系&#xff0c;服务方需要拓展品牌获得更多客源加以转化&#xff0c;而客户则需要找到靠谱且具…

LogonTracer图形化事件分析工具

LogonTracer这款工具是基于Python编写的&#xff0c;并使用Neo4j作为其数据库&#xff08;Neo4j多用于图形数据库&#xff09;&#xff0c;是一款用于分析Windows安全事件登录日志的可视化工具。它会将登录相关事件中的主机名&#xff08;或IP地址&#xff09;和帐户名称关联起…

vscode中运行不同语言的文件出现报错?

vscode是一个不错的语言编辑软件&#xff0c;可以利用插件运行不同的语言&#xff0c;从而大大减少了软件的下载数量。 今天在学习的时候出现了一个令人匪夷所思的报错问题&#xff1a;早些时候一直在运行Python语言的文件&#xff0c;后来想对比一下c语言与Python的不同。于是…

阿里云、华为云、腾讯云、亚马逊云与谷歌云全景推荐

探索未来&#xff0c;选择领先云服务 —— 阿里云、华为云、腾讯云、亚马逊云与谷歌云全景推荐 在这个数字化飞速发展的时代&#xff0c;云计算已成为企业和个人日常运营不可或缺的一部分。无论是小型初创公司还是全球性大企业&#xff0c;选择合适的云服务可以大幅提升业务效…