【Arduino学习】05.驱动4个数码管

2023-11-19

数码管介绍:
如图,本次使用的数码管为共阴极,四个数码管有 12 个引脚, 可以分为位选脚和段选脚。
段选脚:8个引脚a,b,c,d,e,f,g
位选脚:4 个引脚 D1, D2, D3, D4

哪个数码管显示由片选脚决定,片选脚为高电平,则该数码管点亮,为低电平则该数码管熄灭。
数码管显示什么数值由段选脚决定,譬如要显示数字8,则a,b,c,d,e,f,g为高电平,h为低电平;要显示数字1,则b,c为高电平,a,d,e,f,g,h为低电平。
显示原理:四个数码管的显示原理是不断扫描 D1, D2, D3, D4,然后相应的八段管将依次点亮。 由于点亮速度很快,人眼不会看到(人眼能够识别的刷新频率是30HZ),所以它看起来像四个数码管同时显示。

软件代码:

#include "SegmentDisplay.h"

#define  LED_A   13       // define Arduino GPIO1 for led a
#define  LED_B   2       // define Arduino GPIO2 for led b
#define  LED_C   3       // define Arduino GPIO3 for led c
#define  LED_D   4       // define Arduino GPIO4 for led d
#define  LED_E   5       // define Arduino GPIO5 for led e
#define  LED_F   6       // define Arduino GPIO6 for led f
#define  LED_G   7       // define Arduino GPIO7 for led g
#define  LED_H   8       // define Arduino GPIO8 for led h

#define  LED_D1  9
#define  LED_D2  10
#define  LED_D3  11
#define  LED_D4  12

SegmentDisplay _4Bit_7SegmentDisplay(LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G, LED_H, LED_D1, LED_D2, LED_D3, LED_D4);
int ShowTime = 60, count = 0;

void setup()
{
    Serial.begin(9600);
    _4Bit_7SegmentDisplay.TurnOffAllLed();
}

void loop()
{
    if (count++ > 50 )
    {
        ShowTime-- ;
        count = 0 ;
        Serial.println(ShowTime);
    }
    _4Bit_7SegmentDisplay.DisplayChar((int)ShowTime);
    delay(5);
    if (ShowTime == 0) {
        _4Bit_7SegmentDisplay.TurnOffAllLed();
        while(1);
    }
}

