Arduino programme (erreurs chaînes de caractères)

Résolu/Fermé
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 - Modifié le 22 juil. 2018 à 19:44
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 - 22 juil. 2018 à 15:12
Bonjour,
j'ai fait un programme Arduino pour télécommande IR.Le voici:



void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 
  pinMode(13, OUTPUT);
}
boolean valpin2(){
  if (analogRead(A0) > 500) {
    return true;
  }else{
    return false;
  }
}

char output = ' ';

void loop() {
  while (valpin2()) {
    digitalWrite(13, LOW);
  }
  output = ' ';
  for (int x = 0; x < 500; x++) {
    if (!valpin2()) {
      output = output + '1';
    }else{
      output = output + '0';
    }
    delay(1);
  }
  digitalWrite(13, HIGH);
  delay(1000);
  int caractere = 1;
  int longueur = length(output)-1;
  int vies = longueur / 2;
  char CH = '11111111000011111111101010101010100000000000000000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111001000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100100000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111100100000000000000000';//code de la touche CH sur la télécommande
  while ((caractere < longueur) && (caractere < length(CH))) {
    caractere++;
    if (int(output[caractere]) != int(CH[caractere])){
      vies = vies - 1;
    }
  }
}




Il est censé vérifier que au moins 50% des caractères sont pareils que dans la variable dans laquelle est écrite le code de la touche(0 et 1).Si oui, il imprime son nom (CH) sur le Serial Monitor.
Mais quand je le vérifie, il me dit ça:
sketch_jul21b.ino: In function ‘void loop()’:
sketch_jul21b.ino:32:31: error: ‘length’ was not declared in this scope
sketch_jul21b.ino:37:35: error: invalid types ‘char[char]’ for array subscript
sketch_jul21b.ino:37:57: error: invalid types ‘char[int]’ for array subscript
A voir également:

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
21 juil. 2018 à 10:43
bonjour, quand tu déclares CH comme char, tu dois utiliser CH pour enregistrer un caractère. et il me semble que tu essaies d'y stocker des centaines.
par ailleurs, tu as déclaré CH et output comme char, et puis tu essaies de les utiliser comme des tableaux.
0
maxpothier Messages postés 37 Date d'inscription samedi 21 juillet 2018 Statut Membre Dernière intervention 28 décembre 2019 1
22 juil. 2018 à 15:12
Merci beaucoup. Mais j'ai trouvé une autre façon de déboguer mon programme(ou presque). Le problème c'est que là je suis pas sur le bon ordi donc j'ai pas le fichier sous la main. Je devrais t'envoyer le programme d'ici une heure(en fait il marche pas non plus, mais en partant de cette version j'ai trouvé un truc qui fait que chaque touche de la télécommande a une lettre comme code, par exemple o barré pour a touche CH.) Merci quand même.
0