news 2026/4/18 10:35:41

1位数码管模拟值实验萌新速成大法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1位数码管模拟值实验萌新速成大法

文章目录

  • 1.前言
  • 2.欣赏成果
  • 3.安装对应软件
    • 网址arduino.cc/en/software
  • 4.学习软件的使用
    • 安装结束,我们进入首页**选择我们对应的开发板Arduino UNO**
    • 选择之后就会将UNO开发板作为默认**(UNO开发板适合初学者简单易上手)**
    • 并将开发板连接到电脑**(注意:后面一定带有后缀,我前面买的盗版无法识别就没有后缀)**
  • 5.知识准备
    • i++
    • delay(1000)
    • digitalWrite(a,LOW);
    • pinMode(i,OUTPUT);
  • 6.准备道具
    • 共阳数码管
    • 共阴数码管
  • 7.代码
    • 接下验证 ,左上角的勾是验证符号
    • 查看是否验证成功,然后上传
    • 上传成功就可以欣赏到开头的结果了
  • 8.心得
  • 9.花絮
    • 在看到代码的时候,我就已经在想代码有什么可以修改的了,于是这些问题就诞生了
    • 我可否将代码与数组结合?
    • 知识补充
    • 1. 二维数组定义格式:

1.前言

这个实验教程献给所有大一想努力的新手

2.欣赏成果

共阳数码管模拟值实验成果

3.安装对应软件

首先先安装对应软件Arduino

网址arduino.cc/en/software

4.学习软件的使用

安装结束,我们进入首页选择我们对应的开发板Arduino UNO

选择之后就会将UNO开发板作为默认**(UNO开发板适合初学者简单易上手)**

并将开发板连接到电脑**(注意:后面一定带有后缀,我前面买的盗版无法识别就没有后缀)**

如果没有出现开发板(com)请检查链接器是否连接好或者开发板是否接触不良

5.知识准备

i++

需要先保存变量的原始值到临时空间,再对变量自增,最后返回临时值(多一步临时值操作)

delay(1000)

是将函数延迟1000毫秒

digitalWrite(a,LOW);

如果该引脚通过pinMode()设置为输出模式(OUTPUT),您可以通过digitalWrite()语句将该引脚设置为HIGH(5伏特)或LOW(0伏特/GND)。

pinMode(i,OUTPUT);

通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:
输出(OUTPUT)模式
输入(INPUT)模式
输入上拉(INPUT_PULLUP)模式

6.准备道具

一个面包板
八个220欧姆电阻
一个共阳极管

道具介绍

共阳数码管

是指将所有发光二极管的阳极接到一起形成公共阳极 (COM) 的数码管,共阳数码管在应用时应将公共极 COM 接到 + 5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管

是指将所有发光二极管的阴极接到一起形成公共阴极 COM) 的数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮
我们本次实验使用共阳极管

7.代码

inta=2;// 定义数字接口2 连接aintb=3;// 定义数字接口3 连接bintc=4;// 定义数字接口4 连接cintd=5;// 定义数字接口5 连接dinte=6;// 定义数字接口6 连接eintf=7;// 定义数字接口7 连接fintg=8;// 定义数字接口8 连接ginth=9;// 定义数字接口9 连接h,也就是数码管中的dpvoidsetup(){// put your setup code here, to run once:inti;for(i=2;i<=9;i++){pinMode(i,OUTPUT);// 设置2~9号引脚为输出模式}}voidloop(){// put your main code here, to run repeatedly:digital_0();// 显示数字0delay(1000);digital_1();// 显示数字1delay(1000);digital_2();// 显示数字2delay(1000);digital_3();// 显示数字3delay(1000);digital_4();// 显示数字4delay(1000);digital_5();// 显示数字5delay(1000);digital_6();// 显示数字6delay(1000);digital_7();// 显示数字7delay(1000);digital_8();// 显示数字8delay(1000);digital_9();// 显示数字9delay(1000);}// 显示数字0(电平反转:适配共阳极)voiddigital_0(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,HIGH);digitalWrite(h,LOW);}// 显示数字1(电平反转)voiddigital_1(void){digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,LOW);}// 显示数字2(电平反转)voiddigital_2(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,HIGH);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字3(电平反转)voiddigital_3(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字4(电平反转)voiddigital_4(void){digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字5(电平反转)voiddigital_5(void){digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字6(电平反转)voiddigital_6(void){digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字7(电平反转)voiddigital_7(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,LOW);}// 显示数字8(电平反转)voiddigital_8(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,LOW);}// 显示数字9(电平反转)voiddigital_9(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,LOW);}

接下验证 ,左上角的勾是验证符号

查看是否验证成功,然后上传

上传成功就可以欣赏到开头的结果了

8.心得

我认为这是个新的开始我也遇到了很多问题(见下面),但是当我成功做出来了后感到非常自豪,所以我认为在这个时代人类要不断走出自己的舒适圈,才能前进,如果觉得有帮助就请点一下赞,我火速更新下一章,我是FOX,励志做一个博学的萌新。

9.花絮

在看到代码的时候,我就已经在想代码有什么可以修改的了,于是这些问题就诞生了

我可否将代码与数组结合?