原理图+实验连接图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Arduino学习】05.驱动4个数码管 的相关文章

  • 使用 Python 模块 SMBus、Raspberry Pi 和 Arduino 时出现输入/输出错误

    我已经连接了一个树莓派 http en wikipedia org wiki Raspberry Pi and 彩虹杜伊诺 http en wikipedia org wiki List of Arduino boards and comp
  • Arduino 错误:无法将参数 '1' 的 'String' 转换为 'char*' 到 'char* strtok(c​​har*, const char*)'

    我正在研究一个 arduino 分配 它分割传入的字符串并将字符串的术语放入 6 个不同的变量中 分割时的示例输入字符串有 6 个术语 我弹出以下错误 无法将参数 1 的 String 转换为 char 到 char strtok c ha
  • VSCode 上的 PlatformIO 未编译:collect2.exe:错误:ld 返回 1 退出状态

    我最近不得不擦拭我的计算机 在一切准备就绪并运行之后 是时候打开我之前正在处理的一些 ESP32 程序了 发现 VSCode 上的 Platform IO 将不再编译 运行编译器后 我收到以下错误 Compiling pio build e
  • Arduino F()宏的实现

    我试图了解 Arduino 中的 F 宏实际上对 PGMEM 和 RAM 做了什么以及运行时的影响是什么 有人可以指出定义这个宏的文件吗 这可能是旧版本 但定义它的一个地方是Wstring h as in here http andybro
  • 如何使用 PHP 读取串口 [重复]

    这个问题在这里已经有答案了 如何使用 php 从连接到我的服务器 运行 kali linux 的旧笔记本电脑 上的 COM 端口的 arduino 读取串行数据 以便我可以在网页上显示数据 我读过有关同一问题的其他问题 所有这些问题要么超级
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • 批处理文件:从串口接收数据并将其写入txt文件

    我正在尝试通过 USB 串行端口从 Arduino 提取一些数据并将其写入 txt 文件 因此 我使用批处理文件 Windows 7 普通cmd 它发送例如 d 从 Arduino 请求所需的数据 收到 d 后 Arduino 开始向 PC
  • Arduino:字符串到整数得到奇怪的值

    我想转换一个String to an int 我所能找到的就是你必须将 String 转换为 char 数组 然后将该数组转换为int 但我的代码产生奇怪的值 我无法弄清楚问题是什么 void ledDimm String command
  • printf 的包装

    我在Arduino下编码 我想开发串行打印格式化功能 所以我尝试使用sprintf未知大小的缓冲区 基本上 我们可以避免谈论 Arduino 及其串行输出 并考虑将文本写入缓冲区 然后使用printf 我试过这个 include
  • 经典蓝牙 (2.1) 设备可实现的最小数据包延迟是多少?

    我正在使用 RN42 http www microchip com wwwproducts en RN42 http www microchip com wwwproducts en RN42 蓝牙模块以 115200 波特率 UART S
  • C++ Linux (Ubuntu) 正确写入串行(对于 Arduino)

    我想知道是否有一种标准方法可以与高效的串行设备进行通信 我应该使用标准库吗 如果有 是哪一个 现在我正在摆弄让 LED 根据输入的数字以给定的量亮起 Arduino 代码如下 只是练习一些东西 看我过于简单且低效的测试 include
  • Arduino从SD卡读取最后一行

    我对 Arduino 业务还很陌生 如何从 SD 卡读取最后一行 通过以下代码片段 我可以读取第一行 n 之前的所有字符 现在我想添加一个 向后 声明 或其他内容 到目前为止我的代码 include
  • 使用串口通过 Arduino 将多个值发送到 Raspberry

    我有一个关于 Arduino 和 Raspberry Pi 之间串行通信的问题 事实上 我想使用 Arduino 将 2 个变量发送到 Raspberry Pi 并以不同的方式使用它们 这是我的 Arduino 草图 int one 1 i
  • AVRDUDE Android Arduino ioctl 错误

    我之前的问题 Android 无法使用 AVRDUDE 与 Arduino 通信 https stackoverflow com questions 15596376 android cannot talk to arduino using
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • Arduino C++ 析构函数?

    我知道在Arduino中你不能使用delete 那么什么时候调用 C 类中定义的析构函数呢 同样 如果我想创建一个指向数组的指针 我必须使用malloc and free 当对象被销毁时 析构函数被调用 对于自动 堆栈上 变量 它在离开其作
  • 通过iPhone音频插孔读取数据

    我正在寻找一种方法来读取通过 iPhone 的音频插孔从 Arduino 发送的原始数据 我搜索了很多并发现this https github com sanjibahmad Is Headphone Plugged In tree mas
  • Arduino 高低

    我有一个 Arduino 我想知道到底是什么HIGH and LOW意思是 就实际值而言 它们是否有符号ints unsigned ints unsigned char是 他们的价值观是什么 我猜HIGH and LOW可能是unsigne
  • 无法将 minicom 的输出保存到文件中

    当我使用Minicom从串口捕获数据时 我需要将大数据保存到一个文件中 名为minicom cap 但是 如果我按 Ctrl A 和 L 来捕获文件 则失败 没有创建文件 minicom cap之前并不存在 我的下载目录已正确创建 我的操作

