Dans mon projet de domotique, un module principal (branché sur ma box) envoie une commande sans fil grâce à la libraire VirtualWire, puis le module recevant exécute une action en fonction de la commande envoyée.
Dans l'exemple de cette libraire (sur lequel je me base), la commande reçue est affichée grâce à la fonction Serial.print, sauf que dans mon cas, j'aimerais stocker la commande reçue dans une variable puis la comparer à des mots clés qui permettent de définir l'action à mener.
Mais je n'y arrive pas ! Un peu d'aide svp ?!
*1 à la fin de for, Serial.print affiche la totalité de la commande. Comment peut-on la stocker dans la variable msg ?
Ton message est déjà dans une variable qui est le tableau "buf"... (qui est un tableau de uint8_t, qui je pense doit etre un typedef de char...)
Tu peux ensuite faire des comparaisons avec la fonction "strcmp" (string compare) par exemple...
Toujours rien ! Je dois avouer que ça commence à être un peu frustrant !!!
J'ai même essayé avec une condition toute simple qu'il soit différent de 5 mais toujours rien !
Le problème c'est que le récepteur est un DIY donc impossible de voir un écran le Serial.print !
Pour y remédier, j'attends de recevoir les condensateurs qui me manquent pour monter un émetteur DIY et pouvoir utiliser mon arduino avec le même code que le récepteur DIY et donc afficher le contenu Serial !
Frustré parce qu'à chaque changement de code, je dois démonter les 2 microcontrôleurs (arduino et DIY), uploader le nouveau puis les ré-installer
By the way, c'est quoi la différence entre caractère et valeur ?! (pour le post un peu plus haut)
Plus clairement, une variable 'a' vaut 5, on peut donc dire que sa valeur est de 5 (la valeur stockée en mémoire est 5).
Une variable 'b' vaut le caractère '5', sa valeur est "le caractère 5" mais en terme informatique sa valeur est "le code ascii du caractère '5'" (soit une valeur stockée en mémoire de 53).
Donc tester avec 5 (le chiffre) ou avec '5' (le caractère) se n'est pas la même chose.
Pourquoi bizarrement ? Comme je te l'ai indiqué plus tôt ta variable 'buf' devait surement etre un type char (renommé) donc c'est plutot logique que le test fonctionne
ouaip, pas forcément utile dans ton cas (encore que) mais sinon effectivement atoi prend en parametre la chaine de caractère (pointeur sur un char) et retourne un int (le nombre trouvé)...
(attention, il faut que la chaine finisse correctement par un '\0' pour être sur de fonctionner, sinon ca plante (exemple)).
× 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 !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !