2010-07-24 18 views
1

Je souhaite envoyer des entiers à Arduino via une connexion série. Par exemple, lorsque je vous envoie « 1 » les données reçues par Arduino est « 49 » et quand j'envoie « un » les données reçues par Arduino est « 97 »Comment envoyer des entiers à arduino via série?

Il y a deux fonctions dans Python, ord() et unichr() . Ils se sont comportés comme ceci:

unichr(97) = u"a" 
ord(u"a")=97 

Existe-t-il des fonctions C équivalentes?

Répondre

2

Tant que vous avez vos caractères stockés sous forme de leur valeur ASCII, le plus simple - si votre objectif est de convertir unique chiffres - est de soustraire l'ASCII valeur de 0: '8'-'0' vous donnera la valeur unsigned char 8. Vous devez vous assurer que c'est un chiffre et pas un caractère, mais cela se fait facilement en vérifiant si le résultat est inférieur ou égal à 9.

De même, vous obtenez la valeur ASCII d'un seul chiffre z par ajouter la valeur de '0'.