Problema con codigo usando SOFTWARESERIAL.H

Buenas tardes a todos llevo un tiempo intentando realizar un proyecto donde mi arduino lance un comando("Q1") por rs232 a una maquina y lea la respuesta, por supuesto mi arduino tiene un conversor ttl a rs232.

He probado dos codigos uno es este

#include <SoftwareSerial.h>
SoftwareSerial wiSerial(2, 3); // RX, TX
String q1 = "Q1";
long previousmicros = 0;
long interval = 100000;
void setup() {
  Serial.begin(9600);
  delay(200);
  wiSerial.begin(2400);
}
void loop() {
  unsigned long currentmicros = micros();
  if (currentmicros - previousmicros >= interval)  {
    previousmicros = currentmicros;
    wiSerial.write("Q1");
  }
  if (wiSerial.available() > 0) {
    //Serial.write(wiSerial.read());
    Serial.println(wiSerial.readString());
  }
  // delay(1000);
}

Este es mi otro código que he probado

#include <SoftwareSerial.h>
SoftwareSerial wiSerial(2, 3); // RX, TX
String q1 = "Q1";
void setup() {
  Serial.begin(9600);
delay(200);
wiSerial.begin(2400);
}
void loop() {
  wiSerial.write("Q1");
  if (wiSerial.available() > 0) {
    //Serial.write(wiSerial.read());
    Serial.println(wiSerial.readString());
  }
  delay(1000);
}

En ambos código he podido comprobar que nunca entra en el if(serial.avalible()), me he quedado sin ideas alguien me puede echar una mano ?
Por si sirve de ayuda si me conecto directamente con el ordenador usando PUTTY con las opciones de parity en none, flowControl en none, local echo "force on" y local line editing "force on" funciona perfectamente
Gracias por adelantado
Un saludo