Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Firmenkunden / Bildungseinrichtungs Shop

Funk-System FS20

FS20 US und Arduino UNO

Beiträge zu diesem Thema: 5
FS20 US und Arduino UNO
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
06.01.2014, 20:15
Guten Tag,

in der Bau- und Bedienungsanleitung des Mini-UART-FS20-Senders FS20 US wird auf Seite 4 die Verdrahtung mit einem Arduino UNO Board gezeigt.
Meine Frage:
Wie kann ich nun damit erfolgreich die Funkschaltsteckdose (Artikel-Nr. 104537) schalten? Beispiel-Code wäre schön.
Der Sender funktioniert mit dem Taster TA1 ohne Probleme. Artikel-Nr.: 68-09 93 68 zeigt mir den Empfang der Werkseinstellung an.
Wie sende ich nun Befehle von ArduinoUNO an FS20 US?
Über Hilfe freue ich mich.

Grüße
Christoph
Aw: FS20 US und Arduino UNO
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
10.01.2014, 20:57
Hier mal ein Codeschnipsel: (evtl. werden noch #include Befehle benötigt): Es wird alle drei Sekunden ein Befehl gesendet und dann der Status ausgegeben + interne Timerzeit



//&** FS20 ********
// Serial1 = RX/TX, Serial = USB-Kabel,
//the house code of all your devices:
//http://www.homematic-inside.de/tecbase/tools/fs20tocul
//ELV 12233344 = CUL 16AF = 22 , 174 dec.
// HC1 HC2
int my_hc ={0x16, 0xAF};

//adresses of all devices:
//ELV Code 1111
int my_ro1 = 0x00; //1111
int my_ro2 = 0x01; //1112
int my_ro3 = 0x02; //1113
int my_ro4 = 0x03; //1114
int my_ro5 = 0x04; //1121
int my_ro6 = 0x05; //1122
int my_ro7 = 0x06; //1123
int my_ro8 = 0x07; //1124


//FS20 Command-IDs
int fs20_cmdID_once = 0xF1;//send Command one time

//FS20 Commands
int fs20_off = 0x00;
int fs20_PreviousValue = 0x11;

// This routine runs only once upon reset
void setup()
{
// Initialize
Serial.begin(9600);
Serial1.begin(9600);
}

// This routine loops forever
void loop()
{
delay(3000); // Wait for 3 seconds

//Send an FS20 command
//send start byte
Serial1.write(0x02);
//send length of command string
Serial1.write(0x06);
//send Command ID
Serial1.write(fs20_cmdID_once);
//send House Code
Serial1.write(my_hc);
Serial1.write(my_hc);
//send Device Adress
Serial1.write(my_ro4);
//send Command
Serial1.write(fs20_off);
//send Command extension
Serial1.write(0xFF);
delay(200);

// print status from FS20 US to USB serial
while(Serial1.available() > 0)
{
Serial.print(Serial1.read(), HEX);
Serial.print(" ");
delay(20);
}
Serial.println();


Serial.print("test ");
Serial.print(millis()); //print timer serial
Serial.println(" ");
}
Aw: FS20 US und Arduino UNO
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
11.01.2014, 08:00
Vielen lieben Dank.
Es funktioniert. Ich musste den Code nur etwas anpassen, da es mit Serial1 Konflikte gab.
Leider kommt hier kein Status im Serial Monitor zurück:
Serial.print(mySerial.read(), HEX);
Wie kann ich das bitte noch ändern?


#include <SoftwareSerial.h>
SoftwareSerial mySerial(14, 15); // für Arduino MEGA
//&** FS20 ********
// Serial1 = RX/TX, Serial = USB-Kabel,
//the house code of all your devices:
//http://www.homematic-inside.de/tecbase/tools/fs20tocul
//ELV 12233344 = CUL 16AF = 22 , 174 dec.
// HC1 HC2
int my_hc ={0x16, 0xAF};

//adresses of all devices:
//ELV Code 1111
int my_ro1 = 0x00; //1111
int my_ro2 = 0x01; //1112
int my_ro3 = 0x02; //1113
int my_ro4 = 0x03; //1114
int my_ro5 = 0x04; //1121
int my_ro6 = 0x05; //1122
int my_ro7 = 0x06; //1123
int my_ro8 = 0x07; //1124


//FS20 Command-IDs
int fs20_cmdID_once = 0xF1;//send Command one time

//FS20 Commands
int fs20_off = 0x00;
int fs20_PreviousValue = 0x11;

// This routine runs only once upon reset
void setup()
{
// Initialize
Serial.begin(9600);
mySerial.begin(9600);
}

// This routine loops forever
void loop()
{
delay(3000); // Wait for 3 seconds

//Send an FS20 command
//send start byte
mySerial.write(0x02);
//send length of command string
mySerial.write(0x06);
//send Command ID
mySerial.write(fs20_cmdID_once);
//send House Code
mySerial.write(my_hc);
mySerial.write(my_hc);
//send Device Adress
mySerial.write(my_ro4);
//send Command
mySerial.write(fs20_off);
//send Command extension
mySerial.write(0xFF);
delay(200);

// print status from FS20 US to USB serial
while(mySerial.available() > 0)
{
Serial.print(mySerial.read(), HEX);
Serial.print(" ");
delay(20);
}
Serial.println();


Serial.print("test ");
Serial.print(millis()); //print timer serial
Serial.println(" ");
}
Aw: FS20 US und Arduino UNO
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
03.06.2014, 20:32
Hallo,
meine Aufgabenstellung ist die gleiche wie schon beschrieben:
Den Mini-UART-FS20-Sender an den Arduino anschließen wie auf Seite 4 der Anleitung beschrieben und dann vom Arduino Schaltbefehle an den UART-Sender schicken, der dann wiederum diesen Schaltbefehl an einen FS-20-Aktor weitergibt.
Denkbar wäre, das am Aduino verschiedene Taster angeschlossen werden, wobei jeder Taster dann im Programmm einen anderen Schaltbefehl an den FS20 UART sendet. Man könnte so einen eigenen Handsender aufbauen.

Den von "arduino" aufgezeigten Sketch habe ich soweit verstanden, er enthält den für den FS20 nötigen Befehlssatz. Auch der Download auf den Arduiono funktioniert, im seriellen Monitor wird auch "Test" mit der vergangenen Zeit dargestellt.

Allerdings wird der Befehl vom FS20 nicht weitergesendet oder kommt dort nicht an? Kontrolliert habe ich die Sendetätigkeit mit dem Diagnosetool von ELV FS20 DT. Ein Empfang wird dann dort nur bestätigt, wenn der Taster am FS 20 UART betätigt wird und dann wird auch nur der Testcode angezeigt "11111111 1111", nicht aber der neue Befehl der vom Arduino auf den FS 20 UART hätte übertragen werden müssen.

Hat jemand eine Idee, was hier schief läuft?
Für Eure Hilfe schon jetzt vielen Dank!
Aw: FS20 US und Arduino UNO
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
07.06.2014, 15:27
Hallo Rennrad,
da der Sender im Testmodus funktioniert, kann man eine Fehlfunktion des FS20US ausschließen. Auch wenn es wie auf Seite 4 angeschlossen wurde, überprüfe bitte nochmal die verdrahtung (RX->TX & TX->RX). Hier liegt nähmlich ein häufig gemachter Anfängerfehler.