Go Down

Topic: Stockage d'une variable depuis une trame? (Read 1 time) previous topic - next topic

irahaglore

Bonsoir,
Ceci est mon premier post sur le forum, je découvre doucement les possibilités de l'arduino.

Voila, j'utilise une balance industrielle qui envoie sur le port série une "trame" du type :
ID 014836968363890
TIME 114532
WEIGHT 22.6

J'ai donc réussi à décoder cette trame et l'afficher dans le terminal.

Maintenant je souhaiterais afficher les infos sur un lcd, mais je ne sais pas comment m'y prendre avec le code, il faudrait que l'affichage soit du type:

Numero de serie : 014836968363890
Heure : 11:45:32
Mesure poids : 22,6 Kg

Je sais afficher les infos "qui ne changent pas" mais pour les variables je suis bloqué.

Si vous avez des suggestions ou des exemples de code, je suis preneur...

Merci

churchill

Salut,
Pour afficher des infos qui varient, il te faut utiliser la famille des fonctions printf du C.

Code: [Select]

#include <stdio.h>
a=5;
printf("La valeur de a est %d",a);

donne :
La valeur de a est 5

Pour plus de détail, il te faut voir le playground, notamment la dernière partie qui traite de l'affichage sur LCD.

churchill

irahaglore

Merci Churchill pour ta réponse, j'ai regardé sur  http://www.cplusplus.com/reference/clibrary/cstdio/printf/ et j'y ai trouvé des choses interressantes.

Par contre, lorsqu'on fait un serial.begin dans la boucle, l'arduino lit caractère âpres caractère non?

Soit par exemple dans mon cas : W puis E puis I puis G puis H puis T ?  Mais il ne lit pas d'un coup "weight" alors comment fait t-on pour lui dire attend de lire weight, puis ecrit le nombre qui suit...  
Ou mieux, et je ne sais pas si cela se fait : Lui dire mets dans ton buffer toute la trame puis extrait ce qui est intéressant.
C'est sur ce point que j'ai de grosses lacunes, par contre pour la gestion du lcd j'ai pas de souci.

irahaglore


flyaway

Salut,

tu stock la trame décodé dans quelle facon? dans un variable de type char?
Peut etre que dès le décodage de la trame tu pourrais compté chaque caractere et au bout X carateres tu change de variable

Gromain59

#4
Aug 17, 2010, 10:47 pm Last Edit: Aug 17, 2010, 10:47 pm by Gromain59 Reason: 1
une piste si tu es sûre de recevoir toujours les données sous le même format:

ID 014836968363890
TIME 114532
WEIGHT 22.6

Dans ce cas tu peux utiliser la fonction scanf de la lib stdio.h  (je l'utilise souvent pour décoder des trames)
1. tu récupères la trame compléte dans un string en utilisant "ID" comme repère de début de trame, grâce à une boucle
2. ensuite tu appliques la fonction scanf au string. La fonction récupéra alors les valeurs de ID, TIME et WEIGHT dans les variables que tu auras associés.
Il y a pas mal d'exemple de scanf sur le web.

Eventuellement je peux te fournir un exemple de code.
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

Go Up