深入探索Arduino:从移位寄存器到I2C总线的实践指南
1. 二进制与十进制格式转换
在之前的示例里,LED状态信息是以二进制字符串的形式呈现的。这种方式能让你直观地看到哪些LED会亮起或熄灭。不过,你也能将其转换为十进制数值。二进制数里的每一位(从最右边即最低有效位开始)都代表着2的递增幂次。
例如,有一个二进制数,其中第7、5、3、1位为高电平。要找出其十进制等效值,只需将2⁷、2⁵、2³和2¹相加,结果是170。你可以把这个数值代入之前的代码来验证,将 shiftOut() 行替换为:
shiftOut(SER, CLK, MSBFIRST, 170);
你会看到和使用二进制表示时相同的结果。
2. 用移位寄存器控制灯光动画
之前你搭建了一个用移位寄存器实现的静态显示。但你可能更希望在LED上展示动态信息,接下来的两个示例将介绍如何用移位寄存器控制灯光效果和实物柱状图。
2.1 构建“灯光骑手”效果
“灯光骑手”是一种很有趣的效果,看起来就像LED在来回追逐。你可以继续使用之前的电路。 shiftOut() 函数速度极快,每秒能对移位寄存器进行数千次更新,这使得你可以快速更新移位寄存器的输出,实现动态灯光动画。
这里的操作是让每个LED从左到右依次亮起,再从右到左依次亮起。你可以查看本节末尾链接的演示视频,看看完成后的电路效果。
你首先要确定每个动画状态,这样就能轻松循环展示。每个时间步,当前
超级会员免费看
订阅专栏 解锁全文

371

被折叠的 条评论
为什么被折叠?



