当前位置: 首页 > 知识库问答 >
问题:

Arduino-停止循环的readString.index(闪烁的LED循环中断)

东门仲卿
2023-03-14

我的情况是,我用移位寄存器控制72个LED。可通过特定请求激活每个LED。很容易将LED设置为高,但LED应闪烁。通过“for”使LED闪烁不是问题。我设法使LED闪烁,一旦它闪烁,当新的请求进来时,它不会停止。LED应仅在新请求到达之前闪烁。

我的问题是,如果在闪烁的过程中(在示例中3次)我不能停止它。如果我正在发送一个新的if(readString.indexOf("? Button1onA2")

我的目标是使LED闪烁,但在通过“readstring”的新请求到达时停止。

我的问题:

  • 有没有更好的方法让LED在循环中闪烁,而不是使用for(i=0; i

我的代码

if(readString.indexOf(“?button1onA1”)

      if (readString.indexOf("?button1onA1") > 0) {

        for (i = 0; i < 3; i++)
        {
          shifter.setPin(4, HIGH);
          shifter.write();
          delay(200);
          shifter.setPin(4, LOW);
          shifter.write();
          delay(200);

        }

共有1个答案

嵇丰
2023-03-14

您必须使用非阻塞延迟(例如,无延迟闪烁)。一个好方法是使用状态机(或其中的许多)。

但理论上,您可以只存储LED的位掩码,这些位掩码应该闪烁,并同步闪烁(无阻塞延迟)。

 类似资料:
  • LED是小而强大的灯,可用于许多不同的应用。 首先,我们将致力于闪烁LED,微控制器的Hello World。 它就像打开和关闭灯一样简单。 建立这一重要基线将为我们开展更复杂的实验奠定坚实的基础。 组件的要求 (Components Required) 您将需要以下组件 - 1 × Breadboard 1×Arduino Uno R3 1×LED 1×330Ω电阻器 2 × Jumper 过程

  • 编程语言提供各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - C编程语言提供以下类型的循环来处理循环要求。 S.NO. 循环和描述 1 while 循环 while循环将连续循环,并且无限循环,直到括号内的表达式()变为false。 有些东西必须改变测试变量,否则while循环永远不会退出。 2 做... while循环 do

  • 问题内容: 我正在使用从队列中连续读取的线程。 就像是: 停止此线程的最佳方法是什么? 我看到两个选择: 1-由于已弃用,因此我可以实现使用原子检查条件变量的方法。 2-将死亡事件对象或类似的对象发送到队列。当线程获取死亡事件时,它退出。 我更喜欢第一种方法,但是,我不知道何时调用该方法,因为可能有某种方法进入队列,并且停止信号可能首先到达(这是不希望的)。 有什么建议? 问题答案: 该(或因为它

  • 我正试图按照下面的代码读取一个txt文件: 我的txt文件如下所示: 当我不使用变量I时,仅用于在控制台打印我的文件,我的代码可以完美地工作。你们能帮我吗?如何将每个数据分离到数组中?我是Java初学者。

  • 我正在尝试创建一个自动打开我的在线类的脚本。我写了这样的代码: 现在,问题是第一个if语句被无休止地执行,我想让它只执行一次,而不是等到现在==lesson2再执行第二个if etc

  • 问题内容: 我正在编写代码以确定nxn列表中的每个元素是否相同。即返回true,但将返回false。我正在考虑编写一个代码,当它发现与第一个元素不同的元素时立即停止。即: 我想停止此循环, 然后返回false。否则返回true。我将如何实施呢? 问题答案: 使用和为此。可以使用以下命令在Python中完成打破嵌套循环的操作: 另一种方法是将所有内容包装在函数中,并用于从循环中退出。