0

Web ベースのライト コントローラーを作成しましたが、すべてが完全に機能しています。しかし、フィクスチャの1つをオフにするのに問題があります。

ランプをオフにするには、チャネル 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);
          }
        }
      }

どんな助けでも大歓迎です。

4

1 に答える 1

3

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 以外の何かで再度更新されない限り。別の何かで更新されるまで、バックグラウンドは送信し続けます。

于 2015-02-22T01:33:46.813 に答える