LOCODUINO

Aide
Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 16 avril 2024

Visiteurs connectés : 64

Ces tableaux qui peuvent nous simplifier le développement Arduino

. Par : bobyAndCo

Il est par exemple assez fréquent de voir des programmes où la déclaration et l’initialisation des broches sont faites de la manière suivante : const int Pin23 = 23; const int Pin24 = 24; const int Pin25 = 25; const int Pin26 = 26; const int Pin27 = 27; const int Pin28 = 28; ... Et parfois, les listes sont bien plus longues. Et puis, (...)

Retourner à l'article

Vous répondez à :

 

Merci aussi pour vos questions fort intéressantes également.

Il y a-t-il un avantage à déclarer une constante par l’intermédiaire d’un directive (« #define NBRE_AIGUILLAGE 16 ») plutôt que que par la méthode "habituelle" (« const byte nbre_aiguillages = 16 ; »)

Utiliser les constantes de préprocesseurs #define est très utilisé en programmation C/C++. Regardez par exemple comment sont écrites les bibliothèques.

 

Cependant, quand je lis la page du site Arduino, je constate qu’ils déconseillent l’utilisation de #define au profit de ce que vous appelez justement la méthode habituelle.

https://www.arduino.cc/en/Reference...

 

Jean-Luc avait écrit un petit article sur les constantes :
http://www.locoduino.org/spip.php?a...
où il mettait en garde sur le choix judicieux des noms pour éviter toute déconvenue. Il semble bien que ce soit pour cela que le site Arduino en déconseille l’usage.

 

Personnellement, je trouve tellement pratique leur utilisation. J’utilise un nom en majuscule qui est une convention et qui me permet de les identifier rapidement dans le code.

S’il y a au moins un avantage, c’est que je suis certain d’avoir bien déclaré une constante alors que je peux oublier le préfix const lors de la déclaration d’une variable qui devrait justement l’être en constante.

Par ailleurs, dans le programme exemple qui utilise la méthode "habituelle", il y a un bug potentiel car la constante déclarée en entête n’est pas utilisée dans la boucle void : la valeur est écrite "en dur" (« for (int i = 0 ; i < 16 ; i++) »)

Je ne pense pas qu’il y ait de bug potentiel en écrivant cela. J’ai déclaré et initialisé une variable en dehors de toute fonction (setup, loop ou autres) const byte nbre_aiguillages = 16;

 

C’est donc une variable globale. Je l’utilise ensuite à la ligne du dessous et c’est tout. Ce n’est certes pas optimal en termes de programmation (ça se voulait être l’exemple à ne pas suivre) mais cela ne constitue en rien un bug potentiel.

 

Bien amicalement,

Christophe

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

18 Messages

Rubrique Programmation

Le monde des objets (1)

Le monde des objets (2)

Le monde des objets (3)

Le monde des objets (4)

Les pointeurs (1)

Les pointeurs (2)

Les Timers (I)

Les Timers (II)

Les Timers (III)

Les Timers (IV)

Les Timers (V)

Bien utiliser l’IDE d’Arduino (1)

Bien utiliser l’IDE d’Arduino (2)

Piloter son Arduino avec son navigateur web et Node.js (1)

Piloter son Arduino avec son navigateur web et Node.js (2)

Piloter son Arduino avec son navigateur web et Node.js (3)

Piloter son Arduino avec son navigateur web et Node.js (4)

Comment gérer le temps dans un programme ?

La programmation, qu’est ce que c’est

Types, constantes et variables

Installation de l’IDE Arduino

Répéter des instructions : les boucles

Les interruptions (1)

Instructions conditionnelles : le if ... else

Instructions conditionnelles : le switch ... case

Comment concevoir rationnellement votre système

Comment gérer l’aléatoire ?

Calculer avec l’Arduino (1)

Calculer avec l’Arduino (2)

Les structures

Systèmes de numération

Les fonctions

Trois façons de déclarer des constantes

Transcription d’un programme simple en programmation objet

Ces tableaux qui peuvent nous simplifier le développement Arduino

Les chaînes de caractères

Trucs, astuces et choses à ne pas faire !

Processing pour nos trains

Arduino : toute première fois !

Démarrer en Processing (1)

TCOs en Processing (1)

TCOs en Processing (2)

L’assembleur (1)

L’assembleur (2)

L’assembleur (3)

L’assembleur (4)

L’assembleur (5)

L’assembleur (6)

L’assembleur (7)

L’assembleur (8)

L’assembleur (9)

Les derniers articles

L’assembleur (9)


Christian

L’assembleur (8)


Christian

L’assembleur (7)


Christian

L’assembleur (6)


Christian

L’assembleur (5)


Christian

L’assembleur (4)


Christian

L’assembleur (3)


Christian

L’assembleur (2)


Christian

L’assembleur (1)


Christian

TCOs en Processing (2)


Pierre59

Les articles les plus lus

Les Timers (I)

Les interruptions (1)

Instructions conditionnelles : le if ... else

Ces tableaux qui peuvent nous simplifier le développement Arduino

Calculer avec l’Arduino (1)

Les Timers (III)

Les Timers (II)

Comment gérer le temps dans un programme ?

Calculer avec l’Arduino (2)

Bien utiliser l’IDE d’Arduino (1)