1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | int opto= 13; int etat = 0; int ancien_etat = 0; double chrono = 0; long chrono_depart = 0; long duree_test = 15000; int nb_chgt = 0; double vitesse; double nb_litre; char affiche = 0; int cardispo = 0; int debut = 0; char carlu = 0; void setup () { Serial.begin (9600); pinMode(opto,INPUT); } int fonction() { chrono_depart = millis(); return chrono_depart; } void loop() { if(carlu == 0) { Serial.println("Voulez-vous connaitre votre consommation d'eau instantannee?"); Serial.println("Saisissez 1 pour OUI ou 0 pour NON"); Serial.println(""); cardispo = Serial.available(); while(cardispo > 0) { carlu = Serial.read(); cardispo = Serial.available(); } } else if(1) { etat = digitalRead(opto); chrono = millis (); int fonction (); } else if (carlu > 0) { Serial.println("Veuillez patienter 15 secondes."); Serial.println(""); if (chrono - chrono_depart < duree_test) { if (etat != ancien_etat) { nb_chgt = nb_chgt + 1 ; ancien_etat = etat; } } } else { if (affiche == 1) { vitesse = nb_chgt * 0.4; chrono = chrono / 15000; nb_litre = vitesse * chrono * 0.1 /4; Serial.print("Vitesse: "); Serial.print(vitesse); Serial.print("tours/min."); Serial.println(""); Serial.print("Votre consommation d'eau instantannee est de : "); Serial.print(nb_litre); Serial.println(" litres d'eau."); Serial.println(""); affiche = 2; } } } |
Le soucis sur ce code (non fini sur la fin, car le début du code ne fonctionne pas) est que lorsqu'on lance le moniteur série le programme ne prends pas en compte la saisie de l'utilisateur… Un peu gênant quoi… Si quelqu'un aurait une solution à ce premier soucis je vous prie de m'en faire part. Merci bien.
+0
-1