Manipuler valeurs carte SD

Bonjour, je dois faire un programme dans lequel je récupère des valeurs sur ma carte sd et je les manipule ensuite. Mais malheureusement, tout plante et ça ne se passe pas vraiment comme prévu. J'ai fais des test de mon coté et je pense avoir identifié la source du problème, je vous montre un code très simple qui le met en évidence :

int c = fichier.read();
Serial.write(c);
int d = fichier.read();
Serial.write(d);
c = c+d;
Serial.write(c);

Ma console m'affiche : 6 8 n.
Les premiers caractères de ma carte sont bel et bien 6 et 8 mais c'est l'addition qui plante.

Merci d'avance,
Baptiste.

code ascii de 6 = 54 decimal
code ascii de 8 = 56 decimal
code asci de n = 110 decimal

Bonjour,

Serial.write() écrit un octet ou une série d'octets, ce qui donne le résulat expliqué par dfgh.
Si on veut afficher la valeur en décimal, il faut utiliser Serial.printf() comme indiqué dans description de write

D'accord, merci pour vos reponses rapides. Et du coup, comment je fais pour que 6 + 8 soit egales a 14 ? Je dois convertir les valeurs que je récupère ?

Merci d'avance,
Baptiste.

En fait je vais faire moi même la fonction étant donné que je n'ai que 0 ou 1 en valeur (oui c'est du binaire). Merci pour votre aide, je clos ce sujet si je réussis sinon je reviendrai vers vous :wink:

Voilà, j'en ai fait une fonctionnelle pour les chiffres (rassurez vous j'ai pas pris tout ce temps à la faire ^^). C'est pas forcement très propre mais pour ceux que ça intéresse, voici le code :

int DecToInt(int c)
{
  int i = 0;
  int a = 48;
  int ok = 0;
  while(i<=9 || ok == 0)
  {
    if (c == a)
    {
      c = i;
      ok = 1;
    }
    a++;
    i++;
  }
  return c;
}

C'est bien compliqué! Sachant que les codes ASCII des chiffres se suivent, il suffit de soustraire le caractère '0'

int DecToInt(int c)
{
  return c-'0';
}

et le plus simple c'est de stocker sur la carte sd les valeurs décimale plutôt que les valeurs ascci ...