Variable texte

essayez cela - j'ai mis des commentaires, mais regardez les références pour:

  • comment déclarer un tableau

  • les indices des tableaux commencent à 0

  • n'oubliez pas que l'ASCII de base n'a pas d'accents

  • d'un point de vue cohérence, vaut mieux utiliser byte pour les PINs que char car vous ne représentez pas un caractère

  • je me suis permis de modifier un peu le code pour ne pas travailler avec des nombres flottants qui prennent plus de place en mémoire et rester à faire des maths en nombre entiers (au lieu de convertir la tension en Volts autant conserver le nombre entier que vous lisez et comparer avec 512 pour avoir par exemple 2.5V). vous avez des pertes de précisions avec les nombres flottants et les calculs sont bcp plus lents. Je ne convertis donc qu'à l'affichage.

// déclaration des broches utilisées
const byte ledPin = 2;                                   // Une LED pour indiquer s'il fait jour
const byte capteurPin = 0;                               // Broche A0 sur laquelle va être connecté le pont diviseur de tension

// Variable
int tension = 0;          // variable qui va enregistrer la tension lue en sortie du capteur
int seuilObscurite = 512; // valeur entre 0 et 1023, seuil qui détermine le niveau auquel l'obscurité est présente
const char * EtatLedText[] = {"Led allumee", "Led eteinte"}; // les index de tableau commencent à 0. pas d'accents
int EtatLedBit = 0;

void setup()
{
  // définition des broches utilisées
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);                             // la voie série pour monitorer
}

void loop()
{
  tension = analogRead(capteurPin) ;  // conversion de cette valeur en tension

  if (tension >= seuilObscurite)
  {
    digitalWrite(ledPin, HIGH);     // On allume la LED
    EtatLedBit = 0;                 // index dans le tableau
  }
  else
  {
    digitalWrite(ledPin, LOW);      // On éteint la LED
    EtatLedBit = 1;                 // index dans le tableau
  }

  // envoie vers l'ordinateur, via la liaison série, la valeur de la tension lue
  Serial.print("Tension = ");
  Serial.print(((float) tension * 5.0) / 1023.0, 2); // on calcule en volts, imprimé avec 2 chiffres de précision
  Serial.println(" V");
  Serial.print(" -> ");
  Serial.print("Led = ");
  Serial.print(EtatLedBit);
  Serial.print(" -> ");
  Serial.println(EtatLedText[EtatLedBit]);

  delay(5000);  // délai pour ne prendre des mesures que toutes 5 secondes
}