随机推荐

  • Python3 configparse模块(配置)

    Python3 configparse模块 配置 参考 https www cnblogs com bert227 p 9326313 html https www cnblogs com dion 90 p 7978081 html py
  • Mac下建立渗透测试环境:代理工具篇

    SSH完整命令行参数 D 绑定一个地址和端口 p 指定ssh连接的端口 L bind address port host hostport 指定本地端口和远程服务器的端口 将本地端口上的数据 发送到指定的远程端口上 R bind addre
  • ClickHouse进阶(十六):clickhouse优化-表优化

    进入正文前 感谢宝子们订阅专题 点赞 评论 收藏 关注IT贫道 获取高质量博客内容 个人主页 含各种IT体系技术 IT贫道 大数据OLAP体系技术栈 Apache Doris Kerberos安全认证 CSDN博客 订阅 拥抱独家专题 你的
  • linux 查看git,maven, java,haproxy,mysql,python,ansible等等版本命令汇总

    git版本 tom test git version git version 1 8 3 1 maven 版本 tom test mvn v Apache Maven 3 6 1 d66c9c0b3152b2e69ee9bac180bb8f
  • [BJOI2014]大融合【LCT维护子树信息】

    题目链接 本题保证不会构成环 此为前提 然后操作是查询 或者接上一条边 保证之前两点不连通 好了 接下去就是正经事儿了 在此之前 已经有了利用LCT来维护树链信息了 现在只要在这基础上稍加改变 就可以维护某点 也可以是不定根 的子树信息了
  • nginx:实时流量拷贝mirror模块

    ngx http mirror module模块 实时流量拷贝 precontent阶段的mirror模块 默认编译进nginx模块 通过 without ngx http mirror module禁用模块 功能 创造一份镜像流量 生产环
  • React函数式组件渲染、useEffect顺序总结

    参考资料 深入React的生命周期 上 出生阶段 Mount 深入React的生命周期 下 更新 Update 精读 useEffect 完全指南 React组件重新渲染理解 优化大全React渲染顺序及useEffect执行顺序探究 含并
  • mysql创建定时任务

    一 前言 自 MySQL5 1 6起 增加了一个非常有特色的功能 事件调度器 Event Scheduler 可以用做定时执行某些特定任务 例如 删除记录 对数据进行汇总等等 来取代原先只能由操作系统的计划任务来执行的工作 更值得 一提的是
  • pytorch小问题

    pytorch张量的保存和恢复 tensor本身就是对象 如果想要保存和恢复对应的对象 使用 torch save 和 torch load即可 就像picke的load 和dump一样 t2 torch randn 1024 1024 t
  • Java Spring @Scheduled 定时任务crontab表达式设置

    Java Spring Scheduled 定时任务crontab表达式设置 1 Cron详解 2 例子 参考 1 Cron详解 Cron表达式是一个字符串 字符串以5或6个空格隔开 分为6或7个域 每一个域代表一个含义 Cron有如下两种
  • React(一):React的设计哲学 - 简单之美

    React 一 React的设计哲学 简单之美 React 二 React开发神器Webpack React 三 理解JSX和组件 React 四 虚拟DOM Diff算法解析 React 五 使用Flux搭建React应用程序架构 Rea
  • Java程序员开发软件(工具)清单

    亲 你准备好了吗 001 项目管理 禅道 JIRA 002 办公协同 钉钉 003 工作邮件 Foxmail OutLook 004 项目文档 MS Office Word Excel PowerPoint WPS 005 MD 笔记 Ty
  • openGL之API学习(六十九)水平同步 垂直同步

    垂直和水平是CRT中两个基本的同步信号 水平同步信号决定了CRT画出一条横越屏幕线的时间 垂直同步信号决定了CRT从屏幕顶部画到底部 再返回原始位置的时间 而恰恰是垂直同步代表着CRT显示器的刷新率水平 垂直同步打开 那么在游戏中 或许强劲
  • 用 LangChain 构建基于资料库的问答机器人(二):从资料源中提取文本信息

    大家好 我是学生大使 Jambo 这个系列的目标是做出一个根据资料回答问题的机器人 那么从资料源中提取文本信息就是一件必要的事 但我们的资料源格式是多样的 比如 PDF Word HTML PPT 等等 甚至有的资料源来自于网络 这些格式都
  • Android studio 怎样连接手机运行,Android studio连接手机调试

    今天百度了一下如何在在Android studio如何在真机上运行 比较复杂 看了很多 现在给大家总结一下 1 首先要将手机连接到电脑上 直接在电脑上安装一个应用宝 然后在手机上也安装一个应用宝 通过应用宝将手机连接到电脑上 2 打开手机的
  • Nacos下载安装与配置(windows)

    一 Nacos下载 外网不好下载以下提供了两个版本 官网地址 https nacos io zh cn 蓝奏云地址 nacos server 1 4 1 zip 蓝奏云 1 4 1 版本 windows nacos server 2 0 0
  • 像智能手机一样造车,可能吗?

    造车这件事有多火 从小鹏 理想等昔日 造车新势力 在互联网军团的入局浪潮中 都变成了 前浪 就可见一斑 春节前后 我们见证了一波波互联网企业在汽车领域的布局 百度与吉利组建合资公司 苹果传出与韩国现代合作 阿里与上汽的智己汽车注册不到20天
  • 2023年VSCode插件最新推荐(54款)

    本文介绍前端开发领域常用的一些VSCode插件 插件是VSCode最重要的组成部分之一 本文列出了我自己在以往工作经验中积累的54款插件 个人觉得这些插件是有用或有趣的 根据它们的作用 我粗略的把它们分成了代码管理 文本和图片处理 前端框架
  • 端到端学习在车辆测距中的探索与实践

    yolo车距1 订阅车距专栏获得源码 http t csdn cn sU3U6 随着深度学习技术的快速发展 端到端学习在计算机视觉领域取得了显著的成果 端到端学习是一种直接从输入数据到输出结果的模型训练方法 无需进行复杂的特征工程 在车辆测
  • 【Arduino学习】05.驱动4个数码管

    数码管介绍 如图 本次使用的数码管为共阴极 四个数码管有 12 个引脚 可以分为位选脚和段选脚 段选脚 8个引脚a b c d e f g 位选脚 4 个引脚 D1 D2 D3 D4 哪个数码管显示由片选脚决定 片选脚为高电平 则该数码管点