Intéroger une carte pour en connêtre les caractéristiques, Uno, Mega, etc.

Bonjour,

Dans la liste de référence du langage Arduino, je n'y ai pas trouvé d'instruction pour interroger une carte Arduino (Uno, Mega, Nano, etc.) pour en connaitre les caractéristiques (Nom de la carte, version de la carte et de son Firmware, modèle de circuit intégré, vitesse d'horloge, RAM, SDRAM, ROM, etc.).

Comme j'ai les cartes Funduino UNO, Nano V3.0 et Mega 2560, je voudrais, entre autres choses attribuer les branchements de mon programme selon la carte connectée pour ne pas avoir trois versions du même programme ou avoir à modifier le programme à chaque fois.

Est-ce qu'il n'y aurait pas une fonction ou une bibliothèque de fonction pour connaître les caractéristiques de la carte utilisée ?

Merci d'avance !

L'ami René

Bonjour,

Il n'existe pas de méthode prévue pour savoir dynamiquement à quelle carte tu t'adresses et ainsi pouvoir en tirer les info associées. Si c'était le cas il n'y aurait pas besoin de choisir la carte dans l'ide ;)

Tu peut cependant connaitre une bonne partie des informations "de base" lors de la compilation car toi tu choisis la carte dans l'ide.

Cela ce fait au moyen de variables pré-processeur, exemples : ARDUINO : version de l'ide utilisée (100 = v1.0.0) F_CPU : vitesse de l'horloge CPU (il y a d'autre mais faire la liste complète serait un travail de titan)

Si tu comptes faire un programme multi-target tu as aussi tout un tas de #define du types : AVR_ATmega328P AVR_ATmega2560

Tu peut donc gérer ton mapping de broches suivant le cpu cible pour la compilation, exemple :

#if defined(__AVR_ATmega328P__)
// Ton pin map pour UNO & dérivés
#elif defined(__AVR_ATmega2560__)
// Ton pin map pour Mega2560 & dérivés
#else
#error CPU cible non supporté
#endif

Remarque : les macro / variables pré-processeur sont analysées et remplacées avant la compilation. Donc dans l'exemple ci dessus un seul lot de pin map ne sera "visible" par le compilateur.

Bonjour skywodd,

Un grand merci, c'est dans la ligne de ce que je cherchais !

Un autre très grand merci pour toutes vos vidéos d'Arduino sur le Web !

Il n'y aurait pas une page Web ou une librairie avec la liste de toutes les variables pré-processeur ?

Et encore merci !!! ;)

L'ami René

LamiRene: Il n'y aurait pas une page Web ou une librairie avec la liste de toutes les variables pré-processeur ?

Malheureusement non, certaines "de base" sont documentées dans la "avr-libc" (la lib du compilateur) mais pour le reste il faut fouiller dans Arduino.h et sur le web.

Rebonjour skywodd,

Merci pour la réponse, et ta réactivité, j'étais perdu dans les dédales des librairies, car je ne cherchais pas au bon endroit !

Merci pour les pistes à fouiller !

L'ami René