Variable addr non incrementé

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++;
}

Et comment tu sais que sans le moniteur série elle ne s'incrémente pas ?

A part ça édite ton message et mets le code entre les balises "code"

bonjour,
déjà

int addr;

et

addr = 0;

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 :slight_smile:

infobarquee:
EDIT : grillé par JF :slight_smile:

:smiley:

infobarquee:
bonjour,
déjà

int addr;

et

addr = 0;

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 :slight_smile:

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

huguenotte:
....................pour éviter le blocage du compteur ?

Bonjour,

Il n'y a pas blocage si le moniteur série est absent. Loop continue à tourner.

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.