Hallo
Vielleich hat jemand von euch eine Idee oder Hinweis.
Ich habe ein Freeduino per NewSoftUART Pin 2,3 (da Ausgabe per Terminal
über USB erfolgt und daher Pin 0,1 belegt ist) mit mit einen TCM120 von
EnOcean.
Die Ausgabe von Telegrammen funktioniert ausgezeichnet. Jetzt würde ich
gerne den TCM per Befehl (Transmit Command Telegram) ansprechen und die
Antwort (RMT) an den Terminal ausgeben.
TX_TELEGRAM sollte eigentlich OK zurückgeben.
Was mache ich falsch?
Wie bekomme ich die 127 AdressID zum anlernen von Aktoren?
/**
* Auslesen/Aufrufen TCM120
*
* TCM120
* Tx[Pin8]->Arduino Rx[Pin2]
* Rx[Pin7]->Arduino Tx[Pin3]
*
* @V0.1 2011.07.23: Auslesen Telegram TCM120
* @V0.2 2011.07.24: Befehle an TCM120 per Terminal senden
* @copyright
* @license
*/
#include <NewSoftSerial.h>
//**** VARIABLEN
byte bTcmTx=0;
int ledPin=13;
//**** NewSoft Parameter
const int rxPin=2, txPin=3 ;
NewSoftSerial mySerial(rxPin, txPin);
//**** EINGABE mit CR
#define INLENGTH 20
#define INTERMINATOR 13
/**
* Setup konfiguriert Digitalport, Ports, ect
*/
void setup()
{
//**** Led Test
pinMode(ledPin,OUTPUT);
digitalWrite(ledPin,HIGH);
delay(150);
digitalWrite(ledPin,LOW);
//**** Datenrate Terminal
Serial.begin(9600);
Serial.println("Telegramme TCM120");
//**** Datenrate fuer SoftUART Tx/Rx Schnittstelle - absenden Transmit Command Telegram an TCM120
mySerial.begin(9600);
mySerial.print("TX_TELEGRAM");
}
/**
* Schleife
* Liest TCM120 Telegramme ueber SoftUART Tx an Terminal aus
*/
void loop() // run over and over again
{
//**** Ausgabe Terminal Telegramme
if (mySerial.available()) {
//**** Zeilenvorschub vor A5
bTcmTx=(char)mySerial.read();
if(bTcmTx==165){
Serial.println("");
digitalWrite(ledPin,HIGH);
delay(150);
digitalWrite(ledPin,LOW);
}
Serial.print(bTcmTx,HEX);
}
//**** Ausgabe Terminal
if (Serial.available()) {
mySerial.print((char)Serial.read());
}
}
Vielen Dank im voraus