je ne comprends pas pourquoi la variable addr s'incrémente uniquement quand j'ai connecter
le moniteur série
avait vous une réponse ?
dans ma logique addr++ incrémente la variable toute les secondes or j'attends 10 secondes avant de lancer le moniteur série quand il est lancer la variable addr prends la valeur 1 puis après chaque seconde l'incrément fonctionne
voici le code :
int addr=0;
void displayAddr()
{
Serial.print(addr);
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
displayAddr(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
addr++;
}
ca revient au même, donc tu peux virer du setup addr = 0;
après, normal, comment veux tu voir l'incrémentation si tu lance pas la console?
EDIT : grillé par JF
donc si j'ai bien compris la boucle loop attends la fin de la fonction avant de continuer ?
alors comment faire pour détecter la connexion a un port série pour que cette fonction displayAddr soit appeler uniquement quand le port série est connecter pour éviter le blocage du compteur ?
void loop()
{
displayAddr(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
addr++;
}
ce que tu nous décrit est normal, tu téléverses le prg dans le µ, celui ci démarre et incrémente addr toutes les secondes.
lorsque tu ouvre le moniteur, le µ est reseté et recommence donc avec addr à 0 . et incrémente addr toutes les secondes.
maintenant, le moniteur étant ouvert, réouvre le ( sans le fermer )
tu pourras constater que le µ est bien reseté à l'ouverture/réouverture du moniteur
Comme l'explique dfgh, c'est l'initialisation du terminal qui provoque le reset de l'arduino.
Si tu asabsolument besoin dans une application de pouvoir déconnecter le terminal à chaud, il faut bricoler la carte arduino pour "ouvrir" la ligne de reset. Par contre il ne faudra pas oublier de la re-activer pour télécharger un code.
Suivant les cartes la modification est différente mais généralement elle consiste simplement à retirer le condensateur qui se trouve en série dans la ligne de reset.