Estimados,
Espernado que tengan un buen día, mi consulta es la siguiente.
Estoy estableciendo una comunicación Serial entre 2 arduinos, uno me captura lo del sensor, y el otro lee la información y la muestra en la pantalla LCD, el tema es que cuando recibo los datos de Temp y Hum, el Display me muestra los valores de temp y humeda en el mismo lugar, para mejor compresión, el programa me lee la información pero no me separa las viables como yo quiero. Ejemplo. T: 20 H:23.
Si todavía no se entiende, recibo los datos por el puerto serial asignado, los datos recibidos los guardo en una cadena, y trato de separa en variables los datos de esa cadena, pero no logró separalos.
Adjunto el programa de recepción, a ver si me ayudan.
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define rxPin 2
#define txPin 3
SoftwareSerial mySerial(rxPin, txPin);
char datos[13];
int posicion = 0;
char *resultado = NULL;
char separador [] = "AB";
int valores[] = {0,0};
int temperatura;
int humedad;
unsigned long Tiempo_LCD;
unsigned long Tiempo_Tx;
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
delay(1000);
lcd.begin(16, 2); // Hay que inicializar el LCD
lcd.print("Mediciones");
lcd.setCursor(0,1);
lcd.print("T= H.R= ");
}
void loop() {
boolean segmentacion;
while (mySerial.available()>0){
delay(5);
datos[posicion] = mySerial.read();
posicion++;
segmentacion = true;
}
posicion = 0;
if (segmentacion == true){
int index = 0;
resultado = strtok( datos, separador );
while ((resultado != NULL) && (index < 3)){
valores[index++] = atoi(resultado);
resultado = strtok( NULL, separador );
}
segmentacion = false;
}
temperatura = valores[0];
humedad = valores[1];
if((millis() - Tiempo_LCD) > 500){
Serial.print(temperatura);
Serial.print(humedad);
lcd.setCursor(2,1);
lcd.print(temperatura);
lcd.setCursor(12,1);
lcd.print(humedad);
delay (1000);
Tiempo_LCD = millis();
}
}
Saludos, y agradesco su ayuda.