bonjour,
comment recuperer par programmation sur arduino le ID de la carte (celui qui s'affiche dans Tools....Serial port).
Merci
Seb
bonjour,
comment recuperer par programmation sur arduino le ID de la carte (celui qui s'affiche dans Tools....Serial port).
Merci
Seb
Ce n'est pas l'ID de la carte mais le numéro du port série de ton PC/Mac donc l'Arduino ne connait pas du tout ce numéro.
Si tu en as plusieurs dans Tools... Serial Port, c'est à toi de savoir lequel est le bon en faisant des tests. Je sais que c'est pas facile, j'ai parfois jusqu'à 5 numéros différents (deux Arduino, une carte myAVR, un programmeur ISP AVR, un module XBee...) mais généralement ils ne varient pas d'une session à l'autre donc on retrouve les mêmes nombres.
Merci. en fait je cherche une solution pour identifier chaque carte sans avoir a injecter un code different (ou une valeur de variable differente).
Je ne comprends pas ce que tu veux faire. Tu veux mettre le même code dans chacune des cartes mais que chaque carte puisse s'identifier indépendamment ? utilise une entrée analogique et un potentiomètre. Selon la section dans laquelle tu pointeras le potentiomètre, la carte pourra se donner un numéro.
J'ai 10 arduino qui doivent envoyer des infos a une 11eme et j'ai besoin de savoir de quelle arduino viennent les infos.
Donc il me faut une moyen de les identifier. Et si possible sans charger chacune avec un code different.
D'abord: pas de faux espoirs, je n'ai pas de réponse à te donner !
Je crois comprendre que tu cherches un genre de CPUID comme chez Intel, et on dirait que rien n'existe pour l'ATmega utilisé par Arduino :-/
Si on regarde les spécifications de l'ATmega168, page 346 il n'existe pas de telle instruction qui pourrait donner des infos sur le CPU. Enfin page 287 ils parlent de 3 "signature bytes" mais qui sont fixes et ne définissent que le modèle de processeur utilisé (ATmega48, 88, ou 168), pas un identifiant unique.
Il faudrait donc voir du côté de l'Arduino elle même.
Je vois que l'Arduino possède une EEPROM de 512 octets ! Peut-être que ça pourrait t'être utile d'y stocker un numéro de série (avec EEPROM.write(...) avant toute communication dans un programme indépendant), et que tu lirais une fois (avec EEPROM.read(...)) au début du programme et que tu pourrais envoyer aux différentes Arduinos ?
Oui mais ça oblige à avoir un code différent envoyé dans chaque carte (pour avoir un numéro dans l'EEPROM différent).
La solution avec un codeur sur la carte est la meilleure, avec 1 entrée analogique ou 4 entrées numériques.
Mais franchement, s'embêter pour ne pas avoir à changer une variable au moment de la programmation c'est un peu inutile.