繁体   English   中英

DMX Arduino-关闭Martin Exterior 600灯具上的灯

[英]DMX Arduino - Turn OFF lamp on Martin Exterior 600 fixture

我已经制作了一个基于Web的灯光控制器,并且一切运行正常。 但是我在关闭其中一个灯具时遇到了问题。

为了关闭灯泡,必须在通道17上发送250的值至少5秒钟。 这就是棘手的地方,我该怎么做?

我正在使用http://www.mathertel.de/Arduino/DMXSerial.aspx的DMXSerial库,但缺少文档。

这是代码的一小部分。

if(finder.find("#dmx")) { // Find out if this is a dmx string.
  if(finder.findUntil("type", ",")) {   // Finds the type
     cmd = finder.getValue();       // Putting the value found in its variable.
        if(cmd == 4) {
          if(finder.findUntil("ch", ",")) {
          channel = finder.getValue();
          }
          if(finder.findUntil("va", ",\n\r")) {
          val = finder.getValue();
          }
          if(channel == 17 && val == 250) {

            // some code here

          } else {
            DMXSerial.write(channel, val);
          }
        }
      }

任何帮助都将受到欢迎。

DMXSerial库的初始化

DMXSerial.init(DMXController);

使发射机能够在后台发送并重复发送存储的512通道的默认值。 哪里

DMXSerial.write(ch, value);

更新指定的缓冲区位置,该位置又在后台发送。

通过发送完整的中断,仅在后台重复DMX帧。 512通道的整个帧大约以44Hz的频率重复。

由于它是由中断驱动的,因此您无需执行其他操作。 因此,从本质上讲,它应该很简单:

...
DMXSerial.write(17, 250);
delay(5100); 
DMXSerial.write(17, 0); // or something else
...

我认为用250来更新适当频道的网络投放就足够了。 只要不再使用250以外的其他东西进行更新即可。因为背景将一直发送,直到使用其他内容进行更新为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM