andreasrentz ich hoffe, dass sie heute oder morgen fertig werden, versand dauert dann halt noch einmal 3-4 Tage.
Screenshot_20200226-070132_Samsung Internet.jpg

Screenshot_20200226-070132_Samsung Internet.jpg
#include <KnxTpUart.h> // Einbindung der TpUart Library #include <SoftwareSerial.h> // Einbindung der Software Serial Library, der Pro Micro hat 2 serielle Hardwareschnittstellen, eine wird für den Busankoppler benötigt, die Andere für die Programmierung über USB, das Display wird somit softwareseitig eingebunden SoftwareSerial mySerial(9,8); //RX,TX // Festlegung von Namen und Pins für die serielle Verbindung des Displays KnxTpUart knx(&Serial1, "1.1.190"); // Festlegung der seriellen Schnittstelle mit dem Arduino mit dem Busankoppler kommuniziert, außerdem Festlegung der Physikalischen Adresse des Arduinos void setup() { mySerial.begin(9600); // Start der seriellen Verbindung (Display) mit 9600 Baud mySerial.print("dims=40"); // Festlegen der Displayhelligkeit auf 40% mySerial.print("\xFF\xFF\xFF"); // Ausführung der vorherigen "mySerial" Befehle (wird am Ende eines Befehls immer benötigt) Serial1.begin(19200, SERIAL_8E1); // Start der seriellen Verbindung (Busankoppler) mit 19200 Baud knx.uartReset(); // Uart Reset knx.addListenGroupAddress("11/0/0"); // Gruppenadressen auf die der Arduino "lauschen" soll knx.addListenGroupAddress("11/0/1"); knx.addListenGroupAddress("11/0/2"); knx.addListenGroupAddress("11/0/3"); knx.addListenGroupAddress("11/0/4"); knx.addListenGroupAddress("11/0/5"); } void loop() { // Der Loop bleibt leer } void serialEvent1() { KnxTpUartSerialEventType eType = knx.serialEvent(); if (eType == KNX_TELEGRAM) { KnxTelegram* telegram = knx.getReceivedTelegram(); // Telegrammauswertung auf KNX (bei Empfang immer notwendig) String target = // Zusammensetzen der Gruppenadresse String(0 + telegram->getTargetMainGroup()) + "/" + String(0 + telegram->getTargetMiddleGroup()) + "/" + String(0 + telegram->getTargetSubGroup()); if (telegram->getCommand() == KNX_COMMAND_WRITE) { // Auswertung des empfangenen KNX-Telegrammes if (target == "11/0/0") { // Wenn die Gruppenadresse 1/1/0 empfangen wird... int received_11_0_0 = telegram->getBool(); // ...Speichere den Wert (Ein oder Aus?)... if (received_11_0_0) { // ...Wenn der Befehl "Ein" lautet... mySerial.print("sleep=0"); // ...Wecke das Display auf (0=Display Ein, 1=Display Aus... mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) mySerial.print("page 0"); // ...Rufe Seite 1 auf mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) } else { // ...Ansonsten (Befehl kann in diesem Fall nur "Aus" sein, da es bei einem bit nur 2 Zustände gibt)... mySerial.print("sleep=1"); // ...Schalte das Display aus mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) } } else if (target == "11/0/1") { // Wenn die Gruppenadresse 1/1/1 empfangen wird... int received_11_0_1 = telegram->getBool(); // ...Speichere den Wert (Ein oder Aus?)... if (received_11_0_1) { // ...Wenn der Befehl "Ein" lautet... mySerial.print("sleep=0"); // ...Wecke das Display auf... mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) mySerial.print("page 1"); // ...Rufe Seite 2 auf mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) } else { // ...Ansonsten... mySerial.print("sleep=1"); // ...Schalte das Display aus mySerial.print("\xFF\xFF\xFF"); // (Ausführung des vorherigen "mySerial" Befehl) } } else if (target == "11/0/2") { int received_11_0_2 = telegram->getBool(); if (received_11_0_2) { mySerial.print("sleep=0"); mySerial.print("\xFF\xFF\xFF"); mySerial.print("page 2"); mySerial.print("\xFF\xFF\xFF"); } else { mySerial.print("sleep=1"); mySerial.print("\xFF\xFF\xFF"); } } else if (target == "11/0/3") { int received_11_0_3 = telegram->getBool(); if (received_11_0_3) { mySerial.print("sleep=0"); mySerial.print("\xFF\xFF\xFF"); mySerial.print("page 3"); mySerial.print("\xFF\xFF\xFF"); } else { mySerial.print("sleep=1"); mySerial.print("\xFF\xFF\xFF"); } } else if (target == "11/0/4") { int received_11_0_4 = telegram->getBool(); if (received_11_0_4) { mySerial.print("sleep=0"); mySerial.print("\xFF\xFF\xFF"); mySerial.print("page 4"); mySerial.print("\xFF\xFF\xFF"); } else { mySerial.print("sleep=1"); mySerial.print("\xFF\xFF\xFF"); } } else if (target == "11/0/5") { int received_11_0_5 = telegram->getBool(); if (received_11_0_5) { mySerial.print("sleep=0"); mySerial.print("\xFF\xFF\xFF"); mySerial.print("page 5"); mySerial.print("\xFF\xFF\xFF"); } else { mySerial.print("sleep=1"); mySerial.print("\xFF\xFF\xFF"); } } }}}
SoftwareSerial mySerial(9,8);
SoftwareSerial mySerial(3,2);
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar