DMX Arduino - 在 Martin Exterior 600 灯具上关闭 lamp
DMX Arduino - Turn OFF lamp on Martin Exterior 600 fixture
我制作了一个基于网络的灯光控制器,一切正常。但是我在关闭其中一个装置时遇到问题。
要关闭 lamp,必须在通道 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 的值更新适当频道的 Web 放置就足够了。只要它没有用 250 以外的东西再次更新。因为后台会继续发送它,直到用不同的东西更新。
我制作了一个基于网络的灯光控制器,一切正常。但是我在关闭其中一个装置时遇到问题。
要关闭 lamp,必须在通道 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 的值更新适当频道的 Web 放置就足够了。只要它没有用 250 以外的东西再次更新。因为后台会继续发送它,直到用不同的东西更新。