在这个例子中,我们再次使用Arduino MEGA的数字输出,在四位七段指示器上使用动态指示5461as-1。 此外,我们将使用数字输入来切换显示的数据,我们将使用有限状态机实现输入信号的边缘选择。
在前面的例子中,我们已经考虑过:编程一个[七段指标](https://engee.com/community/ru/catalogs/projects/arduino-semisegmentnyi-indikator )和动态显示。 在这个例子中,我们将结合两个模型-5461as指示器的数字将动态切换,为每个数字显示相应的点火段序列。
由于该指标为四位数,而该项目正于2026年新年前夕进行,我们只需按一下按钮,便可指示一年的变化。
在示例中,我们还使用带有数字输入/输出的Arduino MEGA:30-36用于段,40-44用于数字,2用于按钮。
此外,该电路还需要:一个面包板,一个按钮,4个用于放电的330欧姆电阻,1个10kOhm电阻和一个用于防抖动电路的68nF电容。
连接图如下所示。
.png)
根据下表进行连接很方便:
#
Arduino引脚
联络电话5461AS-1
联络名称5461AS-1
图中电缆的颜色
2
-
-
粉红色
30
11
a
红色
31
7
b
橙色
32
4
c
黄色
33
2
d
绿色
34
1
e
蓝色
35
10
f
蓝色
36
5
g
紫罗兰
40
12
D1
棕色(330欧姆后)
41
9
D2
赭石(通过330欧姆)
42
8
D3
灰色(330欧姆后)
43
6
D4
白色(通过330欧姆)
5V
-
-
红色
GND
-
-
黑色
示例模型如下面的屏幕截图所示。:
.png)
动态显示(段切换)的控制方式与[LED矩阵](https://engee.com/community/ru/catalogs/projects/6b153737-49ec-451b-a9b7-a7728410833b ),除了只有4位数字从最低切换到最高。
座 on_digit
on_digit_data = [1, 0, 2, 0, 3, 0, 4, 0];
包括区段的序列的形成与用[七区段指示符]的示例类似地实施(https://engee.com/community/ru/catalogs/projects/arduino-semisegmentnyi-indikator )。 用于在块中启用序列段的控制数据 Repeating Sequence Stair
year25_data = [2, 11, 0, 11, 2, 11, 5, 11];
year26_data = [2, 11, 0, 11, 2, 11, 6, 11];
在这里,向量包含一个数字 11multiportswitch[0, 0, 0, 0, 0, 0, 0]
用于切换输入数据的信号源是来自[Arduino-digitalRead]支持包的Arduino外设单元(https://engee.com/helpcenter/stable/cn/hardware-arduino/arduino-digitalread.html )。 块中设置数字输入号。 - 2edge_detectorChartyear25year26
使用这段代码,我们自动启动AnyMath服务器程序。综合服务:
import .engee.package as epkg
const PKGNAME = "Engee-Device-Manager"
function epkg_start(pkg::String)
if !epkg.isinstalled(pkg)
@info "Package not installed. Installing and Starting..."
epkg.install(pkg)
@info "Package is up to date. Starting..."
# println("链接连接到服务器:\n"*epkg.开始(pkg))
else
updates = epkg.checkupdates(pkg)
if isnothing(updates)
@info "Package is up to date. Starting..."
# println("链接连接到服务器:\n"*epkg.开始(pkg))
else
@info "Updates available. Reinstalling and Starting..."
epkg.update(pkg)
@info "Package is up to date. Starting..."
# println("链接连接到服务器:\n"*epkg.开始(pkg))
end
end
end
epkg_start(PKGNAME)
同样在幕后,[像往常一样](https://engee.com/community/ru/catalogs/projects/bc465b1d-9127-43a4-b73a-de7999ea6510 ),让我们启动AnyMath客户端程序。集成和连接我们的设备.
让我们在独立模式下运行模型。
<div>
<div样式="位置:相对;填充顶部:43.94%;">
<iframe src="https://exponenta.ru/storage/app/media/arduino_new_year_2026.mp4"frameborder="0"allowfullscreen
style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
</div>
</div>
在记录中,我们可以看到所有嵌入的功能:
-按数字动态显示,
-将设定的数值输出成段,
-沿输入信号前沿切换显示数据
按预期实施。
在这个例子中,我们结合了前面两个使用支持包的Arduino MEGA数字输出的例子,动态显示和七段数字的输出。 此外,我们添加了一个数字输入,并使用有限状态机实现了分配信号前沿的逻辑。