[英]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.