{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu.
{
int i;
for (i = 0; i < buflen; i++)
{
Serial.write(buf[i]); }
Serial.println("");
}
Donc, en considérant que tu utilise VirtualWire (ce que j'ai crut reconnaitre) et que ton problème concerne uniquement les float (ce qui veux donc dire que tu as déjà testé pour tous les autres types), je pense que le problème vient uniquement de la fonction sprintf qui n'est pas sensé fonctionner avec des float.
J'ai une idée de solution, ce serais de multiplier ta valeur flottante par 10, 100, 1000 suivant le nombre de chiffre significatif que tu souhaite garder, et d'envoyer a la place une variable de type int.
Je n'ai jamais utiliser d'arduino, mais éssaies de l'envoyer en ascii (chaine de caractère)
puis reconverti-le à la reception
Cordialement
Il n'y a pas de honte à ne pas savoir (faire) quelque chose que l'on n'a pas appris
transmettr un float un émetteur et récepteur 432
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !