嵌入式入门学习——6Protues点亮数码管,认识位码和段码,分辨共阴还是共阳(数字时钟第一步)

devtools/2024/10/20 11:59:33/

0 系列文章入口

嵌入式入门学习——0快速入门,Let‘s Do It!
首先新建基于Arduino UNO的protues工程,见本系列第3篇文章
1 点“P”按钮找器件
2 输入“seg”或“digit”查找数码管器件
3 找到我们想要的6位7段数码管
在这里插入图片描述
4如图A、B…DP都是段码,1、2…6是位码,段码位码我不再这里解释了,网上教程很多,让我们试试他是共阴还是共阳,共阴还是共阳网上解释也很多,我这图上的接法少串连了一个限流电阻,实际这么接可能电流过大烧毁发光二极管,然后我们开始仿真发现没动静,那就把电源和地换个方向。
在这里插入图片描述
换了方向可见二极管都点亮了,顺便也可以知道具体引脚对应的位置。实际工作中如果遇到不确定型号的数码管也可以使用这种方法上电测试。
对了连接完成电路后要点击左下角的仿真按钮才能让电路开始工作哦。
在这里插入图片描述
知道这些了我们就可以用Arduino UNO控制LED显示了,下图展示了流水灯程序,可以直观的看出每位数字的每个段码被依次点亮,当段码为高电平(红色)位码为低电平(蓝色)LED就被点亮啦。
请添加图片描述
程序如下:

void clearall()
{for(int seg=0;seg<8;seg++){digitalWrite(seg, LOW);   // 段码清零}for(int num=8;num<14;num++){digitalWrite(num, HIGH);   // 位码清零}}
void setup() {for(int seg=0;seg<8;seg++){pinMode(seg, OUTPUT); // 设置为输出模式digitalWrite(seg, LOW);   // 段码清零}for(int num=8;num<14;num++){pinMode(num, OUTPUT); // 设置为输出模式digitalWrite(num, HIGH);   // 位码清零}
}
void loop() {for(int j=8;j<14;j++){digitalWrite(j, LOW);   // 依次将位选设置成低电平for(int i=0;i<8;i++){digitalWrite(i, HIGH);   // 依次把段选设置为高电平delay(100);} clearall();}
}

不过这样控制可不优雅,这样要显示数字也太难了吧,还要去算那个数字由哪些段码组成,比如8就是0xFE(不显示小数点)7就是0xE0(只显示A、B、C对应的LED),而且Arduino还不支持C51或者STM32那样按组给GPIO赋值只能用循环的方式挨个比特赋值。下期教程引入第三方库SevSeg,让我们优雅的显示数字吧。顺便看看这个库底层是怎么设计的。


http://www.ppmy.cn/devtools/127281.html

相关文章

数据结构--二叉树随记

二叉树主要分为四类&#xff1a;满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树。 高度,深度,层 满二叉树 满二叉树就是每一层节点都是满的&#xff0c;整棵树像一个正三角形&#xff1a; 满二叉树有个优势&#xff0c;就是它的节点个数很好算。假设深度为 h&#xff0c;那…

1. 安装框架

一、安装 Laravel 11 框架 按照官方文档直接下一步安装即可 1. 安装步骤 2. 执行数据库迁移 在.env文件中提前配置好数据库连接信息 php artisan migrate二、安装 Filament3.2 参考 中文文档 进行安装 1. 安装 拓展包 composer require filament/filament:"^3.2" -W…

即时通讯:群消息的读、写扩散问题

在即时通讯&#xff08;IM&#xff09;项目的开发中&#xff0c;群聊消息的传播机制可以分为两种主要模式&#xff1a;读扩散和写扩散。这两种模式各有优缺点&#xff0c;适用于不同的场景和需求&#xff0c;尤其在群聊消息的发送和接收环节&#xff0c;它们对系统的性能和可扩…

滚雪球学Redis[7.4讲]:Redis在分布式系统中的应用:微服务与跨数据中心策略

全文目录&#xff1a; &#x1f389;前言&#x1f6a6;Redis在微服务中的应用场景&#x1f300;1. 服务发现与注册&#x1f308;实现服务注册的示例 &#x1f302;2. 配置中心☂️配置中心示例 ☔️3. 分布式锁⛱️分布式锁示例 ⚙️跨数据中心的Redis应用策略⚡️1.主从复制与…

Flume面试整理-Flume与其他数据收集工具的比较

Apache Flume 是一个流行的数据收集工具,但在大数据领域,还有许多其他工具可用于数据收集和传输,如 Apache Kafka、Logstash、Filebeat 等。每个工具都有其独特的优势和使用场景。下面是 Flume 与其他常见数据收集工具的详细比较,包括功能、性能、扩展性等多个方面。 1. Fl…

深入理解Reactor核心概念

深入理解Reactor核心概念 1. 响应式编程简介2. Reactive Streams 规范3. Reactor 核心概念3.1 导入依赖3.2 Mono常见操作符&#xff1a;异步例子&#xff1a; 3.3 Flux常见操作符&#xff1a;异步例子&#xff1a; 4. 背压&#xff08;Backpressure&#xff09;5. 异常处理6. 请…

【中危】Oracle TNS Listener SID 可以被猜测

一、漏洞详情 Oracle 打补丁后&#xff0c;复测出一处中危漏洞&#xff1a;Oracle TNS Listener SID 可以被猜测。 可以通过暴力猜测的方法探测出Oracle TNS Listener SID&#xff0c;探测出的SID可以用于进一步探测Oracle 数据库的口令。 建议解决办法&#xff1a; 1. 不应该使…

落地 ZeroETL 轻量化架构,ByteHouse 推出“四个一体化”策略

在数字化转型的浪潮中&#xff0c;数据仓库作为企业的核心数据资产&#xff0c;其重要性日益凸显。随着业务范围扩大&#xff0c;企业也会使用不同的数据仓库来管理、维护相关数据。研发人员需要花费大量时间和精力&#xff0c;从中导出数据&#xff0c;然后进行手动整理、转换…