Saludos A todos en el Foro, lei por ahi que en arduino no se pueden formatear cadenas con sprintf a partir de variables float, sin embargo utilice el codigo que dejo enseguida, y veo que si funciona correctamente.
¿Alguien que tenga experiencia en el tema? o ¿Es que eso era en las primeras versiones del IDE Arduino y ya lo corrigieron?
Mucho agradecere sus comentarios.
Esta es la salida que me da el Monitor serial:
Como veran, salvo los "ceros" que por ahora estan de mas, veo que la funcion sprintf hace lo que debe.
¿Alguien que tenga experiencia en el tema? o ¿Es que eso era en las primeras versiones del IDE Arduino y ya lo corrigieron?
Mucho agradecere sus comentarios.
C++:
/*leer temperatura y humedad de senesores DHT11 y DS18B20
* usando el mismo Pin de entrada (pin4)
*
*
*/
#include "DHT.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4
#define DHTTYPE DHT11 // DHT 11
DHT dht(ONE_WIRE_BUS, DHTTYPE);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
dht.begin();
sensors.begin();
}
void loop() {
float HE=dht.readHumidity();
float TE=dht.readTemperature();
Serial.print("Humedad:");Serial.print(HE);
Serial.print(" TempE:");Serial.print(TE);
sensors.requestTemperatures(); // Solicitamos obtener temperatura de DS18B20
float TI=sensors.getTempCByIndex(0);
Serial.print(" TempI:=");Serial.println(TI);
char str[50];
sprintf(str, "Humedad:%f TempE:%f TempI:%f", HE, TE, TI);
Serial.println(str);
Serial.println("=============================");
delay(2000);
}
Esta es la salida que me da el Monitor serial:
Código:
=============================
Humedad:34.00 TempE:23.00 TempI:=22.94
Humedad:34.000000 TempE:23.000000 TempI:22.937500
=============================
Como veran, salvo los "ceros" que por ahora estan de mas, veo que la funcion sprintf hace lo que debe.