以编程方式查找有限序列中的数字

问题描述 投票:0回答:1

我正在开发一个带有 8 个 LED 的 arduino 项目,这些 LED 将循环显示一组 4 种颜色。我创建了一个颜色数组,并试图找出是否有一种编程方法来计算数组中的下一个元素

LED 循环0 循环1 循环2 循环3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
4 0 1 2 3
5 1 2 3 0
6 2 3 0 1
7 3 0 1 2

第一个循环(循环 0)使用模数公式

loop + pixel % 4
(即
0 + 0 % 4
0 + (1 % 4)
等)。但在随后的循环中,数字不会正确重复。比如说

LED 想要的 公式 结果
0 1 1 + (0 % 4) 1
1 2 1 + (1 % 4) 2
2 3 1 + (2%4) 3
3 0 1 + (3 % 4) 4
4 1 1 + (4 % 4) 1
5 2 1 + (5 % 4) 2
6 3 1 + (6 % 4) 3
7 0 1 + (7 % 4) 4

一切正常,直到我们到达 led 3,其中所需的结果是 0,但我得到 4。当我想要时,下一个循环(循环 2)会产生 2, 3, 4, 5, 2, 3, 4, 5 2, 3, 0, 1, 2, 3, 0, 1.

我在互联网上找不到任何信息,因为我不知道该问什么。我尝试过寻找重复序列,但不断得到与这个问题无关的结果。

有一个优雅的数学解决方案吗?

arrays math arduino sequence
1个回答
0
投票

是的。我认为这完成了任务

(loop+pixel)%4

© www.soinside.com 2019 - 2024. All rights reserved.