J'ai une question toute bête et surement asez classique mais je n'ai pas touvé de réponse par moi même. Voila, je cherche à réaliser une télécommande filaire de 1.5 - 2m de long en direction d'une arduino mega.
Coté télécommande j'aurai donc :
2 potentiometres 10K (joystick de base) connectés sur 2 entrées analogiques,
et 2 boutons momentanés connectés sur 2 entrées digitales (via une resistance de pull down)
Ce qui me fait donc un fil à 6 voies (je peux peut etre récuperer un vieux cable serie ?), avec :
la masse
le Vcc
2 digitales
2 analagiques
Je me demande si avec cette longueur de cable, je ne risque pas de griller quoique ce soit, et si les signaux analogiques seront exploitables (je n'ai pas besoin de plus de 255 pas de mesures sur les potards).
Et puis pour les ports digitaux, quelle valeur de resistance me conseillez-vous ? Je soude la resistance plutot coté joystick, ou coté méga, si ça fait une différence ?
Bin je pense que ça peut marcher, mais la question c'est aussi : est-ce qu'il s'agit d'une mauvaise pratique qui risque de me cramer qq chose à la longue ?
Genre un port digital ?
Tu as tout ce qu'il te faut (joystick et 2 boutons), mais tu as en plus un boitier sympa à prendre en main et un accéléromètre ! Communication en i2c (pas de problème sur 2m, qui est la taille du câble du Nunchuck de toute façon).
Sinon, pour le faire soi-même, je pense qu'il n'y aura aucun problème sur 2m.
Pour répondre aux questions :
Tu ne peux rien griller avec trop de câble. Au contraire, plus le câble est long, plus il y a de perte, plus la résistance est importante, plus le courant en cas de court-circuit est faible ! C'est déjà ça.
Pour l'analogique, au lieu d'avoir une mesure entre 0 et 5V (0-1023), tu auras peut-être un peu moins, mais ça sera négligeable. Au pire, garde un fil entre le 5V que tu reçois dans la télécommande et la pin aRef sur l'Arduino. Comme ça, l'Arduino sait quelle est la valeur max quand le potentiomètre est en butée coté 5V). Et tu garderas les 1023 niveaux (mais entre 0 et VRef au lieu de 0 et 5V). Voir analogReference.
Pour les ports digitaux, une résistance ? Euh... Pas de résistance...
Si tu parlais des résistances de tirage (pullup), ce n'est pas la peine vu que l'Arduino à ça en interne (pin digital en INPUT puis écrire un HIGH). Si tu veux le faire à la main (pour le fun ou un pulldown, comme le pullup mais à la masse), il faut le mettre au plus proche de l'Arduino.
En gros, tu vas avoir une entrée numérique avec une résistance très importante vers 5V. Pour activer le contact, il faut donc que la télécommande fasse une mise à la masse (juste un contact, pas de résistance). La seule résistance est celle du câble. Il faudrait une TRÈS longue distance pour que la résistance du câble de baisse pas assez le signal pour que l'Arduino ne voit pas un état bas ! (il faudrait regarder les specs, mais par exemple 0.5V en entrée, ça doit être un état bas). A voir les specs de l'ATmega, mais pour 2m de câble, ça ne sert à rien.
Si vraiment tu as des doutes, un petit transistor, mais, euh... on ne parle pas de 100m !
Et bien oui Frédéric, on peut dire que tu m'as aidé !
Et, petite question supplémentaire : j'ai lu qu'il était possible d'utiliser un analoginput en mode digital ? Mais je n'ai pas trouvé comment... Et il y a de forte chances pour que j'en ai besoin.
Si c'est possible, du coup il n'y a pas de résistance de pullup interne ?
Je résume : on peut utiliser l'analogique 0 en tant que digitale 14, jusqu'à l'analogique 5 en tant que digitale 19. Les entrées analogiques 6 et 7 (sur certains modèles) ne peuvent pas être utilisées en digitales. On parle évidement des Arduino 2009, Nano, et surement Uno et dérivés. Pour le Mega, tu comprendras qu'il faut surement aller un peu plus haut que 14 (et qu'on a peut-être déjà assez de pins digitales..
Par contre, pour le PullUp, je ne sais pas. A tester. Au pire, c'est pas trop dur à faire
Pour le Nunchuck, il fonctionne en 3.3V. Donc il faut l'alimenter avec la pin 3.3V de l'Arduino et mettre un pullup sur le 3.3V. Les entrées numériques considèrent le 3.3V comme un état haut et le Nunchuck fonctionne avec un signal i2c en 5V. D'ailleurs, je crois que tout le monde l'alimente en 5V !
...#elif defined(__AVR_ATmega1280__)// Arduino Mega
#define TOTAL_ANALOG_PINS 16
#define TOTAL_DIGITAL_PINS 70 // 54 digital + 16 analog...
Pour la Nunchunk, je me suis toujours dis qu'un jour je finirai bien par lui trouver un usage ! Mais pour juste un joystick et 2 boutons, je vai le bidouiller moi même, histoire d'apprendre un peu.