Bonjour à tous,
J’essaye depuis quelque jours à faire un programme et une application AI2 ( qui est finis ), mais je rencontre quelques petits problème avec le programme. En effet, il y a une interruption dans le programme et lorsque j’execute un Serial.print, il n’y a aucun problème, alors que lorsque je cherche à executer un Serial.read, rien ne se passe. Je ne comprend pas le problème, j’essaye de trouver des alternatives pour éviter ce problème mais rien n’y fait, c’est pour cela que je vient içi pour essayer de comprendre et regler cela au plus vite . Le bout du code où je crois que ça coince :
NbTopsFan = 0; // initialiser NbTopsFan à 0, il est prêt pour les calculs
sei(); // DEBUT interruption
delay (500); // Attendre 0,5 seconde
cli(); // FIN interruption
Calc = (NbTopsFan * 60 / 7.5);
x = Calc/3600;
y = y + x;
/* Serial.print("Valeur analogique du potentiometre : ");
Serial.print(valeurPotentiometre); // afficher la valeur analogique du potentiomètre
Serial.print(" // ");
Serial.print("Nombre de litre utilises : ");
Serial.println (y); // afficher le nombre de litre utilisés ( pour faire les tests )
*/
// if there's any serial available, read it:
while (Serial.available() > 0) {
int index=Serial.read(); // lire un premier caractère
// controle éventuel : décommenter pour voir ce qui arrive
// Serial.print("index : "); Serial.println(index);
// filtrer : il doit etre une lettre minuscule ou majuscule
if(index >= 'A' && index <= 'z'){
int valeur = Serial.parseInt();
// controle eventuel de la valeur
// Serial.print("valeur : "); Serial.println(valeur);
// traitement
switch(index){
case 'a':
POS1 = valeur;
EEPROM.write(1, valeur);
digitalWrite(LED, HIGH);
break;
case 'b':
POS2 = valeur;
EEPROM.write(2, valeur);
digitalWrite(LED, LOW);
break;
case 'c':
POS3 = valeur;
EEPROM.write(3, valeur);
break;
case 'd':
POS4 = valeur;
EEPROM.write(4, valeur);
break;
case 'e':
Serial.println(y);
break;
}
}
}
Si vous avez besoin de plus de code pour comprendre d’où vient le problème ( comme par exemple le void rpm, n’hésitez pas à me demander )
Merci d’avance