C+ +代码如何与LED电路一起工作
扫描二维码
随时随地手机看文章
7段显示组件
在面包板上构建该电路或使用模拟器软件。红色表示5v,蓝色表示0v。在实际电路中,我们会使用示波器或电压表。
看看显示组件的每条引线是如何有字母a到g,带点和-ve电源连接的。a引脚上的5v电压打开显示器的顶部条?这些通常被标记在物理设备上。
每段供电
按下开关,每次打开一段。第8个引线指向点,通常不包含代码和连接。您的代码可以在没有连接的情况下使用点,但它不会显示。
使数字
将这些片段组合成可见的数字。我们的演示代码将为字母添加一些组合。
用计算机实现自动化
这不是我们想手工做的事情。这正是我们想要用程序自动化的东西。ATmega328是一个单芯片计算机,连接电源,它将运行任何程序在闪存。
C++软件
ATmega328是Arduino Uno板中的处理器。我们可以用Arduino IDE用C++或C++语言编程。一个演示程序将只使用我们在板上的32kB闪存中的2kB。
首先,我们必须安装一个库程序,它将添加知道如何与LED电路一起工作的代码。
高级七段
更新您的Arduino代码库并搜索Advance Seven Segment。有很多为这些显示器编写的软件库。这个很小。
它添加了两个源代码文件,您可以打开并读取、修改它们。头文件是AdvanceSevenSegment.h,它为我们将要使用的函数提供了一个声明。我们在代码中包含了这个头文件,并且这个库中的函数可以在我们的草图中使用。
以及AdvanceSevenSegment.cpp,它提供函数定义。注意,1和0与输出引脚上的5伏和0伏匹配。通读源代码可以了解程序的工作原理。它可以是可读的。
这里展示了c++和面向对象编程的许多原理。输入的1和0成为数据对象,我们的LED段也是如此。
编程你的Uno板
像你在图中看到的那样连接电线并上传草图。注意,当引脚13通电时,Uno板上的LED也会亮起。
代码
打开Arduino草图并复制这段代码。它需要包含的库。显示模块循环通过数字0到9,然后在7段显示上工作的一些字母数字。
关键的一行是数据对象构造函数AdvanceSevenSegment display(variables);取每个显示段的1和0并计算是否打开每个显示段的数学函数。
包含文件
前面我们看了库头和cpp代码。回头查看头文件和cpp源文件,了解程序如何将字母数字值转换为电压。
记事本打开这些文件。
我们写#包括在我们的草图,然后所有上述添加。位于另一个目录中,“binary.h”位于同一目录中。
那么,就这样了?
不,才刚开始。这里我们只看到基本的7段LED组件。更多的电路组合涉及多个显示器、附加接口和芯片。
我们的单个模块在电路板上使用7或8个引脚。添加模块不会以这种方式工作。为了处理所有的连接引线,有解决方案可以在2线上串行工作,或者减少连接到4引线BCD二进制编码十进制。
我们的模块使用地面为我们所有的部分。我们在每条上加5v或3v来获得光。这被称为共享或公共阴极类型。其他公共阳极模块被连接到一个共享的正极。我们可能需要翻转我们的比特。
是创造性的。想象Uno将此草图作为显示驱动程序设备运行。我们的草图是显示驱动软件。您可以使用串行端口功能来打印您选择的消息。
这个草图很小。在较小的芯片上运行,比如ATmega8或atiny。物理上较小,我们只使用8个引脚。
查找7段的代码和电路图可能会很混乱,因为有太多的选择。这个项目不是移位寄存器项目,它不是BCD,也不是串行接口。每个信号接口都是不同的。
这个项目是关于模块有7段a, b, c, d, e, f, g。有时被称为管,因为热发光真空管是一种显示技术。
本文编译自hackster.io