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