intnums[]{2,3,4,5,6,7,8,9};constintSEGMENT_COUNT=8;byte guan[10][8]={{HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,LOW,HIGH},// 0(8个元素){LOW,HIGH,HIGH,LOW,LOW,LOW,LOW,HIGH},// 1(8个元素){HIGH,HIGH,LOW,HIGH,HIGH,LOW,HIGH,HIGH},// 2(8个元素){HIGH,HIGH,HIGH,HIGH,LOW,LOW,HIGH,HIGH},// 3(8个元素){LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH,HIGH},// 4(8个元素){HIGH,LOW,HIGH,HIGH,LOW,HIGH,HIGH,HIGH},// 5(8个元素){HIGH,LOW,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH},// 6(8个元素){HIGH,HIGH,HIGH,LOW,LOW,LOW,LOW,HIGH},// 7(8个元素){HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH},// 8(8个元素){HIGH,HIGH,HIGH,HIGH,LOW,HIGH,HIGH,HIGH}// 9};voidsetup(){for(inti=0;i<SEGMENT_COUNT;i++){pinMode(nums[i],OUTPUT);}}voidloop(){for(ints=0;s<SEGMENT_COUNT;s++){displayNumber(s);delay(1000);}}voiddisplayNumber(intd){if(d<0||d>9){return;}for(d=0;d<9;d++){digitalWrite(nums[i],guan[d][i]);}}

知识补充

  1. 段引脚数组
    nums:把原来分散定义的 a-h 引脚整合到一
    个数组中,方便循环操作,减少重复代码。
  2. 段码表
    guan

    二维数组,第一维表示数字(0-9),第二维表示对应段
    的电平
    把原来 10 个函数里的电平值集中存储,一目了然,修改
    时只需改数组值
  3. 通用显示函数
    displayNumber()

    接收数字参数,先做范围检查(避免数组越界)
    通过循环遍历段引脚和段码,自动设置每个引脚的电平
  4. 简化的 loop 函数:用一个 for 循环遍历 0-9,调用通用显示
    函数,替代原来重复调用 10 个函数的写法

1. 二维数组定义格式:

数据类型 数组名[行数][列数],比如
nums[3][4]。
2. 访问元素格式:
int
数组名[行下标][列下标],下标从 0 开始计
数。
3. 遍历二维数组通常用嵌套 for 循环,外层控行、内层控列。

想法二:我一开始以为它是阴极管
结果就是一直不亮,最后我直接去问豆包,,然后发现我买的是阳极管,直接裂开,阴极管和阳极管一定要看好啊,阴极管就接GND引脚接口,如果是阳极管就接5V,一定要分清楚!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 17:42:05

18、游戏音效与音乐的添加与优化

游戏音效与音乐的添加与优化1. 背景音效的添加1.1 操作步骤为了让游戏的热带森林场景不再过于安静&#xff0c;我们要添加一些背景音效&#xff0c;具体操作如下&#xff1a;1. 访问在线音效生成网站 http://naturesoundsfor.me &#xff0c;创建新音效。例如&#xff0c;添加自…

作者头像 李华
网站建设 2026/4/18 8:07:13

Wan2.2-T2V-A14B在心理治疗可视化干预中的新兴用途

Wan2.2-T2V-A14B在心理治疗可视化干预中的新兴用途 在精神健康服务资源严重不足的今天&#xff0c;全球仍有数亿人无法获得及时、有效的心理干预。传统疗法如认知行为疗法&#xff08;CBT&#xff09;和暴露疗法虽然被广泛验证有效&#xff0c;但其实施高度依赖专业治疗师的一…

作者头像 李华
网站建设 2026/4/18 8:07:58

31、利用图论解决定价问题与学生能力评估方法

利用图论解决定价问题与学生能力评估方法 1. 经销商最大利润问题 在商品分销体系中,计算经销商的最大利润有助于提高企业在分布式区域定价政策管理的准确性。通过解决该问题,可以预估经销商利用企业分销系统转售商品的可能利润,并确定受产品流动过程影响的销售点之间的路线…

作者头像 李华
网站建设 2026/4/7 8:43:20

【收藏级】MySQL Binlog 全景解析指南

【收藏级】MySQL Binlog 全景解析指南 无论你是数据库开发者、运维工程师还是架构师,深入理解 MySQL Binlog(二进制日志) 都是掌握 MySQL 核心技术的必经之路。它不仅是 MySQL 复制和恢复的基石,还承载了实时数据生态的重要角色。 引言:什么是 Binlog? MySQL Binary Lo…

作者头像 李华
网站建设 2026/4/4 12:54:21

Wan2.2-T2V-A14B模型在云原生架构下的弹性伸缩部署

Wan2.2-T2V-A14B模型在云原生架构下的弹性伸缩部署 在影视预演、广告创意和数字内容生产领域&#xff0c;视频制作正面临一场由AI驱动的效率革命。传统流程中&#xff0c;一个30秒高质量动画短片可能需要数天时间与多人协作完成&#xff1b;而如今&#xff0c;仅需输入一句“一…

作者头像 李华
网站建设 2026/4/17 19:24:29

Wan2.2-T2V-A14B用于游戏过场动画快速原型设计的潜力

Wan2.2-T2V-A14B用于游戏过场动画快速原型设计的潜力 在游戏开发的世界里&#xff0c;一个震撼人心的开场动画往往决定了玩家是否愿意深入这个世界。然而&#xff0c;传统制作流程中&#xff0c;一段30秒的高质量过场动画可能需要数周时间&#xff1a;编剧写剧本、美术画分镜、…

作者头像 李华