arduino库之:sevseg库说明文档

该库将您的 Arduino 变成一个七段显示控制器。使用它可以轻松地在七段显示器上显示数字,无需任何额外的控制器。该库不支持移位寄存器。

支持:

Arduino 连接

所有数字引脚都可以连接到Arduino的任何数字引脚,或具有数字支持的模拟引脚;大多数 Arduino 上的模拟引脚都具有数字支持,但 Arduino Nano 是一个例外。

限流电阻

不要忘记显示器使用的是LED,因此您应该在数字引脚上串联限流电阻。如果您不确定的话,330 欧姆是一个安全值。

硬件配置

您必须将库的硬件配置指定为 sevseg.begin 中的第一个参数。下面详细介绍了这些选项。

简单、低功耗的显示器

这些显示器直接通过 Arduino 输出引脚供电。(购买时要问清楚是共阳极还是共阴极)

带开关的显示器

一些显示器(大多数是较大的显示器)使用开关晶体管,但大多数人不必担心以下配置。

引脚排列示例

在下面的引脚排列中,数字编号为 1、2、3、4。段编号为 A 到 G 加上小数点 (DP) 。引脚按显示器正面的顺序排列。

  • 1至8位数字显示
  • 共阴极和共阳极显示器
  • 开关晶体管
  • 十六进制和十进制数字显示
  • 小数位
  • 输入整数或浮点数字
  • 字母数字字符(尽可能准确)

硬件

七段显示引脚

您的显示器应该具有:

  • 数字引脚- 每个数字一个。这些是"通用引脚"。它们将是共阴极显示器的阴极(负极引脚),或共阳极显示器的阳极(正极引脚)。
  • 8 段引脚- 七个段中的每一段加上小数点。
  • COMMON_CATHODE - 用于不带开关的共阴极显示器。这些显示器需要数字引脚处的低电压来照亮数字。
  • COMMON_ANODE - 用于不带开关的共阳极显示器。这些显示器需要在数字引脚处施加高电压来照亮数字。
  • N_TRANSISTORS - 如果使用 N 型晶体管吸收电流(或任何其他高电平有效、低侧开关)。
  • P_TRANSISTORS - 如果您使用 P 型晶体管来提供电流(或任何其他低电平有效的高侧开关)。
  • NP_COMMON_CATHODE - 如果您的设置使用带有共阴极显示器的 N 型和 P 型晶体管。
  • NP_COMMON_ANODE - 如果您的设置使用带有共阳极显示器的 N 型和 P 型晶体管。请注意,使用高电平有效、高侧开关不会对所选配置产生影响。通常称为高边开关。

配置

复制代码
#include "SevSeg.h"
SevSeg sevseg; //Instantiate a seven segment object

void setup() {
  byte numDigits = 4;
  byte digitPins[] = {2, 3, 4, 5};
  byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
  bool resistorsOnSegments = false; // 'false' means resistors are on digit pins
  byte hardwareConfig = COMMON_ANODE; // See README.md for options
  bool updateWithDelays = false; // Default 'false' is Recommended
  bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
  bool disableDecPoint = false; // Use 'true' if your decimal point doesn't exist or isn't connected. Then, you only need to specify 7 segmentPins[]

  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
  updateWithDelays, leadingZeros, disableDecPoint);
  ...
}

digitPins是一个数组,存储数字所连接的 arduino 引脚号。从左到右对它们进行排序。

segmentPins是一个数组,存储各段所连接的 arduino 引脚号。将它们从段 a 到 g 排序,然后是小数点位置(如果已连接)。

如果您希望使用超过 8 位数字,请增加 SevSeg.h 中的 MAXNUMDIGITS。

刷新显示

复制代码
sevseg.refreshDisplay();

您的程序必须重复运行refreshDisplay()函数才能显示该数字。 警告:任何对delay()的调用都会干扰显示。 其他功能引入的任何延迟都会对显示产生不良影响。如果您需要帮助摆脱delay()语句,我推荐简单的Blink Without Delay arduino示例草图。

要清空显示屏,请调用:

复制代码
sevseg.blank();

设置数字

整数
复制代码
sevseg.setNumber(3141,3); // Displays '3.141'

第一个参数是要显示的数字。

第二个参数指示小数位应该在哪里,从最低有效数字开始计算。

例如,要显示整数,第二个参数为 0。

浮点数
复制代码
sevseg.setNumberF(3.14159f,3); // Displays '3.141'

在这种情况下,第二个参数指示要显示多少位小数精度。

注意:

  • 超出范围的数字显示为"----"。
  • 如果第二个参数为 -1 或省略,则没有小数位。
  • 输入"true"作为第三个参数,以十六进制表示形式(而不是十进制)显示数字

设置字符串

复制代码
sevseg.setChars("abcd");

字符数组可以在七段显示器上尽可能准确地显示。请参阅 SevSeg.cpp digitalCodeMap[] 以了解每个字符的注释。仅限字母数字字符,加上" "、"-"、"_"和"." 都支持。字符数组应以 NULL 结尾。

自定义显示设置

复制代码
// 设置显示屏上每个数字的分段
uint8_t segs[4] = {0, 0x5B, 0x6D, 0x63};
sevseg.setSegments(segs);
复制代码
// 设置单个数字的段。将数字 3 设置为 0x63。 
sevseg.setSegmentsDigit(3, 0x63);

如果需要,您可以操纵各个片段。每个字节代表一个数字的显示,每个位代表一个段。这些位代表顺序为.GFEDCBA 的段。

设置亮度

复制代码
sevseg.setBrightness(90);

亮度可以使用 -200 到 200 之间的值进行调整。0 到 100 是标准范围。大于 100 且小于 -100 的数字可能会导致明显的闪烁。请注意,0 并不代表没有亮度,-200 也不代表没有亮度。如果您的显示器有明显的闪烁,将亮度修改为 0 可能会纠正它。每次实施的结果都会有所不同。看到的亮度取决于显示器特性、驱动它的arduino模型、使用的电阻以及程序中执行其他操作所花费的时间。

相关推荐
ThreeYear_s6 小时前
基于FPGA 的4位密码锁 矩阵键盘 数码管显示 报警仿真
fpga开发·矩阵·计算机外设
不知火猪10 小时前
最新雷蛇鼠标键盘驱动Razer Synapse 4(雷云) 下载与安装
计算机外设·驱动·雷云·雷蛇驱动
电子工程师UP学堂2 天前
电子应用设计方案-65:智能餐桌系统方案设计
网络·人工智能·单片机·嵌入式硬件·计算机外设
A等天晴2 天前
使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)
人工智能·cnn·计算机外设
weixin_444009003 天前
Windows开机黑屏|Windows开机黑屏只有鼠标|Windows开机不运行explorer
windows·计算机外设
??? Meggie3 天前
【Python】Selenium模拟滚动鼠标,向下拖动下拉按钮,直至网页页面向下滑的方法
python·selenium·计算机外设
YG·玉方4 天前
键盘常见键的keyCode和对应的键名
前端·javascript·计算机外设
电子工程师UP学堂4 天前
电子应用设计方案-59:智能电动床系统方案设计
人工智能·单片机·嵌入式硬件·机器人·计算机外设
电子工程师UP学堂5 天前
电子应用设计方案-56:智能书柜系统方案设计
人工智能·单片机·嵌入式硬件·机器人·计算机外设
呉師傅6 天前
联想至像M3070DW打印机连接手机方法
运维·服务器·智能手机·计算机外设·mfc