apuntes_Arduino/TEST/TEST_Serial-a-Datos-B/TEST_Serial-a-Datos-B.ino

79 lines
2.3 KiB
C++
Executable File

#include <SoftwareSerial.h>
byte dato1, dato2, dato3, dato4, dato5, dato6, contador;
float dato7, dato8;
String fecha;
unsigned long intervalo = 1000;
unsigned long previoMillisLoop = 0;
bool leido;
SoftwareSerial ArduRec(3, 2); //(Rx, Tx)
void setup() {
Serial.begin(9600);
ArduRec.begin(9600);
Serial.println("inicio");
}
void loop() {
unsigned long actualMillis = millis();
if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo) {
Serial.println(contador++);
if (ArduRec.available() > 0) {
Serial.println("Leyendo puerto ArduRec");
dato1 = ArduRec.readStringUntil(',').toInt();
dato2 = ArduRec.readStringUntil(',').toInt();
dato3 = ArduRec.readStringUntil(',').toInt();
dato4 = ArduRec.readStringUntil(',').toInt();
dato5 = ArduRec.readStringUntil(',').toInt();
dato6 = ArduRec.readStringUntil(',').toInt();
dato7 = ArduRec.readStringUntil(',').toFloat();
dato8 = ArduRec.readStringUntil(',').toFloat();
fecha = ArduRec.readStringUntil('\r');
while (ArduRec.available()>0) {
char temp = ArduRec.read();
Serial.println("Sobrante :");
Serial.println(temp);
}
Serial.println("Datos recibidos de ArduRec");
Serial.print(dato1);
Serial.print(':');
Serial.print(dato2);
Serial.print(':');
Serial.print(dato3);
Serial.print(':');
Serial.print(dato4);
Serial.print(':');
Serial.print(dato5);
Serial.print(':');
Serial.print(dato6);
Serial.print(':');
Serial.print(dato7);
Serial.print(':');
Serial.print(dato8);
Serial.print(':');
Serial.println(fecha);
Serial.print('/');
leido = true;
Serial.println(leido);
}
if (leido) {
String datos;
datos += (String)dato1 + ',';
datos += (String)dato2 + ',';
datos += (String)dato3 + ',';
datos += (String)dato4 + ',';
datos += (String)dato5 + ',';
datos += (String)dato6 + ',';
datos += (String)dato7 + ',';
datos += (String)dato8 + ',';
datos += fecha;
Serial.println("Cadena datos recibidos");
Serial.println(datos);
datos = "";
leido = false;
dato1=0;dato2=0;dato3=0;dato4=0;dato5=0;dato6=0;dato7=0;dato8=0;fecha="";
}
previoMillisLoop = millis();
}
}