Ретранслятор на arduino

Нет ответов
Siegurd
Offline
Зарегистрирован: 16.05.2017

Здравствуйте, возникла проблема с реализацией кода для построения ретранслятора на arduino nano

Структурная схема оборудования которое есть и которое я хочу реализовать:

Что гуляет по проводам:

С компа поступает запрос длиной в 7 бит, а оборудование на AVR отвечает на запрос посылкой длиной либо 78 бит, либо 138 бит в зависимости от запроса. Само оборудование не шлет ответов без запросов.

Оборудование подключил к 2 и 3 пинам arduino nano. Скорость выставлена в ПО и в оборудовани, и соответственно в arduino nano на 57600.

Код:


#include <SoftwareSerial.h>
SoftwareSerial HW = SoftwareSerial(2, 3);
int receivedByte1;
int receivedByte2;
void setup() {
  HW.begin(57600);
  delay(20);
  Serial.begin(57600);
  delay(20);
}

void loop() {

  while  (Serial.available() ) {
    int receivedByte1 = Serial.read();
    HW.write(receivedByte1);
  }
  
  while  (HW.available() ) {
    receivedByte2 = HW.read();
    Serial.write(receivedByte2);
  }

}

Оборудование видит правильный запрос, и выдает ответ, но переадресация ответа на ноутбук получается неправльной.

Вот осцилограмма ответа который пришел от оборудования на arduino nano и который arduino nano передала на ноутбук:

 

Очевидно, что проблемма в обработке пакета от оборудования, но как реализовать правильную обработку и последующую пересылку?