Dimmen

Wir lernen Bytewerte kennen und dimmen Lichter.

Dimmen wie geht das ?

KNX ermöglicht die Helligkeitssteuerung von Lichtern mit Hilfe von Dimmaktoren. Dabei stellen die Programme von Dimmaktoren meist recht viele Möglichkeiten der Konfiguration zur Verfügung, durch die man sich in der ETS mal durcharbeiten kann.

Hier soll es aber um KNiXuino und die Steuerung von Dimmaktoren gehen. KNiXuino verwendet die Basisdimmfunktionen, die jeder Dimmaktor gleich realisiert hat. Dies sind:

  • Eine Gruppenadresse (Bit Objekt) zum Ein- und Ausschalten sowie zugehöriger Status
  • Eine Gruppenadresse (Byte Objekt) zum Einstellen der Helligkeit als Absolutwert (0-255) sowie zugehöriger Status.
  • Eine Gruppenadresse (3Bit Objekt) zum relativen Dimmen (heller/dunkler).

Man braucht nur die GAs verwenden, die für die jeweilige Anwendung Sinn machen bzw. wie der Aktor konfiguriert ist.

Im Definitonenfile lege ich folgendes dimmbares Licht an:

KNXBit* eg_diele = new KNXBit(gaToInt(1,2,80), gaToInt(1,2,81));
KNXByte* eg_diele_dim = new KNXByte(gaToInt(1,2,82), gaToInt(1,2,84));
KNX3Bit* eg_diele_reldim = new KNX3Bit(gaToInt(1,2,83));

Dann läuft folgender Sketch

#include "elapsedMillis.h"
#include "KNXConnection_SIMKNX_raw.h"
#include "KNXBasicObjectTypes.h"
#include "KNXObjectDefinitions.h"

void setup() {
  Serial.begin(9600);
  Serial.println("Ready ! ");
  objectSettings();
}

void loop() {
 knx->doIt();
}

void serialEvent()
{
  char ch = Serial.read();
  if (ch == 's') eg_diele->print();
  if (ch == 'd') eg_diele_dim->print();
  if (ch == '0') eg_diele->set(0);
  if (ch == '1') eg_diele->set(1);
  if (ch == '2') eg_diele_dim->set(0);
  if (ch == '3') eg_diele_dim->set(190);
  if (ch == '4') eg_diele_dim->set(254);
  if (ch == '+') eg_diele_reldim->up();
  if (ch == '-') eg_diele_reldim->down();

} // end keyboardInput

Erklärung

Im Sketch selber werden eigentlich nur Tatstaureingaben verarbeitet. Mit diesen siehst du die Möglichkeiten einen Dimmer zu bedienen. Es gibt ein eigenes Bitobjekt, mit dem man ein- und ausschalten kann, ein Byte Objekt mit dem man direkt Helligkeitswerte senden/empfangen kann und ein 3Bit Objekt, das relatives Dimmen ermöglicht. Einige Verhaltensweisen sind von der ETS Programmierung anhängig. (z.B. Lässt sich das Licht mit Helligkeitswert auch einschalten, werden Helligkeitsstatuswerte ausgegeben und wann, mit welcher Helligkeit schaltet sich das Licht ein usw. usw.