не могу справиться с прогой для MAX485

Тема в разделе "Arduino & Shields", создана пользователем FGD, 26 ноя 2016.

  1. FGD

    FGD Нерд

    У нас имеется передатчик с подключённой кнопкой и приёмник со светодиодом, посмотрите у меня где могут быть ошибки:


    передатчик:
    #include <SoftwareSerial.h>
    #define SSerialRX 0 //Serial Receive pin
    #define SSerialTX 1 //Serial Transmit pin
    #define SSerialTxControl 10 //RS485 Direction control
    #define button 7
    #define RS485Transmit HIGH
    #define RS485Receive LOW
    SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
    int byteReceived;
    int byteSend;

    void setup()
    {
    // Start the built-in serial port, probably to Serial Monitor
    Serial.begin(9600);
    pinMode(button, INPUT);
    pinMode(SSerialTxControl, OUTPUT);
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.begin(4800);
    }

    void loop()
    {
    if (Serial.available())
    {
    byteReceived = digitalRead(button);
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.write(byteReceived);
    delay(10);
    }
    }


    приёмник:
    #include <SoftwareSerial.h>
    #define SSerialRX 0
    #define SSerialTX 1
    #define SSerialTxControl 10
    #define RS485Transmit HIGH
    #define RS485Receive LOW
    #define Pin13LED 3
    SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
    int byteReceived;
    int byteSend;

    void setup()
    {
    Serial.begin(9600);
    pinMode(Pin13LED, OUTPUT);
    pinMode(SSerialTxControl, OUTPUT);
    digitalWrite(SSerialTxControl, RS485Receive);
    RS485Serial.begin(4800);
    }


    void loop()
    {
    //Copy input data to output
    if (RS485Serial.available())
    {
    byteSend = RS485Serial.read();
    digitalWrite(Pin13LED, HIGH);
    delay(10);
    digitalWrite(Pin13LED, LOW);
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.write(byteSend);
    delay(10);
    digitalWrite(SSerialTxControl, RS485Receive);
    }
    }
     
  2. ostrov

    ostrov Гуру

    Тэг кода? Нет, не слышал.
     
  3. FGD

    FGD Нерд

    :(
     
  4. FGD

    FGD Нерд

    вот ещё пример client.print("<html>");
     
  5. DKo

    DKo Нерд

    Лично у меня подход с SoftwareSerial очень криво работал.
    Подключайте лучше к аппаратным пинам UART и используйте родной объект Serial.......
    Да, придется отключать устройство MAX485 каждый раз при перепрошивке, но работать должно стабильнее