Je voudrai fabriquer un chronomètre bluetooth Arduino, mon application Android a 3 boutons principales, +, pour ajouter 1 au compteur, - pour enlever 1 au compteur et FIRE!!! pour lancer le décompte.
Les deux premiers boutons marchent, j'arrive a ajouter ou a enlever 1, mais je n'arrive pas a lancer le compte a rebours. J'utilise une carte Arduino un, un afficheur 7 segments TM1637 et un module bluetooth HC-06.
Voici mon code:
Savez vous écrire un code qui effectue le compte à rebours (pour le moment sans le BT) ?
sinon votre code de réception sur le port série n'est pas top, il peut conduire à des réceptions erratiques. Si vous voulez comprendre comment bien écouter le port série vous pouvez jeter un oeil à mon petit tuto sur le sujet
Pense aussi à lire les messages épinglés en haut du forum français, tu apprendras à poster un code. Ensuite, édite ton message et corrige la manière de poster ton code (les balises ad-hoc). Merci
Pense aussi à lire les messages épinglés en haut du forum français, tu apprendras à poster un code. Ensuite, édite ton message et corrige la manière de poster ton code (les balises ad-hoc). Merci
+1 .... et tu pourras auss en profiter éditer le titre du message ('titre à la con' selon les termes du modérateur)
Merci pour ces réponses.
Je sais déjà faire un compte a rebours, en utilisant :
for (int i=10 ; i>=0 ; i--){
display.showNumberDec(i);
delay(1000);
}
Au départ, mon afficheur 7 segments affiche 0, j'arrive a le mettre le nombre de seconde voulu, mais je n'arrive pas a faire un compte a rebours a partir de ce nombre.
A ce niveau int i=i, i ne vaut rien, essaie de mettre ça int i=10 et tu comprendra.
La confusion provient du fait que tu as 2 variables qui ont le même nom, comme, dans ta boucle de décompte tu reprends, avec int i, ce nom et de ce fait ta boucle ne "voit" plus l'autre, en dehors de ton décompte change ce i en autre chose.
Le problème c'est que je ne veux pas que i=10, je vois bien qu'en faisant ceci, mon afficheur affiche directement 10, or je veux qu'il commence le compte a rebours avec la valeur "actuelle" de i.
lesept:
Prends l'habitude de donner des noms explicites à tes variables, même si ces noms peuvent devenir longs. C'est plus facile de programmer ainsi.
'j' peut devenir : compteurBoucle
'i' peut devenir : valeurCourante
Alors 100% avec lesept!
Des noms longs et explicites, premièrement ne "mangent pas de pain" (pas d'octets mémoire gaspillés dans l'Arduino) et souvent, s'ils sont bien choisis, évitent de mettre des remarques pour dire quoi.
Dans le cas de la boucle for (int i, il est usuel d'utiliser de petits nom car on a ces variables "sous le nez", mais dès que la variable devient globale.....
Bonne programmation et bien du plaisir!
Cordialement
jpbbricole
samuelkoh_lanta:
Le problème c'est que je ne veux pas que i=10, je vois bien qu'en faisant ceci, mon afficheur affiche directement 10, or je veux qu'il commence le compte a rebours avec la valeur "actuelle" de i.
Bonjour,
La première partie du for est facultative (les autres aussi d'ailleurs)
for ( ; i>=0 ; i--){
va partir à partir de la valeur courante de i.
Bien sur il faut que i soit défini hors d'un for
La première partie du for est facultative (les autres aussi d'ailleurs)
for ( ; i>=0 ; i--){
va partir à partir de la valeur courante de i.
Bien sur il faut que i soit défini hors d'un for
Oui, c'est excellent, mais pour la lecture du programme, surtout pour un débutant, c'est pas pratique.
Surtout, ça modifie la valeur de la variable globale, c'est pas forcément le but, s'il en a besoin ailleurs.