Convertir Char en nombre int ?

Bonjour , je n' arrive pas a trouver sur le net comment convertir un char en nombre decimal entier ...

j ' obtiens savaleur en ASCII en faisant :

int new = ancien;

mais ensuite comment passer de la forme ASCII en decimal svp ?

C'est implicite. Il n'y a rien de particulier à faire.

char titi = 10;
int toto = titi;
Serial.println(toto);

Pour la conversion ASCII, il y a la fonction itoa().

Bonjour,

Si to char est en ascii, comme les codes ascii des chiffres se suivent in suffit de soustraire le code ascii de 0

int val=caractere-'0';

Mais est ce bien ce que tu veux faire? Tu l'obtiens comment ton car?

oui c ' est bien cela , je viens de trouver sur internet :slight_smile:

en fait lorsque je fait :

Serial.println(code) ;

si code vaut 1 il me renvoie 49 , tres pratique XD pour faire des verifications ou des calculs apres .

merci a vous pour les infos .

la solution est donc bien :

serial.print(code-'0');

et la ca renvoie donc bien un '1' .

merci a vous !!

un autre probleme maintenant ^^

en fait je fais une boucle pour avoir mes char ' code ' qui sont au nombre de 4 , et qui me fournissent donc un code a 4 chiffres .

j ' ai besoin de mettre ca dans une chaine de caracteres du style : "1234" .

apres plusieurs tentatives de conversion , jen ' y arrive pas .

Le c'est tout aussi simple: il suffit d'utiliser atoi.

ok je vais regarder la fonction atoi () ;

je ne crois pas l' avoir vu dans la doc , mais je vais y faire un tour quand meme , sinon gogole .

merci encore !

je ne crois pas l' avoir vu dans la doc

Si c'est de la doc arduino dont tu parles c'est normal.
Sauf en ce qui concerne les bases à raz les pâquerettes du C, Arduino ne documente que ses fonctions et classes.
Pour le reste c'est très clair qu'il n'existe pas de langage arduino il n'existe que du C et du C++.

Conséquence : pour progresser il faut aussi lire des cours et des tutos de C et C++.

Bonjour !
Je viens souvent m'instruire ici, mais je viens de m'inscrire pour la 1° fois !
Je voudrais obtenir le résultat numérique après digitalRead de deux entrées (histoire de voir si on peut debouncer un encodeur rotatif)
si j'ai 0+0 = 0
0 +1 = 1
1+0 = 2
1+1 = 3

j'y arrive pas !

Bonjour,

Au lieu de te greffer sur un sujet qui n'a rien à voir et qui date de 3 ans, crées ton propre sujet.

Pour répondre à ta question, il suffit de faire

  val=digitalRead(pin1)|(digitalRead(pin2)<<1);

pin1 et pin2 étant le numéro des pins ou est connecté l'encodeur.

Merci Kamill, je vais prendre le temps de mieux comprendre le fonctionnement du site !
Merci pour ta réponse !