DkGrinder Creative Commons License 2016.01.05 0 0 1559

Megint megakadtam :-(

Most egy RS-485-ös relépanelt készíte(k)/(enék) :-D, ami egy Loxone miniszervertől fogadja a parancsokat.

Ez a rész működik is.

Azt hittem bizonyos időnként lefagy az arduino de, nem ez volt a probléma.

Ha a Loxone egy másik eszköznek küld pancsot, azután az arduinó többé már nem fogadja az adatsort.

 


#include <SoftwareSerial.h>                                        // Serial könyvtár
#define SSerialRX 10                                                    // Rx PIN (adás)
#define SSerialTX 11                                                    // Tx PIN (vétel)
#define SSerialTxControl 3                                            // Irányvezérlés PIN
#define RS485Transmit HIGH                                       // Adás magas
#define RS485Receive LOW                                          // Vétel alacsony
#define LEDPin 13                                                        // kontroll LED PIN
SoftwareSerial RS485Serial(SSerialRX, SSerialTX);         //
int byteRead;                                                                // Beolvasott adat

int rele1 = 31;                                                              // Relé 1 PIN
int rele2 = 32;                                                              // Relé 2 PIN
int rele3 = 33;                                                              // Relé 3 PIN
int rele4 = 34;                                                              // Relé 4 PIN
int rele5 = 35;                                                              // Relé 5 PIN
int rele6 = 36;                                                              // Relé 6 PIN
int rele7 = 37;                                                              // Relé 7 PIN
int rele8 = 38;                                                              // Relé 8 PIN

void setup()
{
pinMode(rele1 , OUTPUT);                                              // Relé 1
pinMode(rele2 , OUTPUT);                                              // Relé 2
pinMode(rele3 , OUTPUT);                                              // Relé 3
pinMode(rele4 , OUTPUT);                                              // Relé 4
pinMode(rele5 , OUTPUT);                                              // Relé 5
pinMode(rele6 , OUTPUT);                                              // Relé 6
pinMode(rele7 , OUTPUT);                                              // Relé 7
pinMode(rele8 , OUTPUT);                                              // Relé 8
digitalWrite(rele1, LOW);                                               // Relé 1 OFF
digitalWrite(rele2, LOW);                                               // Relé 2 OFF
digitalWrite(rele3, LOW);                                               // Relé 3 OFF
digitalWrite(rele4, LOW);                                               // Relé 4 OFF
digitalWrite(rele5, LOW);                                               // Relé 5 OFF
digitalWrite(rele6, LOW);                                               // Relé 6 OFF
digitalWrite(rele7, LOW);                                               // Relé 7 OFF
digitalWrite(rele8, LOW);                                               // Relé 8 OFF

Serial.begin(9600);                                                       // Soros port sebessége
pinMode(LEDPin, OUTPUT);                                           // Kontroll LED PIN beállítás
pinMode(SSerialTxControl, OUTPUT);                             // Irányvezérlés PIN beállítás
digitalWrite(SSerialTxControl, RS485Receive);               // Irányvezérlés olvasás állapot
RS485Serial.begin(9600);                                            // Szoftveres RS 485 sebessége
}

void loop()
{

if (RS485Serial.available())                                             //
{

delay(100);
byteRead = RS485Serial.parseInt();                              // Beérkezett Byte olbasás

if(byteRead==9111)
{
Serial.println("KI");
digitalWrite(rele1, LOW); // Relé 1 OFF
digitalWrite(LEDPin, HIGH); // kontroll LED BE
}

if(byteRead==9110)
{
Serial.println("BE");
digitalWrite(rele1, HIGH);                                           // Relé 1 OFF
digitalWrite(LEDPin, HIGH);                                        // kontroll LED BE
}
if(byteRead==9121)
{
Serial.println("KI");
digitalWrite(rele2, LOW);                                           // Relé 1 OFF
digitalWrite(LEDPin, HIGH);                                       //
}

if(byteRead==9120)
{
Serial.println("BE");
digitalWrite(rele2, HIGH);                                         // Relé 1 OFF
digitalWrite(LEDPin, HIGH);                                      // kontroll LED BE
}
delay(10);
digitalWrite(LEDPin, LOW);                                          //kontroll LED KI
}
}